mirror of https://github.com/tc39/test262.git
Object.defineProperty: Property description must be an object. Fixes gh-1754
This commit is contained in:
parent
db5b9c1dd9
commit
1cd7d87501
|
@ -0,0 +1,23 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-object.defineproperty
|
||||
description: >
|
||||
Property description must be an object (bigint)
|
||||
info: |
|
||||
Object.defineProperty ( O, P, Attributes )
|
||||
|
||||
...
|
||||
Let desc be ? ToPropertyDescriptor(Attributes).
|
||||
...
|
||||
|
||||
ToPropertyDescriptor ( Obj )
|
||||
|
||||
If Type(Obj) is not Object, throw a TypeError exception.
|
||||
...
|
||||
features: [BigInt]
|
||||
---*/
|
||||
|
||||
assert.throws(TypeError, () => {
|
||||
Object.defineProperty({}, 'a', 0n);
|
||||
});
|
|
@ -0,0 +1,26 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-object.defineproperty
|
||||
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.defineProperty({}, 'a', false);
|
||||
});
|
|
@ -0,0 +1,26 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-object.defineproperty
|
||||
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.defineProperty({}, 'a', null);
|
||||
});
|
|
@ -0,0 +1,26 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-object.defineproperty
|
||||
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.defineProperty({}, 'a', 1);
|
||||
});
|
|
@ -0,0 +1,26 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-object.defineproperty
|
||||
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.defineProperty({}, 'a', '');
|
||||
});
|
|
@ -0,0 +1,27 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-object.defineproperty
|
||||
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.defineProperty({}, 'a', Symbol());
|
||||
});
|
|
@ -0,0 +1,26 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-object.defineproperty
|
||||
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.defineProperty({}, 'a', true);
|
||||
});
|
|
@ -0,0 +1,26 @@
|
|||
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-object.defineproperty
|
||||
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.defineProperty({}, 'a', undefined);
|
||||
});
|
Loading…
Reference in New Issue