blob: bbfe3b3e039960849be62e995bed14390f0eb0e1 [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 addAccessorPropertiesToGlobal() {
var getter = function () { throw new Error("This getter should not get called"); };
var setter = function () { throw new Error("This setter should not get called"); };
Object.defineProperty(this, "foo", {
get: getter,
set: setter,
configurable: true
});
Object.defineProperty(this, "bar", {
get: getter,
set: setter,
configurable: true
});
Object.defineProperty(this, "nonConfigurableFoo", {
get: getter,
set: setter,
configurable: false
});
Object.defineProperty(this, "nonConfigurableBar", {
get: getter,
set: setter,
configurable: false
});
// double check that the property is added as expected according to spec
var d = Object.getOwnPropertyDescriptor(this, "foo");
assertPropertyExists(d, 'get', getter);
assertPropertyExists(d, 'set', setter);
assertPropertyExists(d, 'configurable', true);
assertPropertyExists(d, 'enumerable', false);
assertPropertyDoesNotExist(d, 'writable');
assertPropertyDoesNotExist(d, 'value');
d = Object.getOwnPropertyDescriptor(this, "bar");
assertPropertyExists(d, 'get', getter);
assertPropertyExists(d, 'set', setter);
assertPropertyExists(d, 'configurable', true);
assertPropertyExists(d, 'enumerable', false);
assertPropertyDoesNotExist(d, 'writable');
assertPropertyDoesNotExist(d, 'value');
var d = Object.getOwnPropertyDescriptor(this, "nonConfigurableFoo");
assertPropertyExists(d, 'get', getter);
assertPropertyExists(d, 'set', setter);
assertPropertyExists(d, 'configurable', false);
assertPropertyExists(d, 'enumerable', false);
assertPropertyDoesNotExist(d, 'writable');
assertPropertyDoesNotExist(d, 'value');
var d = Object.getOwnPropertyDescriptor(this, "nonConfigurableBar");
assertPropertyExists(d, 'get', getter);
assertPropertyExists(d, 'set', setter);
assertPropertyExists(d, 'configurable', false);
assertPropertyExists(d, 'enumerable', false);
assertPropertyDoesNotExist(d, 'writable');
assertPropertyDoesNotExist(d, 'value');
}).call(this);