'use strict'; var callBound = require('call-bind/callBound'); var $arrayPush = callBound('Array.prototype.push'); var GetIterator = require('./GetIterator'); var IteratorStep = require('./IteratorStep'); var IteratorValue = require('./IteratorValue'); // https://262.ecma-international.org/12.0/#sec-iterabletolist module.exports = function IterableToList(items) { var iterator; if (arguments.length > 1) { iterator = GetIterator(items, 'sync', arguments[1]); } else { iterator = GetIterator(items, 'sync'); } var values = []; var next = true; while (next) { next = IteratorStep(iterator); if (next) { var nextValue = IteratorValue(next); $arrayPush(values, nextValue); } } return values; };