blob: 9d2d29f6c339a1f983ccbfaf5f3d9a833b460251 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
function test0() {
'use strict';
try {
var obj0 = {};
var ary = new Array(10);
obj0.length = 1;
var __loopvar3 = 0;
while ((1) && __loopvar3 < 3) {
__loopvar3++;
ary.length = -804513990;
}
//Snippet 3: fewer arguments than formal parameters
obj0.length = (function (x, y, z, w, r) {
e *= obj0.prop0;
var temp = x + y + z + w + r;
return temp + ary[(1)];
})(1, 1, 1);
}
catch(e) {
WScript.Echo(e);
}
};
// generate profile
test0();
// run JITted code
test0();
var shouldBailout = false;
function test1() {
'use strict';
try {
var obj0 = {};
var obj1 = {};
var func2 = function (p0) {
switch ((d)) {
case 1:
break;
case (a--):
break;
default:
obj1.prop0 -= 1;
break;
case 1:
break;
case 1:
break;
}
(shouldBailout ? (Object.defineProperty(obj0, 'prop0', { writable: false, enumerable: true, configurable: true }), 1) : 1);
}
obj1.method0 = func2;
var a = 1;
var d = -27;
obj1.method0();
var __loopvar0 = 0;
do {
__loopvar0++;
} while (((obj0.length & (shouldBailout ? (obj0.prop0 = { valueOf: function () { WScript.Echo('obj0.prop0 valueOf'); return 3; } }, 1) : 1))) && __loopvar0 < 3)
}
catch (e) {
WScript.Echo(e);
}
WScript.Echo("obj1.prop0 = " + (obj1.prop0 | 0));
};
// generate profile
test1();
// run JITted code
test1();
// run code with bailouts enabled
shouldBailout = true;
test1();