Spaces:
Configuration error
Configuration error
; | |
var callBound = require('call-bind/callBound'); | |
var $arrayPush = callBound('Array.prototype.push'); | |
var getIteratorMethod = require('../helpers/getIteratorMethod'); | |
var AdvanceStringIndex = require('./AdvanceStringIndex'); | |
var GetIterator = require('./GetIterator'); | |
var GetMethod = require('./GetMethod'); | |
var IsArray = require('./IsArray'); | |
var IteratorStep = require('./IteratorStep'); | |
var IteratorValue = require('./IteratorValue'); | |
var ToObject = require('./ToObject'); | |
var ES = { | |
AdvanceStringIndex: AdvanceStringIndex, | |
GetMethod: GetMethod, | |
IsArray: IsArray | |
}; | |
// https://262.ecma-international.org/7.0/#sec-iterabletoarraylike | |
module.exports = function IterableToArrayLike(items) { | |
var usingIterator = getIteratorMethod(ES, items); | |
if (typeof usingIterator !== 'undefined') { | |
var iterator = GetIterator(items, usingIterator); | |
var values = []; | |
var next = true; | |
while (next) { | |
next = IteratorStep(iterator); | |
if (next) { | |
var nextValue = IteratorValue(next); | |
$arrayPush(values, nextValue); | |
} | |
} | |
return values; | |
} | |
return ToObject(items); | |
}; | |