Skip to main content

nanvm_harness/gen.fixtures/
recursion.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, Function, 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 _b7: Any<A> = A::static_function(|_self, _args| { if Any::<A>::to_boolean((Any::lt(_args.argument(0), f64_any(0x4000000000000000)))?) { Ok(f64_any(0x3ff0000000000000)) } else { _args.argument(0) * (Any::call(Function::new(_self.clone()).to_any(), [(_args.argument(0) - f64_any(0x3ff0000000000000))?].to_array().to_any()))? } }, 1, Array::default(), Some("(function $0($1){return $1<2?1:$1*$0($1-1);})")).to_any();
10    let _b11: Any<A> = A::static_function(|_self, _args| { strict_eq(Function::new(_self.clone()).to_any(), Function::new(_self.clone()).to_any()) }, 0, Array::default(), Some("(function $0(){return $0===$0;})")).to_any();
11    let _b24: Any<A> = A::static_function(|_self, _args| { Ok(A::static_function(|_self, _args| { if Any::<A>::to_boolean((Any::lt(A::frame(_self)[0].clone(), f64_any(0x3ff0000000000000)))?) { Ok(f64_any(0x0000000000000000)) } else { ({
12        let _b19: Any<A> = (Any::call(A::frame(_self)[1].clone(), [(A::frame(_self)[0].clone() - f64_any(0x3ff0000000000000))?].to_array().to_any()))?;
13        (Any::call(_b19.clone(), Array::default().to_any()))?
14    }) + f64_any(0x3ff0000000000000) } }, 0, [_args.argument(0), Function::new(_self.clone()).to_any()].to_array(), Some("()=>$0<1?0:(()=>{const $2=$1($0-1);return $2();})()+1")).to_any()) }, 1, Array::default(), Some("(function $0($1){return ()=>$1<1?0:(()=>{const $2=$0($1-1);return $2();})()+1;})")).to_any();
15    Ok([(string_key("default"), [(Any::call(_b7.clone(), [f64_any(0x4014000000000000)].to_array().to_any()))?, (Any::call(_b11.clone(), Array::default().to_any()))?, {
16        let _b25: Any<A> = (Any::call(_b24.clone(), [f64_any(0x4008000000000000)].to_array().to_any()))?;
17        (Any::call(_b25.clone(), Array::default().to_any()))?
18    }].to_array().to_any())].to_object().to_any())
19}