test262/test/built-ins/Object/getOwnPropertySymbols/non-object-argument-invalid.js

34 lines
1.0 KiB
JavaScript

// 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');