mirror of https://github.com/tc39/test262.git
Object.defineProperties: Property description must be an object. Fixes gh-1754
This commit is contained in:
parent
c5e8aa9ca2
commit
db5b9c1dd9
|
@ -0,0 +1,29 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-objectdefineproperties
|
||||
description: >
|
||||
Property description must be an object (bigint)
|
||||
info: |
|
||||
ObjectDefineProperties ( O, Properties )
|
||||
|
||||
...
|
||||
For each element nextKey of keys, do
|
||||
Let propDesc be ? props.[[GetOwnProperty]](nextKey).
|
||||
If propDesc is not undefined and propDesc.[[Enumerable]] is true, then
|
||||
Let descObj be ? Get(props, nextKey).
|
||||
Let desc be ? ToPropertyDescriptor(descObj).
|
||||
...
|
||||
|
||||
ToPropertyDescriptor ( Obj )
|
||||
|
||||
If Type(Obj) is not Object, throw a TypeError exception.
|
||||
...
|
||||
features: [BigInt]
|
||||
---*/
|
||||
|
||||
assert.throws(TypeError, () => {
|
||||
Object.defineProperties({}, {
|
||||
a: 0n
|
||||
});
|
||||
});
|
|
@ -0,0 +1,28 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-objectdefineproperties
|
||||
description: >
|
||||
Property description must be an object (false)
|
||||
info: |
|
||||
ObjectDefineProperties ( O, Properties )
|
||||
|
||||
...
|
||||
For each element nextKey of keys, do
|
||||
Let propDesc be ? props.[[GetOwnProperty]](nextKey).
|
||||
If propDesc is not undefined and propDesc.[[Enumerable]] is true, then
|
||||
Let descObj be ? Get(props, nextKey).
|
||||
Let desc be ? ToPropertyDescriptor(descObj).
|
||||
...
|
||||
|
||||
ToPropertyDescriptor ( Obj )
|
||||
|
||||
If Type(Obj) is not Object, throw a TypeError exception.
|
||||
...
|
||||
---*/
|
||||
|
||||
assert.throws(TypeError, () => {
|
||||
Object.defineProperties({}, {
|
||||
a: false
|
||||
});
|
||||
});
|
|
@ -0,0 +1,28 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-objectdefineproperties
|
||||
description: >
|
||||
Property description must be an object (null)
|
||||
info: |
|
||||
ObjectDefineProperties ( O, Properties )
|
||||
|
||||
...
|
||||
For each element nextKey of keys, do
|
||||
Let propDesc be ? props.[[GetOwnProperty]](nextKey).
|
||||
If propDesc is not undefined and propDesc.[[Enumerable]] is true, then
|
||||
Let descObj be ? Get(props, nextKey).
|
||||
Let desc be ? ToPropertyDescriptor(descObj).
|
||||
...
|
||||
|
||||
ToPropertyDescriptor ( Obj )
|
||||
|
||||
If Type(Obj) is not Object, throw a TypeError exception.
|
||||
...
|
||||
---*/
|
||||
|
||||
assert.throws(TypeError, () => {
|
||||
Object.defineProperties({}, {
|
||||
a: null
|
||||
});
|
||||
});
|
|
@ -0,0 +1,28 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-objectdefineproperties
|
||||
description: >
|
||||
Property description must be an object (number)
|
||||
info: |
|
||||
ObjectDefineProperties ( O, Properties )
|
||||
|
||||
...
|
||||
For each element nextKey of keys, do
|
||||
Let propDesc be ? props.[[GetOwnProperty]](nextKey).
|
||||
If propDesc is not undefined and propDesc.[[Enumerable]] is true, then
|
||||
Let descObj be ? Get(props, nextKey).
|
||||
Let desc be ? ToPropertyDescriptor(descObj).
|
||||
...
|
||||
|
||||
ToPropertyDescriptor ( Obj )
|
||||
|
||||
If Type(Obj) is not Object, throw a TypeError exception.
|
||||
...
|
||||
---*/
|
||||
|
||||
assert.throws(TypeError, () => {
|
||||
Object.defineProperties({}, {
|
||||
a: 1
|
||||
});
|
||||
});
|
|
@ -0,0 +1,28 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-objectdefineproperties
|
||||
description: >
|
||||
Property description must be an object (string)
|
||||
info: |
|
||||
ObjectDefineProperties ( O, Properties )
|
||||
|
||||
...
|
||||
For each element nextKey of keys, do
|
||||
Let propDesc be ? props.[[GetOwnProperty]](nextKey).
|
||||
If propDesc is not undefined and propDesc.[[Enumerable]] is true, then
|
||||
Let descObj be ? Get(props, nextKey).
|
||||
Let desc be ? ToPropertyDescriptor(descObj).
|
||||
...
|
||||
|
||||
ToPropertyDescriptor ( Obj )
|
||||
|
||||
If Type(Obj) is not Object, throw a TypeError exception.
|
||||
...
|
||||
---*/
|
||||
|
||||
assert.throws(TypeError, () => {
|
||||
Object.defineProperties({}, {
|
||||
a: ''
|
||||
});
|
||||
});
|
|
@ -0,0 +1,29 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-objectdefineproperties
|
||||
description: >
|
||||
Property description must be an object (symbol)
|
||||
info: |
|
||||
ObjectDefineProperties ( O, Properties )
|
||||
|
||||
...
|
||||
For each element nextKey of keys, do
|
||||
Let propDesc be ? props.[[GetOwnProperty]](nextKey).
|
||||
If propDesc is not undefined and propDesc.[[Enumerable]] is true, then
|
||||
Let descObj be ? Get(props, nextKey).
|
||||
Let desc be ? ToPropertyDescriptor(descObj).
|
||||
...
|
||||
|
||||
ToPropertyDescriptor ( Obj )
|
||||
|
||||
If Type(Obj) is not Object, throw a TypeError exception.
|
||||
...
|
||||
features: [Symbol]
|
||||
---*/
|
||||
|
||||
assert.throws(TypeError, () => {
|
||||
Object.defineProperties({}, {
|
||||
a: Symbol()
|
||||
});
|
||||
});
|
|
@ -0,0 +1,28 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-objectdefineproperties
|
||||
description: >
|
||||
Property description must be an object (true)
|
||||
info: |
|
||||
ObjectDefineProperties ( O, Properties )
|
||||
|
||||
...
|
||||
For each element nextKey of keys, do
|
||||
Let propDesc be ? props.[[GetOwnProperty]](nextKey).
|
||||
If propDesc is not undefined and propDesc.[[Enumerable]] is true, then
|
||||
Let descObj be ? Get(props, nextKey).
|
||||
Let desc be ? ToPropertyDescriptor(descObj).
|
||||
...
|
||||
|
||||
ToPropertyDescriptor ( Obj )
|
||||
|
||||
If Type(Obj) is not Object, throw a TypeError exception.
|
||||
...
|
||||
---*/
|
||||
|
||||
assert.throws(TypeError, () => {
|
||||
Object.defineProperties({}, {
|
||||
a: true
|
||||
});
|
||||
});
|
|
@ -0,0 +1,28 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-objectdefineproperties
|
||||
description: >
|
||||
Property description must be an object (undefined)
|
||||
info: |
|
||||
ObjectDefineProperties ( O, Properties )
|
||||
|
||||
...
|
||||
For each element nextKey of keys, do
|
||||
Let propDesc be ? props.[[GetOwnProperty]](nextKey).
|
||||
If propDesc is not undefined and propDesc.[[Enumerable]] is true, then
|
||||
Let descObj be ? Get(props, nextKey).
|
||||
Let desc be ? ToPropertyDescriptor(descObj).
|
||||
...
|
||||
|
||||
ToPropertyDescriptor ( Obj )
|
||||
|
||||
If Type(Obj) is not Object, throw a TypeError exception.
|
||||
...
|
||||
---*/
|
||||
|
||||
assert.throws(TypeError, () => {
|
||||
Object.defineProperties({}, {
|
||||
a: undefined
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue