%PDF- %PDF-
Direktori : /var/www/html/node_modules/es-abstract/helpers/ |
Current File : /var/www/html/node_modules/es-abstract/helpers/getIteratorMethod.js |
'use strict'; var hasSymbols = require('has-symbols')(); var GetIntrinsic = require('get-intrinsic'); var callBound = require('call-bind/callBound'); var $iterator = GetIntrinsic('%Symbol.iterator%', true); var $stringSlice = callBound('String.prototype.slice'); module.exports = function getIteratorMethod(ES, iterable) { var usingIterator; if (hasSymbols) { usingIterator = ES.GetMethod(iterable, $iterator); } else if (ES.IsArray(iterable)) { usingIterator = function () { var i = -1; var arr = this; // eslint-disable-line no-invalid-this return { next: function () { i += 1; return { done: i >= arr.length, value: arr[i] }; } }; }; } else if (ES.Type(iterable) === 'String') { usingIterator = function () { var i = 0; return { next: function () { var nextIndex = ES.AdvanceStringIndex(iterable, i, true); var value = $stringSlice(iterable, i, nextIndex); i = nextIndex; return { done: nextIndex > iterable.length, value: value }; } }; }; } return usingIterator; };