| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| var profile, result; | |
| var a = 0; | |
| function toSafeInt(n) { | |
| return Math.round(Math.round(n * 10) / 10); | |
| } | |
| function test0() { | |
| for(var i = 0; i < 2; ++i) { | |
| if(1) do { | |
| return 0; | |
| } while(1); | |
| } | |
| }; | |
| test0(); | |
| test0(); | |
| function test1() { | |
| var d = 1; | |
| var g = 1.1; | |
| for(var i = 0; i < 2; ++i) { | |
| d ^= g >= 0 ? g : 0; | |
| for(var j = 0; j < 2; ++j) | |
| d = g; | |
| g & 255; | |
| } | |
| function test1a() { d; } | |
| }; | |
| test1(); | |
| test1(); | |
| function test2() { | |
| var obj0 = {}; | |
| var obj1 = {}; | |
| var func0 = function(p0, p1) { | |
| this.method0 = func0; | |
| } | |
| obj0.method0 = func0; | |
| var f = 1; | |
| for(var __loopvar0 = 0; __loopvar0 < 3; ++__loopvar0) { | |
| (function(p0, p1, p2, p3) { | |
| "use strict"; | |
| obj1 = (new obj0.method0(1, 1, 1, 1, 1, 1)); | |
| })(1); | |
| obj0 = obj1; | |
| var litObj3 = { prop0: ((obj0.prop0++) - Math.pow((1383554054 + -22), (obj0.prop0 ^= 1))), prop1: obj0.prop1, prop2: 1, prop3: 1, prop4: 1, prop5: 1, prop6: (--f), prop7: 1.1, prop8: 1 }; | |
| } | |
| }; | |
| test2(); | |
| test2(); | |
| var shouldBailout = false; | |
| function test3() { | |
| for(var i = 0; i < 3; ++i) { | |
| if(- ~2147483647, 1, (this.prop0--), 1, 1, ((shouldBailout ? func2 = leaf : 1), 1)); | |
| } | |
| }; | |
| test3(); | |
| test3(); | |
| function test4() { | |
| var o = profile ? createFloat64Array() : [1.1]; | |
| var p = "0"; | |
| o[p] += o[p]; | |
| return o[p]; | |
| function createFloat64Array() { | |
| var a = new Float64Array(1); | |
| a[0] = 1.1; | |
| return a; | |
| } | |
| } | |
| profile = true; | |
| test4(); | |
| profile = false; | |
| result = test4(); | |
| new RegExp("test4").exec("test4"); // overwrite the stack to invalidate any numbers that were allocated on the stack | |
| WScript.Echo("test4: " + result); | |
| function test5() { | |
| var obj0 = {}; | |
| var func1 = function(p0, p1, p2) { | |
| } | |
| obj0.method0 = func1; | |
| var b = 1; | |
| var e = 1730745725.1; | |
| (function() { | |
| var __loopvar1 = 0; | |
| while(((e >>= 714649918.1)) && __loopvar1 < 3) { | |
| __loopvar1++; | |
| b /= obj0.method0(1, 1, -2071119430.9, 1); | |
| e = 1949149674.1; | |
| WScript.Echo("test5: good"); | |
| return 1; | |
| } | |
| var litObj3 = { prop0: 1, prop1: 4.1219102077814E+17, prop2: 1, prop3: 1, prop4: -8.45710040200392E+18, prop5: 1, prop6: 1, prop7: 1, prop8: 1 }; | |
| obj0.method0((this.prop0 * -3.51338110666416E+18), obj0.prop1); | |
| if(-634731549.9) { | |
| if((obj0.prop1 <= 1)) { | |
| var __loopvar6 = 0; | |
| while(((Function("") instanceof Boolean)) && __loopvar6 < 3) { | |
| __loopvar6++; | |
| obj0.prop0 = (1, obj1.prop1, obj1.prop1); | |
| a = obj1; | |
| let a; | |
| } | |
| } | |
| else { | |
| e = -1152902162.9; | |
| } | |
| } | |
| else { | |
| WScript.Echo("obj0.prop1 = " + (obj0.prop1 | 0)); | |
| } | |
| WScript.Echo("obj1.prop1 = " + (obj1.prop1 | 0)); | |
| })(); | |
| }; | |
| test5(); | |
| test5(); | |
| function test6() { | |
| var a = 1; | |
| var b = 8.58155630194204E+18; | |
| var i = 0; | |
| do { | |
| for(var j = 0; j < 2; ++j) { | |
| b /= 1; | |
| a = 1 % a; | |
| } | |
| } while(++i < 2); | |
| }; | |
| test6(); | |
| test6(); | |
| // - Profile data says that 'd' is likely float | |
| // - Due to 'd = 1', we have a tagged int for 'd' | |
| // - In the loop prepass, the source value should not be changed because the value is not precise as we're still in the prepass | |
| function test7() { | |
| var a, d; | |
| var o = {}; | |
| for(var i = 0; d = a * 1 && i < 2; ++i); | |
| for(var i = 0; i < 2 && o.p < 1; i++ + o.p++) { | |
| d = 1; | |
| for(var j = 0; j < 2; ++j) | |
| d %= 1; | |
| a = 1; | |
| } | |
| return d; | |
| function test11a() { d; } | |
| }; | |
| test7(); | |
| test7(); | |
| // - 'b' is a slot variable and is treated as a field | |
| // - At 'b = i', the value of 'i' gets transferred to 'b' | |
| // - At 'c = c && b', in the block that handles 'c = b', it is copy-propped as 'c = i' | |
| // - Even though 'i' is invariant with respect to the inner loop, if 'c = i' is hoisted out of the inner loop as 'c2 = i' and | |
| // inside the loop, 'c = c2', then 'c2' should not be made the sym store of the value of 'i' because after the merge caused by | |
| // '&&', 'c2' won't be live anymore (since we don't hoist 'c2' into every preceding block, and only to the landing pad) | |
| // - At the final 'c = b', assuming the above problem manifests, the value of 'b' will have a sym store 'c2', which is not live | |
| // anymore. So, the value's sym store is set to 'b', giving ownership of the value to 'b'. This is less than ideal because 'i' | |
| // actually owns the value. | |
| // - At this point, because 'b' now owns the value, and profile data says it is likely float (because of the first assignment to | |
| // 'b'), we go ahead and change the value type to likely float. Since 'b' doesn't actually own the value, that effectively | |
| // changes the value type of 'i' to likely float as well. | |
| function test8(a) { | |
| var b = -2147483648 % 1; | |
| var c = 0; | |
| if(a) { | |
| for(var i = 0; i < 2; i++) { | |
| for(var j = 0; j < 2; ++j) { | |
| b = i; | |
| c = c && b; | |
| c = b; | |
| } | |
| } | |
| } | |
| return b; | |
| function test0a() { b; } | |
| }; | |
| test8(); | |
| test8(); | |
| function test9() { | |
| var d = 1; | |
| var __loopvar0 = 0; | |
| do { | |
| __loopvar0++; | |
| d = (-2 / ((--d) == 0 ? 1 : (--d))); | |
| } while((1) && __loopvar0 < 3) | |
| return d | 0; | |
| }; | |
| WScript.Echo("test9: " + test9()); | |
| WScript.Echo("test9: " + test9()); | |
| // Implicit calls should be disabled at the load of 'a.p' with flow-based array check hoisting | |
| function test10(a, b) { | |
| var sum = a[0]; | |
| sum += a.p; | |
| var a2 = a; | |
| a = b; | |
| a2[0] = ++b; | |
| sum += a2[0]; | |
| sum += a + b; | |
| return sum; | |
| } | |
| var test10_a = [1]; | |
| test10_a.p = 2; | |
| WScript.Echo("test10: " + test10(test10_a, 3)); | |
| Object.defineProperty( | |
| test10_a, | |
| "p", | |
| { | |
| configurable: true, | |
| enumerable: true, | |
| get: function() { | |
| Object.defineProperty( | |
| test10_a, | |
| "0", | |
| { | |
| configurable: true, | |
| enumerable: true, | |
| get: function() { return 5; }, | |
| set: function() { } | |
| }); | |
| return 2; | |
| } | |
| }); | |
| WScript.Echo("test10: " + test10(test10_a, 3)); | |
| function test11() { | |
| var obj0 = {}; | |
| var a = 1; | |
| var l = 1; | |
| a = (-2061493789 << 1); | |
| l = a; | |
| obj0.prop0 = a; | |
| a = ((~1) * (-obj0.prop0)); | |
| a ^= obj0.prop0; | |
| return l | 0; | |
| }; | |
| test11(); | |
| test11(); | |
| function test12() { | |
| var c = 1; | |
| var f = 1; | |
| a = 21414358.1; | |
| while(f < 1) | |
| c(); | |
| while(a %= 1) { | |
| c = Math.abs(c) % 4; | |
| c = "substring" + c + "bug"; | |
| c = c.substring(3, 11); | |
| switch(c) { | |
| case "string0b": | |
| break; | |
| case "string1b": | |
| break; | |
| case "string2b": | |
| break; | |
| case "string3b": | |
| break; | |
| }; | |
| a = 1; | |
| } | |
| }; | |
| test12(); | |
| test12(); | |
| function test13(a, rid, q) { | |
| for(var i = 0; i < q.length; i++) { | |
| if(q[i][0] == rid) { | |
| for(var j = 1; j < q[i].length; j++) { | |
| if(q[i][j] == a) { | |
| if(q[i].length == 2) { | |
| q.splice(i, 1); | |
| } | |
| else { | |
| q[i].splice(j, 1); | |
| } | |
| return; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| (function test13Runner() { | |
| var q = []; | |
| for(var i = 0; i < 4; ++i) | |
| q.push([0, 1, 2, 3]); | |
| test13(1, 0, q); | |
| test13(1, 0, q); | |
| })(); | |
| function test14(a, i, o) { | |
| a[i] = 1; | |
| o.p; | |
| return a[i]; | |
| } | |
| (function test14Runner() { | |
| var a = [1]; | |
| var o = {}; | |
| WScript.Echo("test14: " + test14(a, 0, o)); | |
| Object.defineProperty( | |
| o, | |
| "p", | |
| { | |
| configurable: true, | |
| enumerable: true, | |
| get: function() { | |
| Object.defineProperty( | |
| a, | |
| "0", | |
| { | |
| configurable: true, | |
| enumerable: true, | |
| get: function() { | |
| return 2; | |
| } | |
| }); | |
| } | |
| }); | |
| WScript.Echo("test14: " + test14(a, 0, o)); | |
| })(); | |
| function test15(a, o) { | |
| a[0] = 1; | |
| o.p; | |
| return a[0]; | |
| } | |
| (function test15Runner() { | |
| var a = [1]; | |
| var o = {}; | |
| WScript.Echo("test15: " + test15(a, o)); | |
| Object.defineProperty( | |
| o, | |
| "p", | |
| { | |
| configurable: true, | |
| enumerable: true, | |
| get: function() { | |
| Object.defineProperty( | |
| a, | |
| "0", | |
| { | |
| configurable: true, | |
| enumerable: true, | |
| get: function() { | |
| return 2; | |
| } | |
| }); | |
| } | |
| }); | |
| WScript.Echo("test15: " + test15(a, o)); | |
| })(); | |
| (function test16Runner() { | |
| var obj0; | |
| function test16() { | |
| var obj1 = {}; | |
| var arrObj0 = {}; | |
| var func1 = function(argStr0, argObj1, argMath2) { | |
| eval("'use strict';"); | |
| } | |
| var ui8 = new Uint8Array(256); | |
| var __loopvar0 = 0; | |
| do { | |
| __loopvar0++; | |
| var __loopvar1 = 0; | |
| while((1) && __loopvar1 < 3) { | |
| __loopvar1++; | |
| } | |
| obj0 = obj1; | |
| } while((1) && __loopvar0 < 3) | |
| if((arrObj0.length ? 1 : obj1.prop0)) { | |
| } | |
| 11 | |
| }; | |
| test16(); | |
| test16(); | |
| })(); | |
| function test17() { | |
| var x = 0; | |
| (function() { | |
| (function foo(y) { y >> null; })(x); | |
| })(); | |
| }; | |
| test17(); | |
| test17(); | |
| function test18(o) { | |
| function test18a(a, o) { | |
| var b = a + 1; | |
| var c = a + (o | 0); | |
| return b ^ c; | |
| } | |
| WScript.Echo("test18: " + test18a(0x7fffffff, o)); | |
| } | |
| test18(1); | |
| test18( | |
| { | |
| valueOf: function() { | |
| WScript.Echo("test18: valueOf"); | |
| return 2; | |
| } | |
| }); | |
| function test20() { | |
| var a = new Array(10); | |
| var o = {}; | |
| o.p = ~-2147483648; | |
| a[0] = o.p; | |
| return a[0]; | |
| }; | |
| test20(); | |
| test20(); | |
| (function test21Runner() { | |
| function test21(o) { | |
| var a = 0.1; | |
| var b = 1.1; | |
| var c = 2.1; | |
| a += 0.1; | |
| c += 0.1; | |
| var d = 0; | |
| for(var i = 0; i < 4; ++i) { | |
| d = a + 0.1; | |
| b += 0.1; | |
| a = b; | |
| b = c; | |
| c = o; | |
| if(!o) | |
| b = 6.1; | |
| } | |
| return d; | |
| } | |
| var o = { valueOf: function() { return 9.1; } }; | |
| WScript.Echo("test21: " + toSafeInt(test21(o))); | |
| WScript.Echo("test21: " + toSafeInt(test21(o))); | |
| })(); | |
| function test22() { | |
| var a = 1.5; | |
| var b = 1; | |
| for(var i = 0; i < 2; ++i) { | |
| a = b; | |
| b = true; | |
| } | |
| WScript.Echo("test22: " + (a | 0)); | |
| }; | |
| test22(); | |
| test22(); | |
| (function test23Runner() { | |
| function test23(o) { | |
| var sum = 0; | |
| var a = o.a; | |
| sum += a[0]; | |
| sum += o.b[0]; | |
| for(var i = 1; i < 2; ++i) | |
| a[i] = 1.1; | |
| sum += a[1]; | |
| sum += o.b[1]; | |
| return sum; | |
| } | |
| var o = { | |
| a: [1], | |
| b: [2, 3] | |
| }; | |
| WScript.Echo("test23: " + test23(o)); | |
| o.a = [1]; | |
| o.b = o.a; | |
| WScript.Echo("test23: " + test23(o)); | |
| })(); | |
| (function test24Runner() { | |
| function test24(a, profile) { | |
| var sum = 0; | |
| var o = {}; | |
| o.a = a; | |
| for(var i = 0; i < 2; ++i) { | |
| if(profile) | |
| o.a[1] = null; | |
| else | |
| sum += o.a[0]; | |
| } | |
| return sum; | |
| } | |
| var a = [1.1, 2.2]; | |
| WScript.Echo("test24: " + test24(a, true)); | |
| WScript.Echo("test24: " + test24(a, false)); | |
| })(); | |
| (function test25Runner() { | |
| function test25(a, b) { | |
| var sum = 0; | |
| sum += a[0]; | |
| b[3] = 0; | |
| sum += a[2]; | |
| return sum; | |
| } | |
| var a = [1, 2, 3]; | |
| var b = {}; | |
| WScript.Echo("test25: " + test25(a, b)); | |
| a = [1]; | |
| b = a; | |
| WScript.Echo("test25: " + test25(a, b)); | |
| })(); | |
| (function test26Runner() { | |
| function test26(a, b) { | |
| var c = a[0]; | |
| b[0] = "x"; | |
| WScript.Echo("test26: " + a[0]); | |
| }; | |
| var a = [1]; | |
| test26(a, {}); | |
| test26(a, a); | |
| })(); | |
| (function test27Runner() { | |
| function test27(o) { | |
| if(o) { | |
| o.p; | |
| return 1; | |
| o.p === o.p; | |
| } | |
| Math.log(1); | |
| } | |
| var o = { get p() { return 0; } }; | |
| test27(o); | |
| test27(0); | |
| })(); | |
| (function test28Runner() { | |
| function test28(a, profile) { | |
| var sum = 0; | |
| var o = {}; | |
| o.a = a; | |
| for(var i = 0; i < 2; ++i) { | |
| for(var j = 0; j < 2; ++j) { | |
| if(profile) | |
| o.a[1] = null; | |
| else | |
| sum += o.a[0]; | |
| } | |
| for(var j = 0; j < 2; ++j) { | |
| if(profile) | |
| o.a[1] = null; | |
| else | |
| sum += o.a[0]; | |
| } | |
| } | |
| return sum; | |
| } | |
| var a = [1.1, 2.2]; | |
| WScript.Echo("test28: " + Math.round(test28(a, true) * 10) / 10); | |
| WScript.Echo("test28: " + Math.round(test28(a, false) * 10) / 10); | |
| })(); | |
| function test29() { | |
| var a0 = []; | |
| var a1 = []; | |
| for(var i = 0; i < 2; ++i) { | |
| a0.push(0); | |
| test29a(a1); | |
| } | |
| function test29a(a) { | |
| a[2] = 1.1; | |
| a[1]; | |
| } | |
| }; | |
| test29(); | |
| test29(); | |
| (function test30Runner() { | |
| function test30(a) { | |
| a[0]; | |
| for(var i = 0; i < 2; ++i) { | |
| if(i === 0) | |
| a[2] = 0; | |
| else | |
| a.push(0); | |
| } | |
| }; | |
| var a = [0]; | |
| test30(a); | |
| test30(a); | |
| })(); | |
| (function test31Runner() { | |
| function test31(a) { | |
| a[0]; | |
| for(var i = 0; i < 2; ++i) { | |
| if(i === 0) | |
| a[2] = 0; | |
| else | |
| a.push(0); | |
| } | |
| }; | |
| var a = [null]; | |
| test31(a); | |
| test31(a); | |
| })(); | |
| function test32(b, d) { | |
| var c = 1; | |
| do { | |
| var a = c; | |
| c = -b; | |
| ++b; | |
| } while(d); | |
| return a; | |
| }; | |
| WScript.Echo("test32: " + test32(0, 0)); | |
| WScript.Echo("test32: " + test32(0, 0)); | |
| function test33(a) { | |
| return test33a(a); | |
| function test33a(a) { | |
| return a << this; | |
| } | |
| }; | |
| test33(3); | |
| test33({}); | |
| function test34() { | |
| var a = [0]; | |
| var b = a; | |
| a = a.pop(); | |
| b.push(b[0]); | |
| a = b; | |
| for(var i = 0; i < 1; ++i) { | |
| if(!b) { | |
| b = 1; | |
| break; | |
| } | |
| a[0]; | |
| } | |
| }; | |
| test34(); | |
| test34(); | |
| function test35() { | |
| for(var i = 0; i < 1; ++i) | |
| var VarArr0 = [null]; | |
| for(var i = 0; i < 1; ++i) | |
| VarArr0[2] = 0; | |
| } | |
| test35(); | |
| test35(); | |
| function test36() { | |
| return Math.abs(-2147483648) & 1; | |
| } | |
| test36(); | |
| test36(); | |
| function test37() { | |
| var k = ~(2147483648 + (1.1 & 1)); | |
| k -= ((2147483647 - (2147483648 + (1.1 & 1))) * -1073741824); | |
| k |= 0; | |
| return k; | |
| } | |
| WScript.Echo("test37: " + test37()); | |
| WScript.Echo("test37: " + test37()); | |
| (function test38Runner() { | |
| var x; | |
| function test38() { | |
| var z1; | |
| var u3056; | |
| (function() { | |
| with(u3056 += [z1]) x; | |
| })(); | |
| (function() { | |
| for(qmsdtp = 0; qmsdtp < 16 && undefined && (y %= null) ; ++qmsdtp) { | |
| if(qmsdtp % 7 == 5) { | |
| } else { | |
| with(1 ^ (/x/g.prototype.prototype)) { } | |
| } | |
| };; | |
| })(); | |
| }; | |
| test38(); | |
| test38(); | |
| })(); | |
| (function test39Runner() { | |
| var shouldBailout = false; | |
| function test39() { | |
| var IntArr1 = [152]; | |
| var FloatArr0 = [-870672233.9]; | |
| var VarArr0 = []; | |
| var a = 1377203759; | |
| var h = -760994394; | |
| this.prop1 = -7.90411814882572E+18; | |
| var __loopvar1 = 0; | |
| do { | |
| __loopvar1++; | |
| } while(((IntArr1[(((((shouldBailout ? (IntArr1[(((VarArr0[(1)]) >= 0 ? (VarArr0[(1)]) : 0) & 0xF)] = 'x') : undefined), VarArr0[(1)]) >= 0 ? VarArr0[(1)] : 0)) & 0XF)] ? (FloatArr0[(((((shouldBailout ? (FloatArr0[((((this.prop1 /= h)) >= 0 ? ((this.prop1 /= h)) : 0) & 0xF)] = 'x') : undefined), (this.prop1 /= h)) >= 0 ? (this.prop1 /= h) : 0)) & 0XF)] - FloatArr0[(((((shouldBailout ? (FloatArr0[((((a++)) >= 0 ? ((a++)) : 0) & 0xF)] = 'x') : undefined), (a++)) >= 0 ? (a++) : 0)) & 0XF)]) : 1)) && __loopvar1 < 3) | |
| 11 | |
| }; | |
| test39(); | |
| shouldBailout = true; | |
| test39(); | |
| })(); | |
| function test40() { | |
| var p; | |
| for(var i = 0; i < 1; i++) { | |
| do { | |
| p = 1 ^ -2147483649; | |
| if(1 !== p) | |
| p -= 2147483647; | |
| else | |
| break; | |
| } while(false); | |
| } | |
| return p; | |
| } | |
| WScript.Echo("test40: " + test40()); | |
| WScript.Echo("test40: " + test40()); | |
| function test41() { | |
| for(var i = 124.90088411141187; i < 3; i++) { | |
| var a = [_test41_nonexistentRootVar]; | |
| for(var j = 264.3966821487993; j < 4; ++j) { | |
| var a = [_test41_nonexistentRootVar]; | |
| _test41_nonexistentRootVar = a[2]; | |
| } | |
| } | |
| } | |
| test41(); | |
| test41(); | |
| function test42() { | |
| var a = []; | |
| a[1] = -3; | |
| a[2147483648] = -3; | |
| a[a.length] = -2; | |
| function test42a() { | |
| return a[2147483646]; | |
| } | |
| while(test42a()) { | |
| } | |
| a.pop(); | |
| while(a.pop()); | |
| "" + [].slice(); | |
| } | |
| test42(); | |
| test42(); | |
| test42(); | |
| test42(); | |
| function test43() { | |
| var a = new Int8Array(); | |
| do { | |
| { }; | |
| Array(a).shift()[0]; | |
| } while(false); | |
| } | |
| test43(); | |
| test43(); | |
| function test44() { | |
| var obj1 = {}; | |
| var test44a = function() { | |
| return protoObj1 < obj1 || 1 != 1; | |
| }; | |
| var protoObj1 = Object(obj1); | |
| obj1.prop0 = 1; | |
| for(var i = 0; test44a() && i < 1; ++i); | |
| } | |
| test44(); | |
| test44(); | |
| function test45() { | |
| var arrObj0; | |
| var protoObj0 = {}; | |
| protoObj0.prop0 = 1; | |
| var v15 = Array(); | |
| protoObj0.prop0; | |
| if(v15 instanceof Date) { | |
| v15[protoObj0.prop0 && arrObj0.length]; | |
| } | |
| } | |
| test45(); | |
| test45(); | |
| function test46() { | |
| var protoObj0 = Object(); | |
| protoObj0.length = 100; | |
| 1 >> -964252921 + protoObj0.length - ~1; | |
| } | |
| test46(); | |
| test46(); | |
| function test47() { | |
| var a = 0, sum = 0; | |
| for(var i = 0; i < 2; ++i) { | |
| sum -= a; | |
| a = {}; | |
| } | |
| return sum; | |
| } | |
| test47(); | |
| test47(); | |
| (function test48Runner() { | |
| var ctxt = { | |
| getStackVar: function() { try { } catch(ex) { } } | |
| }; | |
| function test48(oargs, sttop2) { | |
| for(var asis_from = oargs.length - 1; asis_from >= 0; asis_from--) { | |
| if(oargs[asis_from].containsFunctionCall()) { | |
| break; | |
| } | |
| } | |
| asis_from++; | |
| var args = []; | |
| for(var i = 0; i < asis_from; i++) { | |
| args[i] = ctxt.getStackVar(sttop2 + i); | |
| } | |
| for(; i < oargs.length; i++) { | |
| args[i] = oargs[i]; | |
| } | |
| } | |
| var args = []; | |
| test48(args, 0); | |
| test48(args, 0); | |
| })(); | |
| function test49() { | |
| var obj0 = {}; | |
| var arrObj0 = {}; | |
| obj0.method1 = function() { | |
| while(arrObj0[{} + 0] || (arguments[{}] = 'x', arrObj0[{} + 0])) { | |
| } | |
| }; | |
| arrObj0.method0 = obj0.method1; | |
| arrObj0[0] = -238193011.9; | |
| arrObj0.method0(); | |
| "" + []; | |
| } | |
| test49(); | |
| test49(); | |
| function test50(a) { | |
| var index = -6; | |
| for(var i = 0; i < 1; ++i) { | |
| var index2 = index; | |
| index = index2; | |
| a[index]; | |
| } | |
| } | |
| test50([]); | |
| test50([]); | |
| function test51(v1, n) { | |
| var v2 = 0; | |
| var v3 = -6; | |
| for(var i = 0; i < n; ++i) { | |
| v2 = v3; | |
| v1[v3]; | |
| v3 = v2; | |
| } | |
| } | |
| test51([null], 0); | |
| test51([null], 1); | |
| (function test52Runner() { | |
| function test52(a) { | |
| var sum = 0; | |
| var j = 1; | |
| for(var i = 0; i < 12; ++i) { | |
| if(j == 11) | |
| j = 0; | |
| else | |
| ++j; | |
| sum += a[j]; | |
| } | |
| return sum; | |
| } | |
| var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; | |
| test52(a); | |
| test52(a); | |
| })(); | |
| (function test53Runner() { | |
| function test53(a, j) { | |
| var sum = 0; | |
| for(var i = 0; i < 12; ++i) { | |
| if(j == 11) | |
| j = 0; | |
| else | |
| ++j; | |
| sum += a[j]; | |
| } | |
| return sum; | |
| } | |
| var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; | |
| test53(a, 1); | |
| test53(a, 1); | |
| })(); | |
| function test54() { | |
| var a = 1420236100; | |
| for(var i = 0; a += 27, i < 1; ++i) { | |
| } | |
| } | |
| test54(); | |
| test54(); | |
| function test55(a, b) { | |
| b >>= 0; | |
| return a >>> b--; | |
| } | |
| WScript.Echo("test55: " + test55(-1, 0)); | |
| WScript.Echo("test55: " + test55(-1, 0)); | |
| function test56() { | |
| if('a' ? null : undefined) { | |
| if(this) | |
| test56a(); | |
| } | |
| function test56a() { } | |
| } | |
| test56(); | |
| test56(); | |
| function test57(a) { | |
| var b = (a + 1) | 0; | |
| var c = a + 1; | |
| return c - b; | |
| } | |
| WScript.Echo("test57: " + test57(0x7fffffff)); | |
| WScript.Echo("test57: " + test57(0x7fffffff)); | |
| function test58(a) { | |
| return 1 / (a * -1 && test58a()); | |
| function test58a() { | |
| try { } catch(ex) { } | |
| return 1; | |
| } | |
| } | |
| WScript.Echo("test58: " + test58(0)); | |
| WScript.Echo("test58: " + test58(0)); | |
| function test59() { | |
| var f64 = new Float64Array(256); | |
| if(!f64.length) { | |
| while(f64[120]) { | |
| } | |
| } | |
| } | |
| test59(); | |
| test59(); | |
| function test60(a) { | |
| var sum = 0; | |
| var j = 2; | |
| for(var i = 0; i < 2; ++i) { | |
| j -= j; | |
| sum += a[j]; | |
| } | |
| return sum; | |
| } | |
| test60([1]); | |
| test60([1]); | |
| function test61(arr, a) { | |
| var v7 = 0; | |
| var v8 = 0; | |
| do { | |
| v8 = v7; | |
| v7 = arr[0]; | |
| if(v8) { | |
| break; | |
| } | |
| ++a; | |
| } while(!test61); | |
| return a; | |
| } | |
| WScript.Echo("test61: " + test61([], 0)); | |
| WScript.Echo("test61: " + test61([], 0)); | |
| (function test62Runner() { | |
| var boo = false; | |
| function test62() { | |
| var n = boo ? 1 : 2; | |
| var a = [1, 1]; | |
| var i = n - 2, j = i, k = i; | |
| var sum = 0; | |
| while(sum += a[j]) { | |
| ++i; | |
| if(i >= n) | |
| break; | |
| sum += a[k]; | |
| ++j; | |
| ++k; | |
| } | |
| } | |
| test62(); | |
| test62(); | |
| })(); | |
| function test63(a, b) { | |
| a |= 0; | |
| b |= 0; | |
| if(a >= b) { | |
| if(a + 1 === 0x3fffffff + 1) | |
| return a + 1; | |
| } | |
| return 0; | |
| } | |
| test63(); | |
| test63(); | |
| function test64(a) { | |
| a |= 0; | |
| if(a < 0) | |
| a = 0; | |
| return a + 0x7fffffff; | |
| } | |
| test64(0); | |
| test64(0); | |
| (function test65Runner() { | |
| function test65(o, s) { | |
| var a = o[s]; | |
| o.a = a; | |
| var b; | |
| var sum = 0; | |
| for(var i = 0; i < 2; ++i) { | |
| sum += a.p; | |
| b = o.a; | |
| sum += a[i]; | |
| } | |
| return sum + (b ? 1 : 0); | |
| } | |
| var o = { a: [1, 2] }; | |
| o.a.p = 3; | |
| test65(o, "a"); | |
| test65(o, "a"); | |
| })(); | |
| function test66() { | |
| var a = test66a(0); | |
| var b = test66a(); | |
| return a + b; | |
| function test66a() { | |
| return test66a.arguments.length; | |
| } | |
| } | |
| WScript.Echo("test66: " + test66()); | |
| WScript.Echo("test66: " + test66()); |