mirror of
https://github.com/tc39/test262.git
synced 2025-07-28 08:24:23 +02:00
Coverage: Object.getOwnPropertySymbols/Names called with non-object values. Fixes gh-2804
This commit is contained in:
parent
07cc3c8bb1
commit
dcbc02b7fa
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: sec-object.getownpropertynames
|
||||||
|
description: >
|
||||||
|
Object.getOwnPropertyNames called with an invalid non-object value
|
||||||
|
info: |
|
||||||
|
GetOwnPropertyKeys ( O, type )
|
||||||
|
|
||||||
|
Let obj be ? ToObject(O).
|
||||||
|
Let keys be ? obj.[[OwnPropertyKeys]]().
|
||||||
|
Let nameList be a new empty List.
|
||||||
|
For each element nextKey of keys, do
|
||||||
|
If Type(nextKey) is Symbol and type is symbol or Type(nextKey) is String and type is string, then
|
||||||
|
Append nextKey as the last element of nameList.
|
||||||
|
Return CreateArrayFromList(nameList).
|
||||||
|
|
||||||
|
features: [Symbol]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
let count = 0;
|
||||||
|
|
||||||
|
assert.throws(TypeError, () => {
|
||||||
|
count++;
|
||||||
|
Object.getOwnPropertyNames(undefined);
|
||||||
|
}, '`Object.getOwnPropertyNames(undefined)` throws TypeError');
|
||||||
|
|
||||||
|
assert.throws(TypeError, () => {
|
||||||
|
count++;
|
||||||
|
Object.getOwnPropertyNames(null);
|
||||||
|
}, '`Object.getOwnPropertyNames(null)` throws TypeError');
|
||||||
|
|
||||||
|
assert.sameValue(count, 2, 'The value of `count` is 2');
|
@ -0,0 +1,45 @@
|
|||||||
|
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: sec-object.getownpropertynames
|
||||||
|
description: >
|
||||||
|
Object.getOwnPropertyNames called with a valid non-object value
|
||||||
|
info: |
|
||||||
|
GetOwnPropertyKeys ( O, type )
|
||||||
|
|
||||||
|
Let obj be ? ToObject(O).
|
||||||
|
Let keys be ? obj.[[OwnPropertyKeys]]().
|
||||||
|
Let nameList be a new empty List.
|
||||||
|
For each element nextKey of keys, do
|
||||||
|
If Type(nextKey) is Symbol and type is symbol or Type(nextKey) is String and type is string, then
|
||||||
|
Append nextKey as the last element of nameList.
|
||||||
|
Return CreateArrayFromList(nameList).
|
||||||
|
|
||||||
|
features: [Symbol]
|
||||||
|
includes: [compareArray.js]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertyNames(true), [],
|
||||||
|
'Object.getOwnPropertyNames(true) must return []'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertyNames(false), [],
|
||||||
|
'Object.getOwnPropertyNames(false) must return []'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertyNames(1), [],
|
||||||
|
'Object.getOwnPropertyNames(1) must return []'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertyNames(0), [],
|
||||||
|
'Object.getOwnPropertyNames(0) must return []'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertyNames(""), ["length"],
|
||||||
|
'Object.getOwnPropertyNames("") must return ["length"]'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertyNames(Symbol()), [],
|
||||||
|
'Object.getOwnPropertyNames(Symbol()) must return []'
|
||||||
|
);
|
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: sec-object.getownpropertysymbols
|
||||||
|
description: >
|
||||||
|
Object.getOwnPropertySymbols called with an invalid non-object value
|
||||||
|
info: |
|
||||||
|
GetOwnPropertyKeys ( O, type )
|
||||||
|
|
||||||
|
Let obj be ? ToObject(O).
|
||||||
|
Let keys be ? obj.[[OwnPropertyKeys]]().
|
||||||
|
Let nameList be a new empty List.
|
||||||
|
For each element nextKey of keys, do
|
||||||
|
If Type(nextKey) is Symbol and type is symbol or Type(nextKey) is String and type is string, then
|
||||||
|
Append nextKey as the last element of nameList.
|
||||||
|
Return CreateArrayFromList(nameList).
|
||||||
|
|
||||||
|
features: [Symbol]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
let count = 0;
|
||||||
|
|
||||||
|
assert.throws(TypeError, () => {
|
||||||
|
count++;
|
||||||
|
Object.getOwnPropertySymbols(undefined);
|
||||||
|
}, '`Object.getOwnPropertySymbols(undefined)` throws TypeError');
|
||||||
|
|
||||||
|
assert.throws(TypeError, () => {
|
||||||
|
count++;
|
||||||
|
Object.getOwnPropertySymbols(null);
|
||||||
|
}, '`Object.getOwnPropertySymbols(null)` throws TypeError');
|
||||||
|
|
||||||
|
assert.sameValue(count, 2, 'The value of `count` is 2');
|
@ -0,0 +1,45 @@
|
|||||||
|
// Copyright (C) 2020 Rick Waldron. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: sec-object.getownpropertysymbols
|
||||||
|
description: >
|
||||||
|
Object.getOwnPropertySymbols called with a valid non-object value
|
||||||
|
info: |
|
||||||
|
GetOwnPropertyKeys ( O, type )
|
||||||
|
|
||||||
|
Let obj be ? ToObject(O).
|
||||||
|
Let keys be ? obj.[[OwnPropertyKeys]]().
|
||||||
|
Let nameList be a new empty List.
|
||||||
|
For each element nextKey of keys, do
|
||||||
|
If Type(nextKey) is Symbol and type is symbol or Type(nextKey) is String and type is string, then
|
||||||
|
Append nextKey as the last element of nameList.
|
||||||
|
Return CreateArrayFromList(nameList).
|
||||||
|
|
||||||
|
features: [Symbol]
|
||||||
|
includes: [compareArray.js]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertySymbols(true), [],
|
||||||
|
'Object.getOwnPropertySymbols(true) must return []'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertySymbols(false), [],
|
||||||
|
'Object.getOwnPropertySymbols(false) must return []'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertySymbols(1), [],
|
||||||
|
'Object.getOwnPropertySymbols(1) must return []'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertySymbols(0), [],
|
||||||
|
'Object.getOwnPropertySymbols(0) must return []'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertySymbols(""), [],
|
||||||
|
'Object.getOwnPropertySymbols("") must return []'
|
||||||
|
);
|
||||||
|
assert.compareArray(
|
||||||
|
Object.getOwnPropertySymbols(Symbol()), [],
|
||||||
|
'Object.getOwnPropertySymbols(Symbol()) must return []'
|
||||||
|
);
|
Loading…
x
Reference in New Issue
Block a user