Source code
Revision control
Copy as Markdown
Other Tools
// 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');
reportCompare(0, 0);