| browser.js | 
           | 
          0 | 
        
        
          | callback-arg.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy calls function with correct arguments
info: |
  Object.groupBy ( items, callbackfn )
  ...
  GroupBy ( items, callbackfn, coercion )
  6. Repeat,
      e. Let key be Completion(Call(callbackfn, undefined, « value, 𝔽(k) »)).
  ...
features: [array-grouping]
--- | 
          806 | 
        
        
          | callback-throws.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy throws when callback throws
info: |
  Object.groupBy ( items, callbackfn )
  ...
  GroupBy ( items, callbackfn, coercion )
  6. Repeat,
    e. Let key be Completion(Call(callbackfn, undefined, « value, 𝔽(k) »)).
    f. IfAbruptCloseIterator(key, iteratorRecord).
  ...
features: [array-grouping]
--- | 
          684 | 
        
        
          | emptyList.js | 
          ---
esid: sec-object.groupby
description: Callback is not called and object is not populated if the iterable is empty
info: |
  Object.groupBy ( items, callbackfn )
  ...
  GroupBy ( items, callbackfn, coercion )
  6. Repeat,
    c. If next is false, then
      i. Return groups.
  ...
features: [array-grouping]
--- | 
          745 | 
        
        
          | evenOdd.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy populates object with correct keys and values
info: |
  Object.groupBy ( items, callbackfn )
  ...
includes: [compareArray.js]
features: [array-grouping]
--- | 
          633 | 
        
        
          | groupLength.js | 
          ---
esid: sec-object.groupby
description: Callback can return numbers that are converted to property keys
info: |
  Object.groupBy ( items, callbackfn )
  ...
  GroupBy ( items, callbackfn, coercion )
  6. Repeat,
    c. If next is false, then
      i. Return groups.
  ...
includes: [compareArray.js]
features: [array-grouping]
--- | 
          751 | 
        
        
          | invalid-callback.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy called with non-callable throws TypeError
info: |
  Object.groupBy ( items, callbackfn )
  ...
  GroupBy ( items, callbackfn, coercion )
  2. If IsCallable(callbackfn) is false, throw a TypeError exception.
  ...
features: [array-grouping]
--- | 
          788 | 
        
        
          | invalid-iterable.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy with a nullish Symbol.iterator throws
info: |
  Object.groupBy ( items, callbackfn )
  ...
  GroupBy ( items, callbackfn, coercion )
  4. Let iteratorRecord be ? GetIterator(items).
  ...
features: [array-grouping]
--- | 
          882 | 
        
        
          | invalid-property-key.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy errors when callback return value cannot be converted to a property key.
info: |
  Object.groupBy ( items, callbackfn )
  ...
  GroupBy ( items, callbackfn, coercion )
  6. Repeat,
    g. If coercion is property, then
      i. Set key to Completion(ToPropertyKey(key)).
      ii. IfAbruptCloseIterator(key, iteratorRecord).
  ...
features: [array-grouping]
--- | 
          795 | 
        
        
          | iterator-next-throws.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy throws when iterator next throws
info: |
  Object.groupBy ( items, callbackfn )
  ...
  GroupBy ( items, callbackfn, coercion )
  6. Repeat,
    b. Let next be ? IteratorStep(iteratorRecord).
  ...
features: [array-grouping, Symbol.iterator]
--- | 
          763 | 
        
        
          | length.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy property length descriptor
info: |
  Object.groupBy ( items, callbackfn )
  ...
    17 ECMAScript Standard Built-in Objects
  ...
includes: [propertyHelper.js]
features: [array-grouping]
--- | 
          535 | 
        
        
          | name.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy property name descriptor
info: |
  Object.groupBy ( items, callbackfn )
  ...
    17 ECMAScript Standard Built-in Objects
  ...
includes: [propertyHelper.js]
features: [array-grouping]
--- | 
          539 | 
        
        
          | null-prototype.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy returns a null prototype object
info: |
  Object.groupBy ( items, callbackfn )
  ...
  2. Let obj be OrdinaryObjectCreate(null).
  ...
  4. Return obj.
  ...
features: [array-grouping]
--- | 
          632 | 
        
        
          | shell.js | 
           | 
          0 | 
        
        
          | string.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy works for string items
info: |
  Object.groupBy ( items, callbackfn )
  ...
includes: [compareArray.js]
features: [array-grouping]
--- | 
          655 | 
        
        
          | toPropertyKey.js | 
          ---
esid: sec-object.groupby
description: Object.groupBy coerces return value with ToPropertyKey
info: |
  Object.groupBy ( items, callbackfn )
  ...
  GroupBy ( items, callbackfn, coercion )
  6. Repeat,
    g. If coercion is property, then
      i. Set key to Completion(ToPropertyKey(key)).
      ii. IfAbruptCloseIterator(key, iteratorRecord).
  ...
includes: [compareArray.js]
features: [array-grouping]
--- | 
          871 |