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: 22540 scratch (3) in ID: 22530 (`window`0).("dummyAddress") = undef ID: 20660 (`window`0).("Arguments") = undef ID: 20700 (`window`0).("f") = undef ID: 20740 scratch_0 = newfun (1.0) ID: 22080 (`self`14, arguments) => ID: 22060 decl x = arguments ??? "0" in ID: 22050 scratch (6) in ID: 22040 :RETURN:: ID: 22030 if isprim x ID: 21100 scratch_0 = x ID: 20860 else ID: 21100 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13)ID: 20910 merge ID: 20920 (scratch_1).("0") = true ID: 20960 (scratch_1).("length") = 1.0 ID: 21000 scratch_0 = x ??? "valueOf"(x, scratch_1) ID: 21070 merge ID: 21080 merge ID: 21110 if isprim scratch_0 ID: 21360 scratch_2 = scratch_0 ID: 21160 else ID: 21360 scratch_3 = new `argumentsVar`11(`dummyAddressVar`13)ID: 21210 merge ID: 21220 (scratch_3).("length") = 0.0 ID: 21260 scratch_2 = scratch_0 ??? "toString"(scratch_0, scratch_3)ID: 21330 merge ID: 21340 merge ID: 21370 if isprim scratch_2 ID: 21470 scratch_4 = scratch_2 ID: 21420 else ID: 21470 throw "TypeError" ID: 21450 merge ID: 21480 if typeof scratch_4 ??? "string" ID: 21670 scratch_5 = scratch_4 ?++? tostr 1.0 ID: 21580 else ID: 21670 scratch_5 = tonum scratch_4 ?+? 1.0 ID: 21650 merge ID: 21680 (`window`0).("y") = scratch_5 ID: 21720 (`window`0).("z") = 7.0 ID: 21760 scratch_0 = new `argumentsVar`11(`dummyAddressVar`13)ID: 21800 merge ID: 21810 (scratch_0).("0") = `window`0 ??? "y" ID: 21870 (scratch_0).("length") = 1.0 ID: 21910 scratch_1 = `window`0 ??? "f"(`window`0, scratch_0) ID: 21980 merge ID: 21990 jmp :RETURN: scratch_1 ID: 22010 scratch_1 = new `argumentsVar`11(`dummyAddressVar`13) ID: 22120 merge ID: 22130 (scratch_1).("length") = 0.0 ID: 22170 scratch_2 = new `objectVar`12(scratch_1) ID: 22210 merge ID: 22220 (scratch_0).("prototype") = scratch_2 ID: 22260 (`window`0).("f") = scratch_0 ID: 22300 scratch_0 = new `argumentsVar`11(`dummyAddressVar`13) ID: 22340 merge ID: 22350 (scratch_0).("0") = 1.0 ID: 22390 (scratch_0).("length") = 1.0 ID: 22430 scratch_1 = `window`0 ??? "f"(`window`0, scratch_0) ID: 22500 merge ID: 22510