blob: df2b4e7502c5a82cd2233c5840b4e7c58b1cfd0c [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.
//-------------------------------------------------------------------------------------------------------
WScript.LoadScriptFile("..\\UnitTestFramework\\UnitTestFramework.js");
var tests = [
{
name: "Object literal shorthand syntax with symbol lookup",
body: function () {
(function () {
let a = 1;
{
let a = 2;
var m = {a};
assert.areEqual(m.a, 2, "Name node in object literal shorthand is binding correctly with inner block");
}
})();
{
let a2 = 1;
({a2} = {a2:2});
assert.areEqual(a2, 2, "Destructuring object pattern : Name node in object literal shorthand is binding correctly with inner block");
}
{
// Object literal shorthand - referenced in different scopoe works correctly.
{ d; }
{
{ { d;} };
var c = {d};
}
{
var d = [];
}
}
}
},
{
name: "Getter/setter methods defined in object literal should not have 'prototype' property",
body: function () {
var o = {
get m() {},
set m(v) {}
};
var g = Object.getOwnPropertyDescriptor(o, 'm').get;
var s = Object.getOwnPropertyDescriptor(o, 'm').set;
assert.areEqual(false, g.hasOwnProperty('prototype'), "Getter method defined in object literal should not have 'prototype' property");
assert.areEqual(false, s.hasOwnProperty('prototype'), "Setter method defined in object literal should not have 'prototype' property");
}
},
];
testRunner.runTests(tests, { verbose: WScript.Arguments[0] != "summary" });