GetIteratorDirect.js 553 B

123456789101112131415161718192021222324
  1. 'use strict';
  2. var $TypeError = require('es-errors/type');
  3. var isObject = require('es-object-atoms/isObject');
  4. var Get = require('./Get');
  5. // https://262.ecma-international.org/16.0/#sec-getiteratordirect
  6. module.exports = function GetIteratorDirect(obj) {
  7. if (!isObject(obj)) {
  8. throw new $TypeError('Assertion failed: `obj` must be an Object');
  9. }
  10. var nextMethod = Get(obj, 'next'); // step 1
  11. var iteratorRecord = {
  12. '[[Iterator]]': obj,
  13. '[[NextMethod]]': nextMethod,
  14. '[[Done]]': false
  15. }; // step 2
  16. return iteratorRecord; // step 3
  17. };