| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| var GiantPrintArray = []; |
| var reuseObjects = false; |
| var PolymorphicFuncObjArr = []; |
| var PolyFuncArr = []; |
| function GetPolymorphicFunction() { |
| if(PolyFuncArr.length > 1) { |
| var myFunc = PolyFuncArr.shift(); |
| PolyFuncArr.push(myFunc); |
| return myFunc; |
| } |
| else { |
| return PolyFuncArr[0]; |
| } |
| } |
| function GetObjectwithPolymorphicFunction() { |
| if(reuseObjects) { |
| if(PolymorphicFuncObjArr.length > 1) { |
| var myFunc = PolymorphicFuncObjArr.shift(); |
| PolymorphicFuncObjArr.push(myFunc); |
| return myFunc |
| } |
| else { |
| return PolymorphicFuncObjArr[0]; |
| } |
| } |
| else { |
| var obj = {}; |
| obj.polyfunc = GetPolymorphicFunction(); |
| PolymorphicFuncObjArr.push(obj) |
| return obj |
| } |
| }; |
| function InitPolymorphicFunctionArray() { |
| for(var i = 0; i < arguments.length; i++) { |
| PolyFuncArr.push(arguments[i]) |
| } |
| } |
| ; |
| function test0() { |
| var obj0 = {}; |
| var obj1 = {}; |
| var arrObj0 = {}; |
| var func0 = function(argArrObj0, argFunc1, argMath2, argArr3) { |
| arrObj0.prop0 = argArr3.push(arrObj0.prop0); |
| GiantPrintArray.push(arrObj0.prop0); |
| var _y = argArr3.length; |
| var _x = argArr3[_y]; |
| GiantPrintArray.push(_x); |
| } |
| var func1 = function(argMath4) { |
| (obj0.length = (c++)); |
| } |
| var func2 = function(argMath5, argArrObj6, argFunc7) { |
| GiantPrintArray.push('obj1.prop0 = ' + (obj1.prop0 | 0)); |
| } |
| obj0.method0 = func1; |
| var f64 = new Float64Array(256); |
| var FloatArr0 = []; |
| var c = 1; |
| var aliasOfObj0 = obj0;; |
| var aliasOfarrObj0 = arrObj0;; |
| var aliasOfFloatArr0 = FloatArr0;; |
| function bar0(argFunc8, argArrObj9, argMath10, argArrObj11) { |
| arrObj0.prop0 = 1; |
| } |
| if((bar0(1, 1, 1, 1) >= func2.call(arrObj0, obj0.method0.call(obj1, 1), 1, 1))) { |
| } |
| else { |
| aliasOfFloatArr0[(2)] = 1; |
| } |
| var __loopvar1 = 0; |
| for(var strvar0 in f64) { |
| if(strvar0.indexOf('method') != -1) continue; |
| if(__loopvar1++ > 3) break; |
| func0.call(aliasOfObj0, 1, 1, 1, aliasOfFloatArr0); |
| // Snippet switch2 |
| aliasOfarrObj0.prop0 = (function() { |
| switch(Object.keys(obj0).length) { |
| case 1: |
| return 1; |
| case 2: |
| return aliasOfarrObj0.length; |
| case 3: |
| return 1; |
| case 4: |
| case 5: |
| case "1": |
| return 1; |
| case "2": |
| return 1; |
| case "3": |
| return 1; |
| case "4": |
| return 1; |
| } |
| })(); |
| } |
| }; |
| |
| // generate profile |
| test0(); |
| |
| // run JITted code |
| runningJITtedCode = true; |
| test0(); |
| |
| WScript.Echo("pass"); |