Spaces:
Runtime error
Runtime error
| ; | |
| var setPrototypeOf = require("es5-ext/object/set-prototype-of") | |
| , d = require("d") | |
| , Iterator = require("../") | |
| , validIterable = require("../valid-iterable") | |
| , push = Array.prototype.push | |
| , defineProperties = Object.defineProperties | |
| , IteratorChain; | |
| IteratorChain = function (iterators) { | |
| defineProperties(this, { | |
| __iterators__: d("", iterators), | |
| __current__: d("w", iterators.shift()) | |
| }); | |
| }; | |
| if (setPrototypeOf) setPrototypeOf(IteratorChain, Iterator); | |
| IteratorChain.prototype = Object.create(Iterator.prototype, { | |
| constructor: d(IteratorChain), | |
| next: d(function () { | |
| var result; | |
| if (!this.__current__) return { done: true, value: undefined }; | |
| result = this.__current__.next(); | |
| while (result.done) { | |
| this.__current__ = this.__iterators__.shift(); | |
| if (!this.__current__) return { done: true, value: undefined }; | |
| result = this.__current__.next(); | |
| } | |
| return result; | |
| }) | |
| }); | |
| module.exports = function () { | |
| var iterators = [this]; | |
| push.apply(iterators, arguments); | |
| iterators.forEach(validIterable); | |
| return new IteratorChain(iterators); | |
| }; | |