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: 36350 scratch (4) in ID: 36340 (`window`0).("dummyAddress") = undef ID: 32960 (`window`0).("Arguments") = undef ID: 33000 (`window`0).("f") = undef ID: 33040 scratch_0 = newfun (0.0) ID: 35720 (`self`14, arguments) => ID: 35700 decl x = undef in ID: 35690 scratch (7) in ID: 35680 :RETURN:: ID: 35670 x = 0.0 ID: 33120 :BREAK:: ID: 35620 scratch_0 = toObj `window`0 ??? "Math" ID: 33170 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 33210 merge ID: 33220 (scratch_1).("length") = 0.0 ID: 33260 scratch_2 = scratch_0 ??? "random"(scratch_0, scratch_1)ID: 33330 merge ID: 33340 if typeof scratch_2 ??? "string" ?&&? false ID: 33820 scratch_3 = scratch_2 ??? 0.5 ID: 33450 else ID: 33820 if isprim scratch_2 ID: 33740 scratch_4 = tonum scratch_2 ID: 33520 else ID: 33740 scratch_5 = new `argumentsVar`11(`dummyAddressVar`13)ID: 33570 merge ID: 33580 (scratch_5).("0") = scratch_2 ID: 33620 (scratch_5).("length") = 1.0 ID: 33660 scratch_4 = `numberVar`8(`window`0, scratch_5)ID: 33710 merge ID: 33720 merge ID: 33750 scratch_3 = scratch_4 ?