IterableToList.js 624 B

1234567891011121314151617181920212223242526
  1. 'use strict';
  2. var GetIterator = require('./GetIterator');
  3. var IteratorStep = require('./IteratorStep');
  4. var IteratorValue = require('./IteratorValue');
  5. // https://262.ecma-international.org/12.0/#sec-iterabletolist
  6. module.exports = function IterableToList(items) {
  7. var iterator;
  8. if (arguments.length > 1) {
  9. iterator = GetIterator(items, 'sync', arguments[1]);
  10. } else {
  11. iterator = GetIterator(items, 'sync');
  12. }
  13. var values = [];
  14. var next = true;
  15. while (next) {
  16. next = IteratorStep(iterator);
  17. if (next) {
  18. var nextValue = IteratorValue(next);
  19. values[values.length] = nextValue;
  20. }
  21. }
  22. return values;
  23. };