Spaces:
Configuration error
Configuration error
| ; | |
| var GetIntrinsic = require('get-intrinsic'); | |
| var $TypeError = GetIntrinsic('%TypeError%'); | |
| var getIteratorMethod = require('../helpers/getIteratorMethod'); | |
| var AdvanceStringIndex = require('./AdvanceStringIndex'); | |
| var Call = require('./Call'); | |
| var GetMethod = require('./GetMethod'); | |
| var IsArray = require('./IsArray'); | |
| var Type = require('./Type'); | |
| // https://262.ecma-international.org/6.0/#sec-getiterator | |
| module.exports = function GetIterator(obj, method) { | |
| var actualMethod = method; | |
| if (arguments.length < 2) { | |
| actualMethod = getIteratorMethod( | |
| { | |
| AdvanceStringIndex: AdvanceStringIndex, | |
| GetMethod: GetMethod, | |
| IsArray: IsArray | |
| }, | |
| obj | |
| ); | |
| } | |
| var iterator = Call(actualMethod, obj); | |
| if (Type(iterator) !== 'Object') { | |
| throw new $TypeError('iterator must return an object'); | |
| } | |
| return iterator; | |
| }; | |