Skip to main content

nanvm_harness/gen.fixtures/
while_loop.rs

1// @generated by `fjs compile`. Do not edit: recompile the source module instead.
2
3use 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}