| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- var shouldBailout = false;
- 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(args) {
- PolyFuncArr = [];
- for (var i = 0; i < args.length; i++) {
- PolyFuncArr.push(args[i])
- }
- }
- ;
- function test0() {
- var obj0 = {};
- var arrObj0 = {};
- var ary = new Array(10);
- var FloatArr0 = 1;
- var h = 1;
- var __loopvar0 = 0;
- do {
- __loopvar0++;
- // Snippet: Array Check hoist for nested loop where bailout happens before 2nd loop.
- var v4916 = 0;
- arrObj0[5] = "temp";
- for (var v4917 = 0 ; v4917 < 3 ; v4917++) {
- for (var v4918 = 0 ; v4918 < 3 ; v4918++) {
- v4916 += arrObj0[v4918 + v4917];
- }
- if (shouldBailout) {
- Object.defineProperty(arrObj0, "5", { get: function () { GiantPrintArray.push("getter"); return 5; }, configurable: true });
- }
- for (var v4919 = 0 ; v4919 < 3 ; v4919++) {
- v4916 += arrObj0[v4919 + v4917];
- }
- 1
- }
- GiantPrintArray.push(v4916);
- var __loopvar3 = 0;
- do {
- __loopvar3++;
- litObj4 = { prop0: 1, prop1: (ary.shift()), prop2: (ary.pop()), prop3: 1, prop4: 1, prop5: 1, prop6: 1, prop7: 1 };
- var uniqobj2 = { prop0: (ary[((shouldBailout ? (ary[1] = 'x') : undefined), 1)], 1, 1, 1), prop1: 1 };
- } while ((1) && __loopvar3 < 3)
- arrObj0 = Object.prototype;
- var id29 = (ary.push((h ^= -4.00753612819473E+18), FloatArr0[(((174 >= 0 ? 174 : 0)) & 0XF)], obj0.prop2))
- ;
- } while ((1) && __loopvar0 < 3)
- for (var i = 0; i < GiantPrintArray.length; i++) {
- WScript.Echo(GiantPrintArray[i]);
- };
- };
- // generate profile
- test0();
- // Run Simple JIT
- test0();
- // run JITted code
- runningJITtedCode = true;
- test0();
- // run code with bailouts enabled
- shouldBailout = true;
- test0();
|