| browser.js | 
           | 
          0 | 
        
        
          | descriptor.js | 
          ---
esid: sec-object.hasown
description: Testing descriptor property of Object.hasOwn
includes: [propertyHelper.js]
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          420 | 
        
        
          | hasown.js | 
          ---
esid: sec-object.hasown
info: |
    Object.hasOwn ( _O_, _P_ )
    1. Let _obj_ be ? ToObject(_O_).
    2. Let _key_ be ? ToPropertyKey(_P_).
    3. Return ? HasOwnProperty(_obj_, _key_).
description: >
    Checking type of the Object.hasOwn and the returned result
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          564 | 
        
        
          | hasown_inherited_exists.js | 
          ---
esid: sec-object.hasown
description: Properties - [[HasOwnProperty]] (old style inherited property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          441 | 
        
        
          | hasown_inherited_getter.js | 
          ---
esid: sec-object.hasown
description: Properties - [[HasOwnProperty]] (literal inherited getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          469 | 
        
        
          | hasown_inherited_getter_and_setter.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (literal inherited getter/setter
    property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          506 | 
        
        
          | hasown_inherited_getter_and_setter_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, enumerable
    inherited getter/setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          617 | 
        
        
          | hasown_inherited_getter_and_setter_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, non-enumerable
    inherited getter/setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          601 | 
        
        
          | hasown_inherited_getter_and_setter_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, enumerable
    inherited getter/setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          599 | 
        
        
          | hasown_inherited_getter_and_setter_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, non-enumerable
    inherited getter/setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          583 | 
        
        
          | hasown_inherited_getter_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, enumerable
    inherited getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          584 | 
        
        
          | hasown_inherited_getter_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, non-enumerable
    inherited getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          568 | 
        
        
          | hasown_inherited_getter_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, enumerable
    inherited getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          566 | 
        
        
          | hasown_inherited_getter_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, non-enumerable
    inherited getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          550 | 
        
        
          | hasown_inherited_nonwritable_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-writable, configurable,
    enumerable inherited value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          570 | 
        
        
          | hasown_inherited_nonwritable_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-writable, configurable,
    non-enumerable inherited value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          554 | 
        
        
          | hasown_inherited_nonwritable_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-writable, non-configurable,
    enumerable inherited value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          552 | 
        
        
          | hasown_inherited_nonwritable_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-writable, non-configurable,
    non-enumerable inherited value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          536 | 
        
        
          | hasown_inherited_setter.js | 
          ---
esid: sec-object.hasown
description: Properties - [[HasOwnProperty]] (literal inherited setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          455 | 
        
        
          | hasown_inherited_setter_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, enumerable
    inherited setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          570 | 
        
        
          | hasown_inherited_setter_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, non-enumerable
    inherited setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          554 | 
        
        
          | hasown_inherited_setter_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, enumerable
    inherited setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          552 | 
        
        
          | hasown_inherited_setter_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, non-enumerable
    inherited setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          536 | 
        
        
          | hasown_inherited_writable_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (writable, configurable,
    enumerable inherited value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          584 | 
        
        
          | hasown_inherited_writable_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (writable, configurable,
    non-enumerable inherited value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          568 | 
        
        
          | hasown_inherited_writable_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (writable, non-configurable,
    enumerable inherited value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          566 | 
        
        
          | hasown_inherited_writable_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (writable, non-configurable,
    non-enumerable inherited value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          550 | 
        
        
          | hasown_nonexistent.js | 
          ---
esid: sec-object.hasown
description: Properties - [[HasOwnProperty]] (property does not exist)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          393 | 
        
        
          | hasown_own_getter.js | 
          ---
esid: sec-object.hasown
description: Properties - [[HasOwnProperty]] (literal own getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          439 | 
        
        
          | hasown_own_getter_and_setter.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (literal own getter/setter
    property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          476 | 
        
        
          | hasown_own_getter_and_setter_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, enumerable own
    getter/setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          584 | 
        
        
          | hasown_own_getter_and_setter_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, non-enumerable own
    getter/setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          568 | 
        
        
          | hasown_own_getter_and_setter_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, enumerable own
    getter/setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          566 | 
        
        
          | hasown_own_getter_and_setter_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, non-enumerable
    own getter/setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          550 | 
        
        
          | hasown_own_getter_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, enumerable own
    getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          551 | 
        
        
          | hasown_own_getter_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, non-enumerable own
    getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          535 | 
        
        
          | hasown_own_getter_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, enumerable own
    getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          533 | 
        
        
          | hasown_own_getter_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, non-enumerable
    own getter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          517 | 
        
        
          | hasown_own_nonwritable_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-writable, configurable,
    enumerable own value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          537 | 
        
        
          | hasown_own_nonwritable_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-writable, non-configurable,
    enumerable own value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          519 | 
        
        
          | hasown_own_nonwriteable_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-writable, configurable,
    non-enumerable own value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          521 | 
        
        
          | hasown_own_nonwriteable_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-writable, non-configurable,
    non-enumerable own value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          503 | 
        
        
          | hasown_own_property_exists.js | 
          ---
esid: sec-object.hasown
description: Properties - [[HasOwnProperty]] (old style own property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          411 | 
        
        
          | hasown_own_setter.js | 
          ---
esid: sec-object.hasown
description: Properties - [[HasOwnProperty]] (literal own setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          425 | 
        
        
          | hasown_own_setter_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, enumerable own
    setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          537 | 
        
        
          | hasown_own_setter_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (configurable, non-enumerable own
    setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          521 | 
        
        
          | hasown_own_setter_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, enumerable own
    setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          519 | 
        
        
          | hasown_own_setter_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (non-configurable, non-enumerable
    own setter property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          503 | 
        
        
          | hasown_own_writable_configurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (writable, configurable,
    enumerable own value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          551 | 
        
        
          | hasown_own_writable_configurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (writable, configurable,
    non-enumerable own value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          535 | 
        
        
          | hasown_own_writable_nonconfigurable_enumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (writable, non-configurable,
    enumerable own value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          533 | 
        
        
          | hasown_own_writable_nonconfigurable_nonenumerable.js | 
          ---
esid: sec-object.hasown
description: >
    Properties - [[HasOwnProperty]] (writable, non-configurable,
    non-enumerable own value property)
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          517 | 
        
        
          | length.js | 
          ---
esid: sec-object.hasown
description: >
  Object.hasOwn.length is 2.
info: |
  Object.hasOwn ( _O_, _P_ )
  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.
  Unless otherwise specified, the "length" property of a built-in Function
  object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
  [[Configurable]]: true }.
includes: [propertyHelper.js]
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          948 | 
        
        
          | name.js | 
          ---
esid: sec-object.hasown
description: >
  Object.hasOwn.name is "hasOwn".
info: |
  Object.hasOwn ( _O_, _P_ )
  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]
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          873 | 
        
        
          | not-a-constructor.js | 
          ---
esid: sec-ecmascript-standard-built-in-objects
description: >
  Object.hasOwn 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]
author: Jamie Kyle
features: [Reflect.construct, arrow-function, Object.hasOwn]
--- | 
          916 | 
        
        
          | prototype.js | 
          ---
esid: sec-object.hasown
info: Object.hasOwn has not prototype property
description: >
    Checking if obtaining the prototype property of Object.hasOwn fails
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          416 | 
        
        
          | shell.js | 
           | 
          0 | 
        
        
          | symbol_own_property.js | 
          ---
esid: sec-object.hasown
description: Object.hasOwn called with symbol property key
info: |
  Object.hasOwn ( _O_, _P_ )
  1. Let _obj_ be ? ToObject(_O_).
  1. Let _key_ be ? ToPropertyKey(_P_).
  ...
author: Jamie Kyle
features: [Symbol, Object.hasOwn]
--- | 
          679 | 
        
        
          | symbol_property_toPrimitive.js | 
          ---
esid: sec-object.hasown
description: Object.hasOwn with symbol and @@toPrimitive conversion
info: |
  Object.hasOwn ( _O_, _P_ )
  1. Let _obj_ be ? ToObject(_O_).
  1. Let _key_ be ? ToPropertyKey(_P_).
  ...
author: Jamie Kyle
features: [Symbol.toPrimitive, Object.hasOwn]
--- | 
          786 | 
        
        
          | symbol_property_toString.js | 
          ---
esid: sec-object.hasown
description: Object.hasOwn with symbol and toString conversion
info: |
  Object.hasOwn ( _O_, _P_ )
  1. Let _obj_ be ? ToObject(_O_).
  1. Let _key_ be ? ToPropertyKey(_P_).
  ...
author: Jamie Kyle
features: [Symbol, Object.hasOwn]
--- | 
          831 | 
        
        
          | symbol_property_valueOf.js | 
          ---
esid: sec-object.hasown
description: Object.hasOwn with symbol and valueOf conversion
info: |
  Object.hasOwn ( _O_, _P_ )
  1. Let _obj_ be ? ToObject(_O_).
  2. Let _key_ be ? ToPropertyKey(_P_).
  ...
author: Jamie Kyle
features: [Symbol, Object.hasOwn]
--- | 
          769 | 
        
        
          | toobject_before_topropertykey.js | 
          ---
esid: sec-object.hasown
description: >
  ToObject is performed before ToPropertyKey.
info: |
  Object.hasOwn ( _O_, _P_ )
  1. Let _obj_ be ? ToObject(_O_).
  2. Let _key_ be ? ToPropertyKey(_P_).
  ToPropertyKey ( argument )
  1. Let key be ? ToPrimitive(argument, hint String).
author: Jamie Kyle
features: [Symbol.toPrimitive, Object.hasOwn]
--- | 
          1157 | 
        
        
          | toobject_null.js | 
          ---
esid: sec-object.hasown
description: >
    Let O be the result of calling ToObject passing the this value as
    the argument.
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          403 | 
        
        
          | toobject_undefined.js | 
          ---
esid: sec-object.hasown
description: >
    Let O be the result of calling ToObject passing the this value as
    the argument.
author: Jamie Kyle
features: [Object.hasOwn]
--- | 
          408 |