|
'use strict'; |
|
|
|
var callBound = require('call-bind/callBound'); |
|
|
|
var $arrayPush = callBound('Array.prototype.push'); |
|
|
|
var IteratorStep = require('./IteratorStep'); |
|
var IteratorValue = require('./IteratorValue'); |
|
var Type = require('./Type'); |
|
|
|
var assertRecord = require('../helpers/assertRecord'); |
|
|
|
|
|
|
|
module.exports = function IteratorToList(iteratorRecord) { |
|
assertRecord(Type, 'Iterator Record', 'iteratorRecord', iteratorRecord); |
|
|
|
var values = []; |
|
var next = true; |
|
while (next) { |
|
next = IteratorStep(iteratorRecord); |
|
if (next) { |
|
var nextValue = IteratorValue(next); |
|
$arrayPush(values, nextValue); |
|
} |
|
} |
|
return values; |
|
}; |
|
|