decl `dummy`2 = undef, `arrayVar`3 = `window`0 ⌜⋆⌝ "Array", `functionVar`4 = `window`0 ⌜⋆⌝ "Function", `stringVar`5 = `window`0 ⌜⋆⌝ "String", `regexpVar`6 = `window`0 ⌜⋆⌝ "RegExp", `booleanVar`7 = `window`0 ⌜⋆⌝ "Boolean", `numberVar`8 = `window`0 ⌜⋆⌝ "Number", `dateVar`9 = `window`0 ⌜⋆⌝ "Date", `errorVar`10 = `window`0 ⌜⋆⌝ "Error", `argumentsVar`11 = `window`0 ⌜⋆⌝ "Arguments", `objectVar`12 = `window`0 ⌜⋆⌝ "Object", `dummyAddressVar`13 = `window`0 ⌜⋆⌝ "dummyAddress", window = `window`0 inID: 38210 scratch (4) in ID: 38200 (`window`0).("dummyAddress") = undef ID: 34900 (`window`0).("Arguments") = undef ID: 34940 (`window`0).("main") = undef ID: 34980 scratch_0 = newfun (0.0) ID: 37580 (`self`14, arguments) => ID: 37560 decl rand = undef, x = undef in ID: 37550 scratch (5) in ID: 37540 :RETURN:: ID: 37530 x = 1.0 ID: 35080 scratch_0 = toObj `window`0 ⌜⋆⌝ "Math" ID: 35130 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 35170 merge ID: 35180 (scratch_1).("length") = 0.0 ID: 35220 scratch_2 = scratch_0 ⌜⋆⌝ "random"(scratch_0, scratch_1)ID: 35290 merge ID: 35300 if isprim scratch_2 ID: 35580 scratch_3 = tonum scratch_2 ID: 35360 else ID: 35580 scratch_4 = new `argumentsVar`11(`dummyAddressVar`13)ID: 35410 merge ID: 35420 (scratch_4).("0") = scratch_2 ID: 35460 (scratch_4).("length") = 1.0 ID: 35500 scratch_3 = `numberVar`8(`window`0, scratch_4) ID: 35550 merge ID: 35560 merge ID: 35590 rand = scratch_3 ⌜×⌝ 10.0 ID: 35640 :BREAK:: ID: 37480 scratch_0 = ⌞¬⌟ rand ⌜≈⌝ 0.0 ID: 35700 while scratch_0 ID: 37450 merge ID: 35720 :CONTINUE:: ID: 37360 if isprim rand ID: 36000 scratch_0 = tonum rand ID: 35780 else ID: 36000 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 35830 merge ID: 35840 (scratch_1).("0") = rand ID: 35880 (scratch_1).("length") = 1.0 ID: 35920 scratch_0 = `numberVar`8(`window`0, scratch_1)ID: 35970 merge ID: 35980 merge ID: 36010 if scratch_0 ⌜%⌝ 2.0 ⌜≈⌝ 0.0 ID: 36770 if isprim x ID: 36340 scratch_0 = tonum x ID: 36120 else ID: 36340 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 36170 merge ID: 36180 (scratch_1).("0") = x ID: 36220 (scratch_1).("length") = 1.0 ID: 36260 scratch_0 = `numberVar`8(`window`0, scratch_1)ID: 36310 merge ID: 36320 merge ID: 36350 x = scratch_0 ⌜×⌝ 2.0 ID: 36400 else ID: 36770 if isprim x ID: 36690 scratch_0 = tonum x ID: 36470 else ID: 36690 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 36520 merge ID: 36530 (scratch_1).("0") = x ID: 36570 (scratch_1).("length") = 1.0 ID: 36610 scratch_0 = `numberVar`8(`window`0, scratch_1)ID: 36660 merge ID: 36670 merge ID: 36700 x = scratch_0 ⌜−⌝ 1.0 ID: 36750 merge ID: 36780 scratch_0 = toObj `window`0 ⌜⋆⌝ "Math" ID: 36830 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 36870 merge ID: 36880 (scratch_1).("length") = 0.0 ID: 36920 scratch_2 = scratch_0 ⌜⋆⌝ "random"(scratch_0, scratch_1)ID: 36990 merge ID: 37000 if isprim scratch_2 ID: 37280 scratch_3 = tonum scratch_2 ID: 37060 else ID: 37280 scratch_4 = new `argumentsVar`11(`dummyAddressVar`13)ID: 37110 merge ID: 37120 (scratch_4).("0") = scratch_2 ID: 37160 (scratch_4).("length") = 1.0 ID: 37200 scratch_3 = `numberVar`8(`window`0, scratch_4)ID: 37250 merge ID: 37260 merge ID: 37290 rand = scratch_3 ⌜×⌝ 10.0 ID: 37340 merge ID: 37370 scratch_0 = ⌞¬⌟ rand ⌜≈⌝ 0.0 ID: 37430 merge ID: 37460 merge ID: 37490 jmp :RETURN: x ID: 37510 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13) ID: 37620 merge ID: 37630 (scratch_1).("length") = 0.0 ID: 37670 scratch_2 = new `objectVar`12(scratch_1) ID: 37710 merge ID: 37720 (scratch_0).("prototype") = scratch_2 ID: 37760 (`window`0).("main") = scratch_0 ID: 37800 scratch_0 = new `argumentsVar`11(`dummyAddressVar`13) ID: 37840 merge ID: 37850 (scratch_0).("length") = 0.0 ID: 37890 scratch_1 = `window`0 ⌜⋆⌝ "main"(`window`0, scratch_0) ID: 37960 merge ID: 37970 scratch_2 = new `argumentsVar`11(`dummyAddressVar`13) ID: 38010 merge ID: 38020 (scratch_2).("0") = scratch_1 ID: 38060 (scratch_2).("length") = 1.0 ID: 38100 scratch_3 = `window`0 ⌜⋆⌝ "print"(`window`0, scratch_2) ID: 38170 merge ID: 38180