| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| //Switches: -maxinterpretcount:6 |
| //Baseline Switches: -nonative |
| //Arch: X86 |
| var shouldBailout = true; |
| function test0(){ |
| var obj1 = {}; |
| var arrObj0 = {}; |
| var func0 = function(argArr0,argArr1,argFunc2){ |
| ary.pop(); |
| for(var __loopvar4 = 0; __loopvar4 < 3 && obj1.prop2 < (ary[(((argArr1[((shouldBailout ? (argArr1[1] = "x") : undefined ), 1)] >= 0 ? argArr1[((shouldBailout ? (argArr1[1] = "x") : undefined ), 1)] : 0)) & 0XF)]); __loopvar4++, 1) { |
| } |
| } |
| var func1 = function(argFunc3,argMath4,argObj5){ |
| func0(1, ary, 1); |
| } |
| var func2 = function(){ |
| var __loopvar4 = 0; |
| do { |
| __loopvar4++; |
| } while((func1.call(arrObj0 , 1, func0(1, 1, 1), 1)) && __loopvar4 < 3) |
| } |
| var ary = new Array(10); |
| if(func2.call(arrObj0 )) { |
| 1 } |
| }; |
| |
| // generate profile |
| test0(); |
| test0(); |
| test0(); |
| test0(); |
| test0(); |
| test0(); |
| |
| // run JITted code |
| runningJITtedCode = true; |
| test0(); |
| test0(); |
| test0(); |
| test0(); |
| test0(); |
| test0(); |
| |
| // run code with bailouts enabled |
| shouldBailout = true; |
| test0(); |
| |
| WScript.Echo('pass'); |