mirror of
https://github.com/tc39/test262.git
synced 2025-07-22 21:45:04 +02:00
Add Object.defineProperties test
This commit is contained in:
parent
56cbc61e42
commit
07ff2ffa4a
@ -0,0 +1,51 @@
|
|||||||
|
// Copyright (C) 2020 Alexey Shvayka. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: sec-object.getownpropertydescriptors
|
||||||
|
description: >
|
||||||
|
If Proxy "ownKeys" trap is missing, keys are sorted by type in ascending
|
||||||
|
chronological order.
|
||||||
|
info: |
|
||||||
|
ObjectDefineProperties ( O, Properties )
|
||||||
|
|
||||||
|
[...]
|
||||||
|
3. Let keys be ? props.[[OwnPropertyKeys]]().
|
||||||
|
[...]
|
||||||
|
4. For each element nextKey of keys in List order, do
|
||||||
|
a. Let propDesc be ? props.[[GetOwnProperty]](nextKey).
|
||||||
|
|
||||||
|
[[OwnPropertyKeys]] ( )
|
||||||
|
|
||||||
|
[...]
|
||||||
|
6. If trap is undefined, then
|
||||||
|
a. Return ? target.[[OwnPropertyKeys]]().
|
||||||
|
|
||||||
|
OrdinaryOwnPropertyKeys ( O )
|
||||||
|
|
||||||
|
[...]
|
||||||
|
3. For each own property key P of O such that Type(P) is String and P is
|
||||||
|
not an array index, in ascending chronological order of property creation, do
|
||||||
|
a. Add P as the last element of keys.
|
||||||
|
4. For each own property key P of O such that Type(P) is Symbol,
|
||||||
|
in ascending chronological order of property creation, do
|
||||||
|
a. Add P as the last element of keys.
|
||||||
|
5. Return keys.
|
||||||
|
features: [Proxy, Symbol]
|
||||||
|
includes: [compareArray.js]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var target = {};
|
||||||
|
var sym = Symbol();
|
||||||
|
target[sym] = 1;
|
||||||
|
target.foo = 2;
|
||||||
|
target[0] = 3;
|
||||||
|
|
||||||
|
var getOwnKeys = [];
|
||||||
|
var proxy = new Proxy(target, {
|
||||||
|
getOwnPropertyDescriptor: function(_target, key) {
|
||||||
|
getOwnKeys.push(key);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
Object.defineProperties({}, proxy);
|
||||||
|
assert.compareArray(getOwnKeys, ["0", "foo", sym]);
|
Loading…
x
Reference in New Issue
Block a user