This commit is contained in:
101
node_modules/core-js/internals/iterator-zip.js
generated
vendored
Normal file
101
node_modules/core-js/internals/iterator-zip.js
generated
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
'use strict';
|
||||
var call = require('../internals/function-call');
|
||||
var uncurryThis = require('../internals/function-uncurry-this');
|
||||
var anObject = require('../internals/an-object');
|
||||
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
||||
var iteratorCloseAll = require('../internals/iterator-close-all');
|
||||
|
||||
var $TypeError = TypeError;
|
||||
var slice = uncurryThis([].slice);
|
||||
var push = uncurryThis([].push);
|
||||
var ITERATOR_IS_EXHAUSTED = 'Iterator is exhausted';
|
||||
var THROW = 'throw';
|
||||
|
||||
// eslint-disable-next-line max-statements -- specification case
|
||||
var IteratorProxy = createIteratorProxy(function () {
|
||||
var iterCount = this.iterCount;
|
||||
if (!iterCount) {
|
||||
this.done = true;
|
||||
return;
|
||||
}
|
||||
var openIters = this.openIters;
|
||||
var iters = this.iters;
|
||||
var padding = this.padding;
|
||||
var mode = this.mode;
|
||||
var finishResults = this.finishResults;
|
||||
|
||||
var results = [];
|
||||
var result, done;
|
||||
for (var i = 0; i < iterCount; i++) {
|
||||
var iter = iters[i];
|
||||
if (iter === null) {
|
||||
result = padding[i];
|
||||
} else {
|
||||
try {
|
||||
result = anObject(call(iter.next, iter.iterator));
|
||||
done = result.done;
|
||||
result = result.value;
|
||||
} catch (error) {
|
||||
openIters[i] = undefined;
|
||||
return iteratorCloseAll(openIters, THROW, error);
|
||||
}
|
||||
if (done) {
|
||||
openIters[i] = undefined;
|
||||
this.openItersCount--;
|
||||
if (mode === 'shortest') {
|
||||
this.done = true;
|
||||
return iteratorCloseAll(openIters, 'normal', undefined);
|
||||
}
|
||||
if (mode === 'strict') {
|
||||
if (i) {
|
||||
return iteratorCloseAll(openIters, THROW, new $TypeError(ITERATOR_IS_EXHAUSTED));
|
||||
}
|
||||
|
||||
var open, openDone;
|
||||
for (var k = 1; k < iterCount; k++) {
|
||||
// eslint-disable-next-line max-depth -- specification case
|
||||
try {
|
||||
open = anObject(call(iters[k].next, iters[k].iterator));
|
||||
openDone = open.done;
|
||||
open = open.value;
|
||||
} catch (error) {
|
||||
openIters[k] = undefined;
|
||||
return iteratorCloseAll(openIters, THROW, error);
|
||||
}
|
||||
// eslint-disable-next-line max-depth -- specification case
|
||||
if (openDone) {
|
||||
openIters[k] = undefined;
|
||||
this.openItersCount--;
|
||||
} else {
|
||||
return iteratorCloseAll(openIters, THROW, new $TypeError(ITERATOR_IS_EXHAUSTED));
|
||||
}
|
||||
}
|
||||
this.done = true;
|
||||
return;
|
||||
}
|
||||
if (!this.openItersCount) {
|
||||
this.done = true;
|
||||
return;
|
||||
}
|
||||
iters[i] = null;
|
||||
result = padding[i];
|
||||
}
|
||||
}
|
||||
push(results, result);
|
||||
}
|
||||
|
||||
return finishResults ? finishResults(results) : results;
|
||||
});
|
||||
|
||||
module.exports = function (iters, mode, padding, finishResults) {
|
||||
var iterCount = iters.length;
|
||||
return new IteratorProxy({
|
||||
iters: iters,
|
||||
iterCount: iterCount,
|
||||
openIters: slice(iters, 0),
|
||||
openItersCount: iterCount,
|
||||
mode: mode,
|
||||
padding: padding,
|
||||
finishResults: finishResults
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user