| 12345678910111213141516171819202122232425262728293031323334 | 'use strict';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://ecma-international.org/ecma-262/6.0/#sec-getiteratormodule.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;};
 |