nanvm_harness/gen.fixtures/
while_loop.rs1use nanvm_lib::vm::unstable::{f64_any, strict_eq, string_key};
4use nanvm_lib::vm::{Any, Array, IStaticFunction, 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 _b10: Any<A> = A::static_function(|_self, _args| {
10 let _b8: Any<A> = A::static_function(|_self, _args| {
11 let mut _b3823: Any<A> = _args.argument(0);
12 '_loop8: while Any::<A>::to_boolean({
13 let _b3824: Any<A> = _b3823.clone();
14 (Any::lt(_b3824.clone(), A::frame(_self)[0].clone()))?
15 }) {
16 let _b724: Any<A> = _b3823.clone();
17 let _b3825: Any<A> = (_b724.clone() + f64_any(0x3ff0000000000000))?;
18 _b3823 = _b3825.clone();
19 }
20 let _b725: Any<A> = _b3823;
21 Ok(_b725.clone())
22 }, 1, [_args.argument(0)].to_array(), Some("($1)=>{let $2=$1;while((()=>{const $3=$2;return $3<$0;})()){const $4=$2;const $5=$4+1;$2=$5;}return $2;}")).to_any();
23 Any::call(_b8.clone(), [f64_any(0x0000000000000000)].to_array().to_any())
24 }, 1, Array::default(), Some("($0)=>{const $1=($2)=>{let $3=$2;while((()=>{const $4=$3;return $4<$0;})()){const $5=$3;const $6=$5+1;$3=$6;}return $3;};return $1(0);}")).to_any();
25 let _b28: Any<A> = A::static_function(|_self, _args| {
26 let _b25: Any<A> = A::static_function(|_self, _args| {
27 let mut _b3826: Any<A> = _args.argument(0);
28 '_loop25: while Any::<A>::to_boolean({
29 let _b3827: Any<A> = _b3826.clone();
30 (Any::lt((Any::dot(_b3827.clone(), f64_any(0x0000000000000000)).end())?, A::frame(_self)[0].clone()))?
31 }) {
32 let _b2118: Any<A> = _b3826.clone();
33 let _b19: Any<A> = ((Any::dot(_b2118.clone(), f64_any(0x0000000000000000)).end())? + f64_any(0x3ff0000000000000))?;
34 let _b3828: Any<A> = [_b19.clone(), ((Any::dot(_b2118.clone(), f64_any(0x3ff0000000000000)).end())? + _b19.clone())?].to_array().to_any();
35 _b3826 = _b3828.clone();
36 }
37 let _b2119: Any<A> = _b3826;
38 Ok(_b2119.clone())
39 }, 1, [_args.argument(0)].to_array(), Some("($1)=>{let $2=$1;while((()=>{const $3=$2;return $3[0]<$0;})()){const $4=$2;const $5=$4[0]+1;const $6=[$5,$4[1]+$5];$2=$6;}return $2;}")).to_any();
40 Any::call(_b25.clone(), [[f64_any(0x0000000000000000), f64_any(0x0000000000000000)].to_array().to_any()].to_array().to_any())
41 }, 1, Array::default(), Some("($0)=>{const $1=($2)=>{let $3=$2;while((()=>{const $4=$3;return $4[0]<$0;})()){const $5=$3;const $6=$5[0]+1;const $7=[$6,$5[1]+$6];$3=$7;}return $3;};return $1([0,0]);}")).to_any();
42 let _b46: Any<A> = A::static_function(|_self, _args| {
43 let _b44: Any<A> = A::static_function(|_self, _args| {
44 let mut _b3829: Any<A> = _args.argument(0);
45 '_loop44: while Any::<A>::to_boolean({
46 let _b3830: Any<A> = _b3829.clone();
47 let _b33: Any<A> = (Any::lt(_b3830.clone(), A::frame(_self)[0].clone()))?;
48 if Any::<A>::to_boolean(_b33.clone()) { (Any::ge(_b3830.clone(), f64_any(0x0000000000000000)))? } else { _b33.clone() }
49 }) {
50 let _b3676: Any<A> = _b3829.clone();
51 let _b3831: Any<A> = if Any::<A>::to_boolean((strict_eq((_b3676.clone() % f64_any(0x4000000000000000))?, f64_any(0x0000000000000000)))?) { (_b3676.clone() + f64_any(0x3ff0000000000000))? } else { (_b3676.clone() + f64_any(0x4008000000000000))? };
52 _b3829 = _b3831.clone();
53 }
54 let _b3677: Any<A> = _b3829;
55 Ok(_b3677.clone())
56 }, 1, [_args.argument(0)].to_array(), Some("($1)=>{let $2=$1;while((()=>{const $3=$2;const $4=$3<$0;return $4?$3>=0:$4;})()){const $5=$2;const $6=$5%2===0?$5+1:$5+3;$2=$6;}return $2;}")).to_any();
57 Any::call(_b44.clone(), [f64_any(0x0000000000000000)].to_array().to_any())
58 }, 1, Array::default(), Some("($0)=>{const $1=($2)=>{let $3=$2;while((()=>{const $4=$3;const $5=$4<$0;return $5?$4>=0:$5;})()){const $6=$3;const $7=$6%2===0?$6+1:$6+3;$3=$7;}return $3;};return $1(0);}")).to_any();
59 Ok([(string_key("count"), _b10.clone()), (string_key("default"), [(Any::call(_b10.clone(), [f64_any(0x4059000000000000)].to_array().to_any()))?, (Any::call(_b28.clone(), [f64_any(0x4024000000000000)].to_array().to_any()))?, (Any::call(_b46.clone(), [f64_any(0x4024000000000000)].to_array().to_any()))?].to_array().to_any()), (string_key("lazy"), _b46.clone()), (string_key("sums"), _b28.clone())].to_object().to_any())
60}