diff options
Diffstat (limited to 'js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/inherited-properties-omitted.js')
-rw-r--r-- | js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/inherited-properties-omitted.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/inherited-properties-omitted.js b/js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/inherited-properties-omitted.js new file mode 100644 index 0000000000..68dc936d86 --- /dev/null +++ b/js/src/tests/test262/built-ins/Object/getOwnPropertyDescriptors/inherited-properties-omitted.js @@ -0,0 +1,45 @@ +// Copyright (C) 2016 Jordan Harband. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Object.getOwnPropertyDescriptors does not see inherited properties. +esid: sec-object.getownpropertydescriptors +author: Jordan Harband +---*/ + +var F = function() {}; +F.prototype.a = {}; +F.prototype.b = {}; + +var f = new F(); +var bValue = {}; +f.b = bValue; // shadow the prototype +Object.defineProperty(f, 'c', { + enumerable: false, + configurable: true, + writable: false, + value: {} +}); // solely an own property + +var result = Object.getOwnPropertyDescriptors(f); + +assert.sameValue(!!result.b, true, 'b has a descriptor'); +assert.sameValue(!!result.c, true, 'c has a descriptor'); + +assert.sameValue(result.b.enumerable, true, 'b is enumerable'); +assert.sameValue(result.b.configurable, true, 'b is configurable'); +assert.sameValue(result.b.writable, true, 'b is writable'); +assert.sameValue(result.b.value, bValue, 'b’s value is `bValue`'); + +assert.sameValue(result.c.enumerable, false, 'c is enumerable'); +assert.sameValue(result.c.configurable, true, 'c is configurable'); +assert.sameValue(result.c.writable, false, 'c is writable'); +assert.sameValue(result.c.value, f.c, 'c’s value is `f.c`'); + +assert.sameValue( + Object.keys(result).length, + 2, + 'result has same number of own property names as f' +); + +reportCompare(0, 0); |