mirror of https://github.com/tc39/test262.git
Proxy, [[OwnPropertyKeys]]: If trapResult contains any duplicate entries, throw a TypeError
Ref: https://github.com/tc39/ecma262/pull/833
This commit is contained in:
parent
3ebd97ca9b
commit
9e88bb9a45
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright (C) 2017 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys
|
||||||
|
description: >
|
||||||
|
The returned list must not contain any duplicate entries.
|
||||||
|
info: >
|
||||||
|
[[OwnPropertyKeys]] ( )
|
||||||
|
|
||||||
|
...
|
||||||
|
9. If trapResult contains any duplicate entries, throw a TypeError exception.
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var p = new Proxy({}, {
|
||||||
|
ownKeys() {
|
||||||
|
return ["a", "a"];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
Object.keys(p);
|
||||||
|
});
|
|
@ -0,0 +1,23 @@
|
||||||
|
// Copyright (C) 2017 the V8 project authors. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys
|
||||||
|
description: >
|
||||||
|
The returned list must not contain any duplicate entries.
|
||||||
|
info: >
|
||||||
|
[[OwnPropertyKeys]] ( )
|
||||||
|
|
||||||
|
...
|
||||||
|
9. If trapResult contains any duplicate entries, throw a TypeError exception.
|
||||||
|
---*/
|
||||||
|
|
||||||
|
var s = Symbol();
|
||||||
|
var p = new Proxy({}, {
|
||||||
|
ownKeys() {
|
||||||
|
return [s, s];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.throws(TypeError, function() {
|
||||||
|
Object.keys(p);
|
||||||
|
});
|
Loading…
Reference in New Issue