| browser.js | 
           | 
          0 | 
        
        
          | exception-not-object-coercible.js | 
          ---
description: Object.getOwnPropertyDescriptors should fail if given a null or undefined value
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
--- | 
          499 | 
        
        
          | function-length.js | 
          ---
description: Object.getOwnPropertyDescriptors should have length 1
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
includes: [propertyHelper.js]
--- | 
          468 | 
        
        
          | function-name.js | 
          ---
description: Object.getOwnPropertyDescriptors should have name property with value 'getOwnPropertyDescriptors'
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
includes: [propertyHelper.js]
--- | 
          536 | 
        
        
          | function-property-descriptor.js | 
          ---
description: Object.getOwnPropertyDescriptors should be writable, non-enumerable, and configurable
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
includes: [propertyHelper.js]
--- | 
          480 | 
        
        
          | inherited-properties-omitted.js | 
          ---
description: Object.getOwnPropertyDescriptors does not see inherited properties.
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
--- | 
          1384 | 
        
        
          | normal-object.js | 
          ---
description: Object.getOwnPropertyDescriptors should produce a normal object inheriting from Object.prototype
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
--- | 
          445 | 
        
        
          | not-a-constructor.js | 
          ---
esid: sec-ecmascript-standard-built-in-objects
description: >
  Object.getOwnPropertyDescriptors 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]
--- | 
          960 | 
        
        
          | observable-operations.js | 
          ---
description: Object.getOwnPropertyDescriptors should perform observable operations in the correct order
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
features: [Proxy]
includes: [proxyTrapsHelper.js]
--- | 
          1303 | 
        
        
          | order-after-define-property.js | 
          ---
esid: sec-object.getownpropertydescriptors
description: >
  Property names are returned in ascending chronological order of creation
  that is unaffected by [[DefineOwnProperty]].
info: |
  Object.getOwnPropertyDescriptors ( O )
  [...]
  2. Let ownKeys be ? obj.[[OwnPropertyKeys]]().
  3. Let descriptors be ! OrdinaryObjectCreate(%Object.prototype%).
  4. For each element key of ownKeys in List order, do
    [...]
    c. If descriptor is not undefined,
    perform ! CreateDataPropertyOrThrow(descriptors, key, descriptor).
  5. Return descriptors.
  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.
  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, Reflect]
includes: [compareArray.js]
--- | 
          1644 | 
        
        
          | primitive-booleans.js | 
          ---
description: Object.getOwnPropertyDescriptors accepts boolean primitives.
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
--- | 
          585 | 
        
        
          | primitive-numbers.js | 
          ---
description: Object.getOwnPropertyDescriptors accepts number primitives.
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
--- | 
          977 | 
        
        
          | primitive-strings.js | 
          ---
description: Object.getOwnPropertyDescriptors accepts string primitives.
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
--- | 
          1578 | 
        
        
          | primitive-symbols.js | 
          ---
description: Object.getOwnPropertyDescriptors accepts Symbol primitives.
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
features: [Symbol]
--- | 
          470 | 
        
        
          | proxy-no-ownkeys-returned-keys-order.js | 
          ---
esid: sec-object.getownpropertydescriptors
description: >
  If Proxy "ownKeys" trap is missing, keys are sorted by type in ascending
  chronological order.
info: |
  Object.getOwnPropertyDescriptors ( O )
  [...]
  2. Let ownKeys be ? obj.[[OwnPropertyKeys]]().
  [...]
  4. For each element key of ownKeys in List order, do
    a. Let desc be ? obj.[[GetOwnProperty]](key).
  [[OwnPropertyKeys]] ( )
  [...]
  6. If trap is undefined, then
    a. Return ? target.[[OwnPropertyKeys]]().
  OrdinaryOwnPropertyKeys ( O )
  [...]
  3. For each own property key P of O such that Type(P) is String and P is
  not an array index, in ascending chronological order of property creation, do
    a. Add P as the last element of keys.
  4. For each own property key P of O such that Type(P) is Symbol,
  in ascending chronological order of property creation, do
    a. Add P as the last element of keys.
  5. Return keys.
features: [Proxy, Symbol]
includes: [compareArray.js]
--- | 
          1456 | 
        
        
          | proxy-undefined-descriptor.js | 
          ---
description: Object.getOwnPropertyDescriptors should filter out undefined OwnPropertyDescriptors
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
features: [Proxy]
includes: [proxyTrapsHelper.js]
--- | 
          1247 | 
        
        
          | shell.js | 
          ---
description: |
    Used to assert the correctness of object behavior in the presence
    and context of Proxy objects.
defines: [allowProxyTraps]
--- | 
          1810 | 
        
        
          | symbols-included.js | 
          ---
description: Object.getOwnPropertyDescriptors includes Symbol keys.
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
features: [Symbol]
--- | 
          1868 | 
        
        
          | tamper-with-global-object.js | 
          ---
description: >
    Object.getOwnPropertyDescriptors should not have its behavior impacted by modifications to the global property Object
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
--- | 
          849 | 
        
        
          | tamper-with-object-keys.js | 
          ---
description: >
    Object.getOwnPropertyDescriptors should not have its behavior impacted by modifications to Object.getOwnPropertyDescriptor
esid: sec-object.getownpropertydescriptors
author: Jordan Harband
--- | 
          911 |