| //------------------------------------------------------------------------------------------------------- | |
| // 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 G = 0; | |
| function test0(){ | |
| var obj0 = {}; | |
| var obj1 = {}; | |
| var func1 = function(){ | |
| var __loopvar2 = 0; | |
| while(__loopvar2 < 3) { | |
| __loopvar2++; | |
| while(a < (1)) { | |
| break ; | |
| } | |
| var a = 1; | |
| (shouldBailout ? (a = { valueOf: function () { G += 1; return 3; } }, 1) : 1); | |
| } | |
| } | |
| var func2 = function(){ | |
| } | |
| obj0.method0 = func2; | |
| var i16 = new Int16Array(256); | |
| var ui8 = new Uint8Array(256); | |
| var a = 1; | |
| var c = 1; | |
| var d = 1; | |
| var e = 1; | |
| //Snippet 1: basic inlining test | |
| obj0.prop0 = (function(x,y,z) { | |
| obj1.prop0 = func1(); | |
| return obj0.method0(); | |
| })((c *= (shouldBailout ? (a = { valueOf: function() { G += 10; return 3; } }, ui8[((obj1.length, 2, 2.7970894295654E+18)) & 255]) : ui8[((obj1.length, 2, 2.7970894295654E+18)) & 255])),(d >>>= i16[((shouldBailout ? (a = { valueOf: function() { G += 100; return 3; } }, (! 2)) : (! 2))) & 255]),((~ 0) ^ a)); | |
| }; | |
| // generate profile | |
| test0(); | |
| // run JITted code | |
| test0(); | |
| // run code with bailouts enabled | |
| shouldBailout = true; | |
| test0(); | |
| if (G == 102) | |
| { | |
| WScript.Echo("Passed"); | |
| } | |
| else | |
| { | |
| WScript.Echo("FAILED"); | |
| } |