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: 48920 scratch (4) in ID: 48910 (`window`0).("dummyAddress") = undef ID: 44230 (`window`0).("Arguments") = undef ID: 44270 (`window`0).("main") = undef ID: 44310 scratch_0 = newfun (0.0) ID: 48290 (`self`14, arguments) => ID: 48270 decl rand = undef, x = undef in ID: 48260 scratch (11) in ID: 48250 :RETURN:: ID: 48240 x = 0.0 ID: 44410 scratch_0 = toObj `window`0 ⌜⋆⌝ "Math" ID: 44460 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 44500 merge ID: 44510 (scratch_1).("length") = 0.0 ID: 44550 scratch_2 = scratch_0 ⌜⋆⌝ "random"(scratch_0, scratch_1)ID: 44620 merge ID: 44630 if isprim scratch_2 ID: 44910 scratch_3 = tonum scratch_2 ID: 44690 else ID: 44910 scratch_4 = new `argumentsVar`11(`dummyAddressVar`13)ID: 44740 merge ID: 44750 (scratch_4).("0") = scratch_2 ID: 44790 (scratch_4).("length") = 1.0 ID: 44830 scratch_3 = `numberVar`8(`window`0, scratch_4) ID: 44880 merge ID: 44890 merge ID: 44920 rand = scratch_3 ⌜×⌝ 10.0 ID: 44970 :BREAK:: ID: 48190 scratch_0 = ⌞¬⌟ rand ⌜≈⌝ 0.0 ID: 45030 while scratch_0 ID: 48160 merge ID: 45050 :CONTINUE:: ID: 48070 if isprim rand ID: 45330 scratch_0 = tonum rand ID: 45110 else ID: 45330 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 45160 merge ID: 45170 (scratch_1).("0") = rand ID: 45210 (scratch_1).("length") = 1.0 ID: 45250 scratch_0 = `numberVar`8(`window`0, scratch_1)ID: 45300 merge ID: 45310 merge ID: 45340 if scratch_0 ⌜%⌝ 2.0 ⌜≈⌝ 0.0 ID: 47480 if isprim x ID: 45680 scratch_0 = x ID: 45440 else ID: 45680 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 45490 merge ID: 45500 (scratch_1).("0") = true ID: 45540 (scratch_1).("length") = 1.0 ID: 45580 scratch_0 = x ⌜⋆⌝ "valueOf"(x, scratch_1)ID: 45650 merge ID: 45660 merge ID: 45690 if isprim rand ID: 45980 scratch_2 = rand ID: 45740 else ID: 45980 scratch_3 = new `argumentsVar`11(`dummyAddressVar`13)ID: 45790 merge ID: 45800 (scratch_3).("0") = true ID: 45840 (scratch_3).("length") = 1.0 ID: 45880 scratch_2 = rand ⌜⋆⌝ "valueOf"(rand, scratch_3)ID: 45950 merge ID: 45960 merge ID: 45990 if isprim scratch_0 ID: 46240 scratch_4 = scratch_0 ID: 46040 else ID: 46240 scratch_5 = new `argumentsVar`11(`dummyAddressVar`13)ID: 46090 merge ID: 46100 (scratch_5).("length") = 0.0 ID: 46140 scratch_4 = scratch_0 ⌜⋆⌝ "toString"(scratch_0, scratch_5)ID: 46210 merge ID: 46220 merge ID: 46250 if isprim scratch_2 ID: 46500 scratch_6 = scratch_2 ID: 46300 else ID: 46500 scratch_7 = new `argumentsVar`11(`dummyAddressVar`13)ID: 46350 merge ID: 46360 (scratch_7).("length") = 0.0 ID: 46400 scratch_6 = scratch_2 ⌜⋆⌝ "toString"(scratch_2, scratch_7)ID: 46470 merge ID: 46480 merge ID: 46510 if isprim scratch_4 ID: 46610 scratch_8 = scratch_4 ID: 46560 else ID: 46610 throw "TypeError" ID: 46590 merge ID: 46620 if isprim scratch_6 ID: 46720 scratch_9 = scratch_6 ID: 46670 else ID: 46720 throw "TypeError" ID: 46700 merge ID: 46730 if typeof scratch_8 ⌜≡⌝ "string" ID: 47070 scratch_10 = scratch_8 ⌜++⌝ tostr scratch_9ID: 46830 else ID: 47070 if typeof scratch_9 ⌜≡⌝ "string"ID: 47040 scratch_10 = tostr scratch_8 ⌜++⌝ scratch_9ID: 46940 else ID: 47040 scratch_10 = tonum scratch_8 ⌜+⌝ tonum scratch_9ID: 47020 merge ID: 47050 merge ID: 47080 x = scratch_10 ID: 47110 else ID: 47480 if isprim x ID: 47400 scratch_0 = tonum x ID: 47180 else ID: 47400 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 47230 merge ID: 47240 (scratch_1).("0") = x ID: 47280 (scratch_1).("length") = 1.0 ID: 47320 scratch_0 = `numberVar`8(`window`0, scratch_1)ID: 47370 merge ID: 47380 merge ID: 47410 x = scratch_0 ⌜−⌝ 1.0 ID: 47460 merge ID: 47490 scratch_0 = toObj `window`0 ⌜⋆⌝ "Math" ID: 47540 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 47580 merge ID: 47590 (scratch_1).("length") = 0.0 ID: 47630 scratch_2 = scratch_0 ⌜⋆⌝ "random"(scratch_0, scratch_1)ID: 47700 merge ID: 47710 if isprim scratch_2 ID: 47990 scratch_3 = tonum scratch_2 ID: 47770 else ID: 47990 scratch_4 = new `argumentsVar`11(`dummyAddressVar`13)ID: 47820 merge ID: 47830 (scratch_4).("0") = scratch_2 ID: 47870 (scratch_4).("length") = 1.0 ID: 47910 scratch_3 = `numberVar`8(`window`0, scratch_4)ID: 47960 merge ID: 47970 merge ID: 48000 rand = scratch_3 ⌜×⌝ 10.0 ID: 48050 merge ID: 48080 scratch_0 = ⌞¬⌟ rand ⌜≈⌝ 0.0 ID: 48140 merge ID: 48170 merge ID: 48200 jmp :RETURN: x ID: 48220 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13) ID: 48330 merge ID: 48340 (scratch_1).("length") = 0.0 ID: 48380 scratch_2 = new `objectVar`12(scratch_1) ID: 48420 merge ID: 48430 (scratch_0).("prototype") = scratch_2 ID: 48470 (`window`0).("main") = scratch_0 ID: 48510 scratch_0 = new `argumentsVar`11(`dummyAddressVar`13) ID: 48550 merge ID: 48560 (scratch_0).("length") = 0.0 ID: 48600 scratch_1 = `window`0 ⌜⋆⌝ "main"(`window`0, scratch_0) ID: 48670 merge ID: 48680 scratch_2 = new `argumentsVar`11(`dummyAddressVar`13) ID: 48720 merge ID: 48730 (scratch_2).("0") = scratch_1 ID: 48770 (scratch_2).("length") = 1.0 ID: 48810 scratch_3 = `window`0 ⌜⋆⌝ "print"(`window`0, scratch_2) ID: 48880 merge ID: 48890