source: imaps-frontend/node_modules/core-js/modules/esnext.iterator.concat.js

main
Last change on this file was 79a0317, checked in by stefan toskovski <stefantoska84@…>, 2 weeks ago

F4 Finalna Verzija

  • Property mode set to 100644
File size: 1.7 KB
Line 
1'use strict';
2var $ = require('../internals/export');
3var call = require('../internals/function-call');
4var aCallable = require('../internals/a-callable');
5var anObject = require('../internals/an-object');
6var getIteratorMethod = require('../internals/get-iterator-method');
7var createIteratorProxy = require('../internals/iterator-create-proxy');
8var createIterResultObject = require('../internals/create-iter-result-object');
9
10var $Array = Array;
11
12var IteratorProxy = createIteratorProxy(function () {
13 while (true) {
14 var iterator = this.iterator;
15 if (!iterator) {
16 var iterableIndex = this.nextIterableIndex++;
17 var iterables = this.iterables;
18 if (iterableIndex >= iterables.length) {
19 this.done = true;
20 return createIterResultObject(undefined, true);
21 }
22 var entry = iterables[iterableIndex];
23 this.iterables[iterableIndex] = null;
24 iterator = this.iterator = call(entry.method, entry.iterable);
25 this.next = iterator.next;
26 }
27 var result = anObject(call(this.next, iterator));
28 if (result.done) {
29 this.iterator = null;
30 this.next = null;
31 continue;
32 }
33 return result;
34 }
35}, false, true);
36
37// `Iterator.concat` method
38// https://github.com/tc39/proposal-iterator-sequencing
39$({ target: 'Iterator', stat: true, forced: true }, {
40 concat: function concat() {
41 var length = arguments.length;
42 var iterables = $Array(length);
43 for (var index = 0; index < length; index++) {
44 var item = anObject(arguments[index]);
45 iterables[index] = {
46 iterable: item,
47 method: aCallable(getIteratorMethod(item))
48 };
49 }
50 return new IteratorProxy({
51 iterables: iterables,
52 nextIterableIndex: 0,
53 iterator: null,
54 next: null
55 });
56 }
57});
Note: See TracBrowser for help on using the repository browser.