blob: 66e78e6072c849ee139f828f65bfffd948cd3cec [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 write(msg) { WScript.Echo(msg); }
function Getter() { write("GETTER"); return "GetterValue"; }
function SafeCall(f)
{
try
{
f();
}
catch (e)
{
write(e.name);
}
}
// Object.getOwnPropertyDescriptor
write("Test 1");
SafeCall(function() { Object.getOwnPropertyDescriptor(); });
write("Test 2");
SafeCall(function() { write(Object.getOwnPropertyDescriptor({})); });
write("Test 3");
SafeCall(function() { write(Object.getOwnPropertyDescriptor({'undefined':4}).value); });
// Object.defineProperty
write("Test 4");
SafeCall(function() { Object.defineProperty(); });
write("Test 5");
SafeCall(function() { Object.defineProperty({}); });
write("Test 6");
SafeCall(function() { Object.defineProperty({}, 'foo'); });
write("Test 7");
SafeCall(function() { Object.defineProperty({},
{ toString : function() { throw {name:'MyError'}; } });
});
write("Test 8");
SafeCall(function() { var obj = {};
Object.defineProperty(obj, undefined, { value:4, writable:true });
write(obj['undefined']);
});
// Object.defineProperties
write("Test 9");
SafeCall(function() { Object.defineProperties(); });
write("Test 10");
SafeCall(function() { Object.defineProperties({}); });
// Array.prototype methods
var obj = {};
Object.defineProperty(obj, "length", { get:Getter, configurable:true });
write("Test 11");
SafeCall(function() { Array.prototype.every.call(obj); });
write("Test 12");
SafeCall(function() { Array.prototype.some.call(obj); });
write("Test 13");
SafeCall(function() { Array.prototype.forEach.call(obj); });
write("Test 14");
SafeCall(function() { Array.prototype.map.call(obj); });
write("Test 15");
SafeCall(function() { Array.prototype.filter.call(obj); });
write("Test 16");
SafeCall(function() { Array.prototype.reduce.call(obj); });
write("Test 17");
SafeCall(function() { Array.prototype.reduceRight.call(obj); });