15.2.3.14-0-1.js |
---
es5id: 15.2.3.14-0-1
description: Object.keys must exist as a function
--- |
318 |
15.2.3.14-0-2.js |
---
es5id: 15.2.3.14-0-2
description: Object.keys must exist as a function taking 1 parameter
--- |
324 |
15.2.3.14-1-1.js |
---
es5id: 15.2.3.14-1-1
description: >
Object.keys does not throw TypeError if type of first param is not
Object
--- |
305 |
15.2.3.14-1-2.js |
---
es5id: 15.2.3.14-1-2
description: >
Object.keys does not throw TypeError if type of first param is not
Object (boolean)
--- |
318 |
15.2.3.14-1-3.js |
---
es5id: 15.2.3.14-1-3
description: >
Object.keys does not throw TypeError if type of first param is not
Object (string)
--- |
318 |
15.2.3.14-1-4.js |
---
es5id: 15.2.3.14-1-4
description: >
Object.keys throws TypeError if type of first param is not Object
(null)
--- |
352 |
15.2.3.14-1-5.js |
---
es5id: 15.2.3.14-1-5
description: >
Object.keys throws TypeError if type of first param is not Object
(undefined)
--- |
362 |
15.2.3.14-2-1.js |
---
es5id: 15.2.3.14-2-1
description: Object.keys returns the standard built-in Array
--- |
369 |
15.2.3.14-2-2.js |
---
es5id: 15.2.3.14-2-2
description: Object.keys returns the standard built-in Array (check [[Class]]
--- |
411 |
15.2.3.14-2-3.js |
---
es5id: 15.2.3.14-2-3
description: Object.keys returns the standard built-in Array (Array overridden)
--- |
435 |
15.2.3.14-2-4.js |
---
es5id: 15.2.3.14-2-4
description: Object.keys returns the standard built-in Array that is extensible
--- |
400 |
15.2.3.14-2-5.js |
---
es5id: 15.2.3.14-2-5
description: Object.keys returns the standard built-in Array that is not sealed
--- |
393 |
15.2.3.14-2-6.js |
---
es5id: 15.2.3.14-2-6
description: Object.keys returns the standard built-in Array that is not frozen
--- |
393 |
15.2.3.14-2-7.js |
---
es5id: 15.2.3.14-2-7
description: >
Object.keys - 'n' is 0 when 'O' doesn't contain own enumerable
data or accessor properties
--- |
624 |
15.2.3.14-2-8.js |
---
es5id: 15.2.3.14-2-8
description: >
Object.keys - 'n' is the correct value when enumerable properties
exist in 'O'
--- |
761 |
15.2.3.14-3-1.js |
---
es5id: 15.2.3.14-3-1
description: >
Object.keys returns the standard built-in Array containing own
enumerable properties
--- |
471 |
15.2.3.14-3-2.js |
---
es5id: 15.2.3.14-3-2
description: >
Object.keys returns the standard built-in Array containing own
enumerable properties (function)
--- |
448 |
15.2.3.14-3-3.js |
---
es5id: 15.2.3.14-3-3
description: >
Object.keys returns the standard built-in Array containing own
enumerable properties (array)
--- |
466 |
15.2.3.14-3-4.js |
---
es5id: 15.2.3.14-3-4
description: >
Object.keys of an arguments object returns the indices of the
given arguments
--- |
1145 |
15.2.3.14-3-5.js |
---
es5id: 15.2.3.14-3-5
description: Object.keys must return a fresh array on each invocation
--- |
550 |
15.2.3.14-3-6.js |
---
es5id: 15.2.3.14-3-6
description: >
Object.keys - returns the standard built-in Array (instanceof
Array)
--- |
391 |
15.2.3.14-3-7.js |
---
es5id: 15.2.3.14-3-7
description: >
Object.keys - length of the returned array equals the number of
own enumerable properties of 'O'
--- |
659 |
15.2.3.14-4-1.js |
---
es5id: 15.2.3.14-4-1
description: Object.keys - elements of the returned array start from index 0
--- |
678 |
15.2.3.14-5-1.js |
---
es5id: 15.2.3.14-5-1
description: >
Object.keys - own enumerable data property of 'O' is defined in
returned array
--- |
545 |
15.2.3.14-5-2.js |
---
es5id: 15.2.3.14-5-2
description: >
Object.keys - own enumerable accessor property of 'O' is defined
in returned array
--- |
576 |
15.2.3.14-5-3.js |
---
es5id: 15.2.3.14-5-3
description: >
Object.keys - non-enumerable own data property of 'O' is not
defined in returned array
--- |
685 |
15.2.3.14-5-4.js |
---
es5id: 15.2.3.14-5-4
description: >
Object.keys - non-enumerable own accessor property of 'O' is not
defined in returned array
--- |
777 |
15.2.3.14-5-5.js |
---
es5id: 15.2.3.14-5-5
description: >
Object.keys - inherited enumerable data property of 'O' is not
defined in returned array
--- |
626 |
15.2.3.14-5-6.js |
---
es5id: 15.2.3.14-5-6
description: >
Object.keys - inherited enumerable accessor property of 'O' is not
defined in returned array
--- |
764 |
15.2.3.14-5-7.js |
---
es5id: 15.2.3.14-5-7
description: >
Object.keys - inherted enumerable data property that is
over-ridden by non-enumerable own data property is not defined in
returned array
--- |
741 |
15.2.3.14-5-8.js |
---
es5id: 15.2.3.14-5-8
description: >
Object.keys - inherted enumerable data property that is
over-ridden by non-enumerable own accessor property is not defined
in returned array
--- |
752 |
15.2.3.14-5-9.js |
---
es5id: 15.2.3.14-5-9
description: >
Object.keys - inherted enumerable accessor property that is
over-ridden by non-enumerable own data property is not defined in
returned array
--- |
752 |
15.2.3.14-5-10.js |
---
es5id: 15.2.3.14-5-10
description: >
Object.keys - inherted enumerable accessor property that is
over-ridden by non-enumerable own accessor property is not defined
in returned array
--- |
764 |
15.2.3.14-5-11.js |
---
es5id: 15.2.3.14-5-11
description: >
Object.keys - own enumerable indexed data property of dense array
'O' is defined in returned array
--- |
528 |
15.2.3.14-5-12.js |
---
es5id: 15.2.3.14-5-12
description: >
Object.keys - own enumerable indexed accessor property of dense
array 'O' is defined in returned array
--- |
703 |
15.2.3.14-5-13.js |
---
es5id: 15.2.3.14-5-13
description: >
Object.keys - own enumerable indexed data property of sparse array
'O' is defined in returned array
--- |
855 |
15.2.3.14-5-14.js |
---
es5id: 15.2.3.14-5-14
description: >
Object.keys - own enumerable indexed accessor property of sparse
array 'O' is defined in returned array
--- |
686 |
15.2.3.14-5-15.js |
---
es5id: 15.2.3.14-5-15
description: >
Object.keys - own enumerable indexed data property of String
object 'O' is defined in returned array
--- |
623 |
15.2.3.14-5-16.js |
---
es5id: 15.2.3.14-5-16
description: >
Object.keys - own enumerable indexed accessor property of String
object 'O' is defined in returned array
--- |
740 |
15.2.3.14-5-a-1.js |
---
es5id: 15.2.3.14-5-a-1
description: >
Object.keys - 'value' attribute of element in returned array is
correct.
--- |
537 |
15.2.3.14-5-a-2.js |
---
es5id: 15.2.3.14-5-a-2
description: >
Object.keys - 'writable' attribute of element of returned array is
correct
--- |
630 |
15.2.3.14-5-a-3.js |
---
es5id: 15.2.3.14-5-a-3
description: >
Object.keys - 'enumerable' attribute of element of returned array
is correct
--- |
736 |
15.2.3.14-5-a-4.js |
---
es5id: 15.2.3.14-5-a-4
description: >
Object.keys - Verify that 'configurable' attribute of element of
returned array is correct
--- |
666 |
15.2.3.14-5-b-1.js |
---
es5id: 15.2.3.14-5-b-1
description: Object.keys - Verify that 'index' of returned array is ascend by 1
--- |
510 |
15.2.3.14-6-1.js |
---
es5id: 15.2.3.14-6-1
description: >
Object.keys - the order of elements in returned array is the same
with the order of properties in 'O' (dense array)
--- |
639 |
15.2.3.14-6-2.js |
---
es5id: 15.2.3.14-6-2
description: >
Object.keys - the order of elements in returned array is the same
with the order of properties in 'O' (sparse array)
--- |
651 |
15.2.3.14-6-3.js |
---
es5id: 15.2.3.14-6-3
description: >
Object.keys - the order of elements in returned array is the same
with the order of properties in 'O' (String object)
--- |
621 |
15.2.3.14-6-4.js |
---
es5id: 15.2.3.14-6-4
description: >
Object.keys - the order of elements in returned array is the same
with the order of properties in 'O' (Arguments object)
--- |
685 |
15.2.3.14-6-5.js |
---
es5id: 15.2.3.14-6-5
description: >
Object.keys - the order of elements in returned array is the same
with the order of properties in 'O' (any other built-in object)
--- |
665 |
browser.js |
|
0 |
name.js |
---
es6id: 19.1.2.14
description: >
Object.keys.name is "keys".
info: |
Object.keys ( O )
17 ECMAScript Standard Built-in Objects:
Every built-in Function object, including constructors, that is not
identified as an anonymous function has a name property whose value
is a String.
Unless otherwise specified, the name property of a built-in Function
object, if it exists, has the attributes { [[Writable]]: false,
[[Enumerable]]: false, [[Configurable]]: true }.
includes: [propertyHelper.js]
--- |
807 |
not-a-constructor.js |
---
esid: sec-ecmascript-standard-built-in-objects
description: >
Object.keys does not implement [[Construct]], is not new-able
info: |
ECMAScript Function Objects
Built-in function objects that are not identified as constructors do not
implement the [[Construct]] internal method unless otherwise specified in
the description of a particular function.
sec-evaluatenew
...
7. If IsConstructor(constructor) is false, throw a TypeError exception.
...
includes: [isConstructor.js]
features: [Reflect.construct, arrow-function]
--- |
868 |
order-after-define-property-with-function.js |
---
esid: sec-object.keys
description: >
Property names are returned in ascending chronological order of creation
that is unaffected by [[DefineOwnProperty]].
info: |
Object.keys ( O )
[...]
2. Let nameList be ? EnumerableOwnPropertyNames(obj, key).
3. Return CreateArrayFromList(nameList).
EnumerableOwnPropertyNames ( O, kind )
[...]
2. Let ownKeys be ? O.[[OwnPropertyKeys]]().
[...]
OrdinaryOwnPropertyKeys ( O )
[...]
3. For each own property key P of O that is a String but is not an array index,
in ascending chronological order of property creation, do
a. Add P as the last element of keys.
[...]
5. Return keys.
features: [arrow-function]
includes: [compareArray.js]
--- |
1020 |
order-after-define-property.js |
---
esid: sec-object.keys
description: >
Property names are returned in ascending chronological order of creation
that is unaffected by [[DefineOwnProperty]].
info: |
Object.keys ( O )
[...]
2. Let nameList be ? EnumerableOwnPropertyNames(obj, key).
3. Return CreateArrayFromList(nameList).
EnumerableOwnPropertyNames ( O, kind )
[...]
2. Let ownKeys be ? O.[[OwnPropertyKeys]]().
[...]
OrdinaryOwnPropertyKeys ( O )
[...]
3. For each own property key P of O that is a String but is not an array index,
in ascending chronological order of property creation, do
a. Add P as the last element of keys.
[...]
5. Return keys.
includes: [compareArray.js]
--- |
1103 |
property-traps-order-with-proxied-array.js |
---
esid: sec-object.keys
description: >
Ensure the correct property traps are called on a proxy of an array.
info: |
19.1.2.16 Object.keys ( O )
...
2. Let nameList be ? EnumerableOwnPropertyNames(obj, "key").
...
7.3.21 EnumerableOwnPropertyNames ( O, kind )
...
2. Let ownKeys be ? O.[[OwnPropertyKeys]]().
...
4. For each element key of ownKeys in List order, do
a. If Type(key) is String, then
i. Let desc be ? O.[[GetOwnProperty]](key).
...
features: [Proxy]
includes: [compareArray.js]
--- |
881 |
proxy-keys.js |
---
esid: sec-object.keys
description: >
Object.keys() observably performs [[GetOwnProperty]]
info: |
19.1.2.16 Object.keys ( O )
1. Let obj be ? ToObject(O).
2. Let nameList be ? EnumerableOwnProperties(obj, "key").
...
7.3.21 EnumerableOwnProperties ( O, kind )
1. Assert: Type(O) is Object.
2. Let ownKeys be ? O.[[OwnPropertyKeys]]().
3. Let properties be a new empty List.
4. For each element key of ownKeys in List order, do
a. If Type(key) is String, then
i. Let desc be ? O.[[GetOwnProperty]](key).
...
features: [Symbol]
--- |
3898 |
proxy-non-enumerable-prop-invariant-1.js |
---
esid: sec-object.keys
description: >
Proxy [[OwnPropertyKeys]] trap does not skip non-enumerable keys when validating invariant:
The result List must contain the keys of all non-configurable own properties of
the target object.
info: |
Object.keys ( O )
...
2. Let nameList be ? EnumerableOwnPropertyNames(obj, "key").
EnumerableOwnPropertyNames ( O, kind )
...
2. Let ownKeys be ? O.[[OwnPropertyKeys]]().
[[OwnPropertyKeys]] ( )
...
11. Let targetKeys be ? target.[[OwnPropertyKeys]]().
...
15. Let targetNonconfigurableKeys be a new empty List.
16. For each element key of targetKeys, do
a. Let desc be ? target.[[GetOwnProperty]](key).
b. If desc is not undefined and desc.[[Configurable]] is false, then
i. Append key as an element of targetNonconfigurableKeys.
...
18. Let uncheckedResultKeys be a new List which is a copy of trapResult.
19. For each key that is an element of targetNonconfigurableKeys, do
a. If key is not an element of uncheckedResultKeys, throw a TypeError exception.
features: [Proxy]
--- |
1522 |
proxy-non-enumerable-prop-invariant-2.js |
---
esid: sec-object.keys
description: >
Proxy [[OwnPropertyKeys]] trap does not skip non-enumerable keys when validating invariant:
If the target object is not extensible, then the result List must contain all the keys of
the own properties of the target object and no other values.
info: |
Object.keys ( O )
...
2. Let nameList be ? EnumerableOwnPropertyNames(obj, "key").
EnumerableOwnPropertyNames ( O, kind )
...
2. Let ownKeys be ? O.[[OwnPropertyKeys]]().
[[OwnPropertyKeys]] ( )
...
11. Let targetKeys be ? target.[[OwnPropertyKeys]]().
16. For each element key of targetKeys, do
a. Let desc be ? target.[[GetOwnProperty]](key).
b. If desc is not undefined and desc.[[Configurable]] is false, then
...
c. Else,
i. Append key as an element of targetConfigurableKeys.
...
18. Let uncheckedResultKeys be a new List which is a copy of trapResult.
...
21. For each key that is an element of targetConfigurableKeys, do
a. If key is not an element of uncheckedResultKeys, throw a TypeError exception.
features: [Proxy]
--- |
1568 |
proxy-non-enumerable-prop-invariant-3.js |
---
esid: sec-object.keys
description: >
Proxy [[OwnPropertyKeys]] trap does not skip non-enumerable keys when validating invariant:
If the target object is not extensible, then the result List must contain all the keys of
the own properties of the target object and no other values.
info: |
Object.keys ( O )
...
2. Let nameList be ? EnumerableOwnPropertyNames(obj, "key").
EnumerableOwnPropertyNames ( O, kind )
...
2. Let ownKeys be ? O.[[OwnPropertyKeys]]().
[[OwnPropertyKeys]] ( )
...
11. Let targetKeys be ? target.[[OwnPropertyKeys]]().
16. For each element key of targetKeys, do
a. Let desc be ? target.[[GetOwnProperty]](key).
b. If desc is not undefined and desc.[[Configurable]] is false, then
...
c. Else,
i. Append key as an element of targetConfigurableKeys.
...
18. Let uncheckedResultKeys be a new List which is a copy of trapResult.
...
22. If uncheckedResultKeys is not empty, throw a TypeError exception.
features: [Proxy]
--- |
1494 |
return-order.js |
---
esid: sec-object.keys
description: Object.keys enumeration order
features: [for-in-order]
includes: [compareArray.js]
--- |
539 |
shell.js |
|
0 |