| browser.js | 
           | 
          0 | 
        
        
          | empty-iterable.js | 
          ---
esid: sec-object.fromentries
description: When given an empty list, makes an empty object.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
features: [Object.fromEntries]
--- | 
          637 | 
        
        
          | evaluation-order.js | 
          ---
esid: sec-object.fromentries
description: Evaluation order is iterator.next(), get '0', get '1', toPropertyKey, repeat.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
includes: [compareArray.js]
features: [Symbol.iterator, Object.fromEntries]
--- | 
          2207 | 
        
        
          | iterator-closed-for-null-entry.js | 
          ---
esid: sec-object.fromentries
description: Closes iterators when they return entries which are null.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
  AddEntriesFromIterable ( target, iterable, adder )
  ...
  4. Repeat,
    ...
    d. If Type(nextItem) is not Object, then
      i. Let error be ThrowCompletion(a newly created TypeError object).
      ii. Return ? IteratorClose(iteratorRecord, error).
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1545 | 
        
        
          | iterator-closed-for-string-entry.js | 
          ---
esid: sec-object.fromentries
description: Closes iterators when they return entries which are strings.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
  AddEntriesFromIterable ( target, iterable, adder )
  ...
  4. Repeat,
    ...
    d. If Type(nextItem) is not Object, then
      i. Let error be ThrowCompletion(a newly created TypeError object).
      ii. Return ? IteratorClose(iteratorRecord, error).
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1552 | 
        
        
          | iterator-closed-for-throwing-entry-key-accessor.js | 
          ---
esid: sec-object.fromentries
description: Closes iterators when accessing an entry's key throws.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
  AddEntriesFromIterable ( target, iterable, adder )
  ...
  4. Repeat,
    ...
    e. Let k be Get(nextItem, "0").
    f. If k is an abrupt completion, return ? IteratorClose(iteratorRecord, k).
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1554 | 
        
        
          | iterator-closed-for-throwing-entry-key-tostring.js | 
          ---
esid: sec-object.fromentries
description: Closes iterators when toString on a key throws.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
  AddEntriesFromIterable ( target, iterable, adder )
  ...
  4. Repeat,
    ...
    e. Let k be Get(nextItem, "0").
    f. If k is an abrupt completion, return ? IteratorClose(iteratorRecord, k).
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1587 | 
        
        
          | iterator-closed-for-throwing-entry-value-accessor.js | 
          ---
esid: sec-object.fromentries
description: Closes iterators when accessing an entry's value throws.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
  AddEntriesFromIterable ( target, iterable, adder )
  ...
  4. Repeat,
    ...
    g. Let v be Get(nextItem, "1").
    h. If v is an abrupt completion, return ? IteratorClose(iteratorRecord, v).
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1629 | 
        
        
          | iterator-not-closed-for-next-returning-non-object.js | 
          ---
esid: sec-object.fromentries
description: Does not close iterators with a `next` method which returns a non-object.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
  AddEntriesFromIterable ( target, iterable, adder )
  ...
  4. Repeat,
    a. Let next be ? IteratorStep(iteratorRecord).
  IteratorStep ( iteratorRecord )
  1. Let result be ? IteratorNext(iteratorRecord).
  IteratorNext ( iteratorRecord [ , value ] )
  ...
  3. If Type(result) is not Object, throw a TypeError exception.
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1286 | 
        
        
          | iterator-not-closed-for-throwing-done-accessor.js | 
          ---
esid: sec-object.fromentries
description: Does not close iterators with a `done` accessor which throws.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
  AddEntriesFromIterable ( target, iterable, adder )
  ...
  4. Repeat,
    a. Let next be ? IteratorStep(iteratorRecord).
  IteratorStep ( iteratorRecord )
  1. Let result be ? IteratorNext(iteratorRecord).
  IteratorNext ( iteratorRecord [ , value ] )
  ...
  3. If Type(result) is not Object, throw a TypeError exception.
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1345 | 
        
        
          | iterator-not-closed-for-throwing-next.js | 
          ---
esid: sec-object.fromentries
description: Does not close iterators with a `next` method which throws.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
  AddEntriesFromIterable ( target, iterable, adder )
  ...
  4. Repeat,
    a. Let next be ? IteratorStep(iteratorRecord).
  IteratorStep ( iteratorRecord )
  1. Let result be ? IteratorNext(iteratorRecord).
  IteratorNext ( iteratorRecord [ , value ] )
  ...
  3. If Type(result) is not Object, throw a TypeError exception.
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1253 | 
        
        
          | iterator-not-closed-for-uncallable-next.js | 
          ---
esid: sec-object.fromentries
description: Does not close iterators with an uncallable `next` property.
info: |
  Object.fromEntries ( iterable )
  ...
  4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
  5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
  6. Return ? AddEntriesFromIterable(obj, iterable, adder).
  AddEntriesFromIterable ( target, iterable, adder )
  ...
  4. Repeat,
    a. Let next be ? IteratorStep(iteratorRecord).
  IteratorStep ( iteratorRecord )
  1. Let result be ? IteratorNext(iteratorRecord).
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1115 | 
        
        
          | key-order.js | 
          ---
description: Key enumeration order of result objects matches the order of entries in the iterable.
esid: sec-object.fromentries
includes: [compareArray.js]
features: [Object.fromEntries]
--- | 
          629 | 
        
        
          | length.js | 
          ---
description: Object.fromEntries.length is 1.
esid: sec-object.fromentries
includes: [propertyHelper.js]
features: [Object.fromEntries]
--- | 
          424 | 
        
        
          | name.js | 
          ---
description: Object.fromEntries.name is "fromEntries".
esid: sec-object.fromentries
includes: [propertyHelper.js]
features: [Object.fromEntries]
--- | 
          444 | 
        
        
          | not-a-constructor.js | 
          ---
esid: sec-ecmascript-standard-built-in-objects
description: >
  Object.fromEntries 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, Object.fromEntries, arrow-function]
--- | 
          916 | 
        
        
          | prototype.js | 
          ---
description: Created objects inherit from Object.prototype.
esid: sec-object.fromentries
features: [Object.fromEntries]
--- | 
          389 | 
        
        
          | requires-argument.js | 
          ---
esid: sec-object.fromentries
description: Throws when called without an argument.
info: |
  Object.fromEntries ( iterable )
  1. Perform ? RequireObjectCoercible(iterable).
  ...
features: [Object.fromEntries]
--- | 
          500 | 
        
        
          | shell.js | 
           | 
          0 | 
        
        
          | simple-properties.js | 
          ---
description: Creates data properties which are enumerable, writable, and configurable.
esid: sec-object.fromentries
includes: [propertyHelper.js]
features: [Object.fromEntries]
--- | 
          491 | 
        
        
          | string-entry-object-succeeds.js | 
          ---
description: Succeeds when an entry object is a boxed string.
esid: sec-object.fromentries
features: [Object.fromEntries]
--- | 
          372 | 
        
        
          | string-entry-primitive-throws.js | 
          ---
description: Throws when an entry object is a primitive string.
esid: sec-object.fromentries
features: [Object.fromEntries]
--- | 
          418 | 
        
        
          | string-entry-string-object-succeeds.js | 
          ---
description: Succeeds when an entry object is a boxed string.
esid: sec-object.fromentries
features: [Object.fromEntries]
--- | 
          376 | 
        
        
          | supports-symbols.js | 
          ---
description: Allows symbol keys.
esid: sec-object.fromentries
features: [Symbol, Object.fromEntries]
--- | 
          377 | 
        
        
          | to-property-key.js | 
          ---
description: Coerces keys to strings using ToPropertyKey.
esid: sec-object.fromentries
features: [Symbol.toPrimitive, Object.fromEntries]
--- | 
          510 | 
        
        
          | uses-define-semantics.js | 
          ---
description: Uses [[DefineOwnProperty]] rather than [[Set]].
esid: sec-object.fromentries
features: [Object.fromEntries]
--- | 
          658 | 
        
        
          | uses-keys-not-iterator.js | 
          ---
description: Reads properties rather than iterating.
esid: sec-object.fromentries
features: [Symbol.iterator, Object.fromEntries]
--- | 
          1379 |