1use nanvm_lib::vm::unstable::{bigint_any, f64_any, strict_eq, string_any, string_key};
4use nanvm_lib::vm::{Any, Function, IStaticFunction, Nullish, ToAny, ToArray, ToObject};
5
6#[rustfmt::skip]
7#[allow(clippy::if_same_then_else)]
8pub fn module<A: IStaticFunction>(runtime: Any<A>) -> Result<Any<A>, Any<A>> {
9 let _b28: Any<A> = A::static_function(|_self, _args| {
10 let _b23: Any<A> = A::static_function(|_self, _args| {
11 let mut _b13303: Any<A> = _args.argument(0);
12 '_loop23: while Any::<A>::to_boolean({
13 let _b13304: Any<A> = _b13303.clone();
14 (Any::lt((Any::dot(_b13304.clone(), f64_any(0x0000000000000000)).end())?, ((Any::dot(A::frame(_self)[0].clone(), string_any("length")).end())? * f64_any(0x4020000000000000))?))?
15 }) {
16 let _b3178: Any<A> = _b13303.clone();
17 let _b8: Any<A> = (Any::dot(_b3178.clone(), f64_any(0x0000000000000000)).end())?;
18 let _b13305: Any<A> = [(_b8.clone() + f64_any(0x3ff0000000000000))?, (((Any::dot(_b3178.clone(), f64_any(0x3ff0000000000000)).end())? * bigint_any(2))? + (if Any::<A>::to_boolean((((Any::dot(A::frame(_self)[0].clone(), string_any("charCodeAt")).end_call(&A::frame(_self)[1], || Ok([(_b8.clone() >> f64_any(0x4008000000000000))?].to_array().to_any())))? >> (f64_any(0x401c000000000000) - (_b8.clone() % f64_any(0x4020000000000000))?)?)? & f64_any(0x3ff0000000000000))?) { bigint_any(1) } else { bigint_any(0) }))?].to_array().to_any();
19 _b13303 = _b13305.clone();
20 }
21 let _b3179: Any<A> = _b13303;
22 Ok(_b3179.clone())
23 }, 1, [_args.argument(0), A::frame(_self)[0].clone()].to_array(), Some("($1)=>{let $2=$1;while((()=>{const $3=$2;return $3[0]<$0.length*8;})()){const $4=$2;const $5=$4[0];const $6=[$5+1,$4[1]*2n+($0.charCodeAt($5>>3)>>7-$5%8&1?1n:0n)];$2=$6;}return $2;}")).to_any();
24 <Any<A> as core::ops::Neg>::neg((Any::dot((Any::call(_b23.clone(), [[f64_any(0x3ff0000000000000), bigint_any(1)].to_array().to_any()].to_array().to_any()))?, f64_any(0x3ff0000000000000)).end())?)
25 }, 1, [runtime.clone()].to_array(), Some("($0)=>{const $1=($2)=>{let $3=$2;while((()=>{const $4=$3;return $4[0]<$0.length*8;})()){const $5=$3;const $6=$5[0];const $7=[$6+1,$5[1]*2n+($0.charCodeAt($6>>3)>>7-$6%8&1?1n:0n)];$3=$7;}return $3;};return -$1([1,1n])[1];}")).to_any();
26 let _b43: Any<A> = A::static_function(|_self, _args| { (((((string_any("the longest Collatz chain below ") + (f64_any(0x40dd4c0000000000).to_string().map(|v| v.to_any()))?)? + string_any(" starts at "))? + ((_args.argument(0) % f64_any(0x4130000000000000))?.to_string().map(|v| v.to_any()))?)? + string_any(" and takes "))? + (((_args.argument(0) - (_args.argument(0) % f64_any(0x4130000000000000))?)? / f64_any(0x4130000000000000))?.to_string().map(|v| v.to_any()))?)? + string_any(" steps\n") }, 1, [runtime.clone()].to_array(), Some("($0)=>\"the longest Collatz chain below \"+String(30000)+\" starts at \"+String($0%1048576)+\" and takes \"+String(($0-$0%1048576)/1048576)+\" steps\\n\"")).to_any();
27 let _b57: Any<A> = A::static_function(|_self, _args| {
28 let _b13306: Any<A> = _args.argument(0);
29 let _b13307: Any<A> = _args.argument(1);
30 let mut _b13308: Any<A> = _b13306.clone();
31 let mut _b13309: Any<A> = _b13307.clone();
32 let mut _b13310: Any<A> = Nullish::Undefined.to_any();
33 '_loop57: loop {
34 let _b7682_21: Any<A> = _b13308.clone();
35 let _b7683_22: Any<A> = _b13309.clone();
36 if Any::<A>::to_boolean((strict_eq(_b7682_21.clone(), f64_any(0x3ff0000000000000)))?) {
37 let _b13311: Any<A> = _b7683_22.clone();
38 _b13310 = _b13311.clone();
39 break '_loop57;
40 } else {
41 let _b13312: Any<A> = if Any::<A>::to_boolean((strict_eq((_b7682_21.clone() % f64_any(0x4000000000000000))?, f64_any(0x0000000000000000)))?) { (_b7682_21.clone() / f64_any(0x4000000000000000))? } else { ((f64_any(0x4008000000000000) * _b7682_21.clone())? + f64_any(0x3ff0000000000000))? };
42 let _b13313: Any<A> = (_b7683_22.clone() + f64_any(0x3ff0000000000000))?;
43 _b13308 = _b13312.clone();
44 _b13309 = _b13313.clone();
45 continue '_loop57;
46 }
47 }
48 let _b7701: Any<A> = _b13310.clone();
49 Ok(_b7701.clone())
50 }, 2, [runtime.clone()].to_array(), Some("($0,$1)=>{const $2=$0;const $3=$1;let $4=$2;let $5=$3;let $6=undefined;L0:while(true){const $7=$4;const $8=$5;if($7===1){const $9=$8;$6=$9;break L0;}else{const $10=$7%2===0?$7/2:3*$7+1;const $11=$8+1;$4=$10;$5=$11;continue L0;}}const $12=$6;return $12;}")).to_any();
51 let _b63: Any<A> = A::static_function(|_self, _args| { ((Any::call(A::frame(_self)[0].clone(), [_args.argument(0), f64_any(0x0000000000000000)].to_array().to_any()))? * f64_any(0x4130000000000000))? + _args.argument(0) }, 1, [_b57.clone(), runtime.clone()].to_array(), Some("($1)=>$0($1,0)*1048576+$1")).to_any();
52 let _b68: Any<A> = A::static_function(|_self, _args| { if Any::<A>::to_boolean((Any::gt(_args.argument(0), _args.argument(1)))?) { Ok(_args.argument(0)) } else { Ok(_args.argument(1)) } }, 2, [runtime.clone()].to_array(), Some("($0,$1)=>$0>$1?$0:$1")).to_any();
53 let _b85: Any<A> = A::static_function(|_self, _args| { if Any::<A>::to_boolean((strict_eq(_args.argument(1), f64_any(0x3ff0000000000000)))?) { Any::call(A::frame(_self)[0].clone(), [_args.argument(0)].to_array().to_any()) } else { Any::call(A::frame(_self)[1].clone(), [(Any::call(Function::new(_self.clone()).to_any(), [_args.argument(0), (_args.argument(1) >> f64_any(0x3ff0000000000000))?].to_array().to_any()))?, (Any::call(Function::new(_self.clone()).to_any(), [(_args.argument(0) + (_args.argument(1) >> f64_any(0x3ff0000000000000))?)?, (_args.argument(1) - (_args.argument(1) >> f64_any(0x3ff0000000000000))?)?].to_array().to_any()))?].to_array().to_any()) } }, 2, [_b63.clone(), _b68.clone(), runtime.clone()].to_array(), Some("(function $2($3,$4){return $4===1?$0($3):$1($2($3,$4>>1),$2($3+($4>>1),$4-($4>>1)));})")).to_any();
54 Ok([(string_key("default"), A::static_function(|_self, _args| { Ok([(string_key("command"), string_any("write")), (string_key("payload"), [string_any("stdout"), (Any::call(A::frame(_self)[0].clone(), [(Any::call(A::frame(_self)[1].clone(), [(Any::call(A::frame(_self)[2].clone(), [f64_any(0x3ff0000000000000), (f64_any(0x40dd4c0000000000) - f64_any(0x3ff0000000000000))?].to_array().to_any()))?].to_array().to_any()))?].to_array().to_any()))?].to_array().to_any()), (string_key("continuation"), A::static_function(|_self, _args| { Ok(A::static_function(|_self, _args| { Ok([string_any("ok"), Nullish::Undefined.to_any()].to_array().to_any()) }, 0, [A::frame(_self)[0].clone()].to_array(), Some("()=>[\"ok\",undefined]")).to_any()) }, 0, [A::frame(_self)[3].clone()].to_array(), Some("()=>()=>[\"ok\",undefined]")).to_any())].to_object().to_any()) }, 0, [_b28.clone(), _b43.clone(), _b85.clone(), runtime.clone()].to_array(), Some("()=>{return {\"command\":\"write\",\"payload\":[\"stdout\",$0($1($2(1,30000-1)))],\"continuation\":()=>()=>[\"ok\",undefined]};}")).to_any())].to_object().to_any())
55}