| browser.js | 
           | 
          0 | 
        
        
          | length.js | 
          ---
esid: sec-object.getownpropertysymbols
description: >
  Object.getOwnPropertySymbols.length is 1.
info: |
  Object.getOwnPropertySymbols ( O )
  17 ECMAScript Standard Built-in Objects:
    Every built-in Function object, including constructors, has a length
    property whose value is an integer. Unless otherwise specified, this
    value is equal to the largest number of named arguments shown in the
    subclause headings for the function description, including optional
    parameters. However, rest parameters shown using the form “...name”
    are not included in the default argument count.
    Unless otherwise specified, the length property of a built-in Function
    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
    [[Configurable]]: true }.
includes: [propertyHelper.js]
--- | 
          1119 | 
        
        
          | name.js | 
          ---
esid: sec-object.getownpropertysymbols
description: >
  Object.getOwnPropertySymbols.name is "getOwnPropertySymbols".
info: |
  Object.getOwnPropertySymbols ( 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]
--- | 
          914 | 
        
        
          | non-object-argument-invalid.js | 
          ---
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]
--- | 
          1065 | 
        
        
          | non-object-argument-valid.js | 
          ---
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]
--- | 
          1433 | 
        
        
          | not-a-constructor.js | 
          ---
esid: sec-ecmascript-standard-built-in-objects
description: >
  Object.getOwnPropertySymbols 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, Symbol, arrow-function]
--- | 
          952 | 
        
        
          | object-contains-symbol-property-with-description.js | 
          ---
esid: sec-object.getownpropertysymbols
description: >
    Object.getOwnPropertySymbols returns all symbol properties that have descriptions
features: [Symbol]
--- | 
          628 | 
        
        
          | object-contains-symbol-property-without-description.js | 
          ---
esid: sec-object.getownpropertysymbols
description: >
    Object.getOwnPropertySymbols returns all symbol properties that do not have descriptions
features: [Symbol]
--- | 
          622 | 
        
        
          | order-after-define-property.js | 
          ---
esid: sec-object.getownpropertysymbols
description: >
  Property names are returned in ascending chronological order of creation
  that is unaffected by [[DefineOwnProperty]].
info: |
  Object.getOwnPropertySymbols ( O )
  1. Return ? GetOwnPropertyKeys(O, Symbol).
  GetOwnPropertyKeys ( O, type )
  1. Let obj be ? ToObject(O).
  2. Let keys be ? obj.[[OwnPropertyKeys]]().
  [...]
  OrdinaryOwnPropertyKeys ( O )
  [...]
  4. For each own property key P of O that is a Symbol, in ascending
  chronological order of property creation, do
    a. Add P as the last element of keys.
  5. Return keys.
features: [Symbol]
includes: [compareArray.js]
--- | 
          1210 | 
        
        
          | proxy-invariant-absent-not-configurable-string-key.js | 
          ---
esid: sec-object.getownpropertysymbols
description: >
  Proxy [[OwnPropertyKeys]] trap does not skip string keys when validating invariant:
 The result List must contain the keys of all non-configurable own properties of
    the target object.
info: |
  Object.getOwnPropertySymbols ( O )
  1. Return ? GetOwnPropertyKeys(O, Symbol).
  GetOwnPropertyKeys ( O, type )
  ...
  2. Let keys be ? obj.[[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]
--- | 
          1531 | 
        
        
          | proxy-invariant-duplicate-string-entry.js | 
          ---
esid: sec-object.getownpropertysymbols
description: >
  Proxy [[OwnPropertyKeys]] trap does not skip string keys when validating invariant:
 The returned List contains no duplicate entries.
info: |
  Object.getOwnPropertySymbols ( O )
  1. Return ? GetOwnPropertyKeys(O, Symbol).
  GetOwnPropertyKeys ( O, type )
  ...
  2. Let keys be ? obj.[[OwnPropertyKeys]]().
  [[OwnPropertyKeys]] ( )
  ...
  8. Let trapResult be ? CreateListFromArrayLike(trapResultArray, « String, Symbol »).
  9. If trapResult contains any duplicate entries, throw a TypeError exception.
features: [Proxy]
--- | 
          924 | 
        
        
          | proxy-invariant-not-extensible-absent-string-key.js | 
          ---
esid: sec-object.getownpropertysymbols
description: >
  Proxy [[OwnPropertyKeys]] trap does not skip string 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.getOwnPropertySymbols ( O )
  1. Return ? GetOwnPropertyKeys(O, Symbol).
  GetOwnPropertyKeys ( O, type )
  ...
  2. Let keys be ? obj.[[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]
--- | 
          1467 | 
        
        
          | proxy-invariant-not-extensible-extra-string-key.js | 
          ---
esid: sec-object.getownpropertysymbols
description: >
  Proxy [[OwnPropertyKeys]] trap does not skip string 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.getOwnPropertySymbols ( O )
  1. Return ? GetOwnPropertyKeys(O, Symbol).
  GetOwnPropertyKeys ( O, type )
  ...
  2. Let keys be ? obj.[[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]
--- | 
          1385 | 
        
        
          | shell.js | 
           | 
          0 |