blob: 9770155b8fc55c717e07804b0db8abe33d9e5e8d [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.
//-------------------------------------------------------------------------------------------------------
// -maxinterpretcount:1 -off:objtypespec
function test0(o2) {
var o = {};
var a = [1];
var sum = a[0];
sum += a[0];
o.a = a;
if(!o2)
o.a = [];
o2.b = a;
var b = o.a;
b[0] = 2;
sum += b[0];
return sum;
}
var o2 = {};
Object.defineProperty(
o2,
"b",
{
configurable: true,
enumerable: true,
set: function(a) {
Object.defineProperty(
a,
"0",
{
configurable: true,
enumerable: true,
writable: false,
value: 999
});
}
});
WScript.Echo(test0({}));
WScript.Echo(test0(o2));
// -maxinterpretcount:1 -off:objtypespec
function test1() {
test1a({ p: 2 }, { p2: 0 }, 0);
var o = { p: 2 };
var o2 = {};
Object.defineProperty(
o2,
'p2',
{
configurable: true,
enumerable: true,
set: function() {
o.p = 2;
}
});
test1a(o, o2, 0);
function test1a(o, o2, b) {
o.p = true;
if(b)
o.p = true;
o2.p2 = o2;
return o.p >>> 2147483647;
}
};
test1();