nanvm_demos/gen.samples/
optional_chaining.rs1use nanvm_lib::vm::unstable::{f64_any, string_any, string_key};
4use nanvm_lib::vm::{Any, 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 Ok([(string_key("default"), {
10 let _b3: Any<A> = [(string_key("a"), [(string_key("b"), f64_any(0x3ff0000000000000))].to_object().to_any()), (string_key("f"), A::static_function(|_self, _args| {
11 let _b128: Any<A> = _args.rest(0).to_any();
12 Ok(_b128.clone())
13 }, 0, [runtime.clone()].to_array(), Some("(...$0)=>$0")).to_any())].to_object().to_any();
14 A::static_function(|_self, _args| {
15 let _b704: Any<A> = _args.rest(0).to_any();
16 let _b9: Any<A> = (Any::dot([A::frame(_self)[0].clone(), Nullish::Null.to_any()].to_array().to_any(), (Any::number((Any::dot(_b704.clone(), f64_any(0x0000000000000000)).end())?))?).end())?;
17 Ok([(Any::option_dot(_b9.clone(), || Ok(string_any("a"))).dot(|| Ok(string_any("b"))).end())?, (Any::option_dot(_b9.clone(), || Ok(string_any("f"))).call(&A::frame(_self)[1], || Ok([f64_any(0x4000000000000000)].to_array().to_any())).end())?, (Any::option_dot(_b9.clone(), || Ok(string_any("f"))).option_call(&A::frame(_self)[1], || Ok([f64_any(0x4008000000000000)].to_array().to_any())).end())?].to_array().to_any())
18 }, 0, [_b3.clone(), runtime.clone()].to_array(), Some("(...$1)=>{const $2=[$0,null][Number($1[0])];return [$2?.a.b,$2?.f(2),$2?.f?.(3)];}")).to_any()
19 })].to_object().to_any())
20}