core-js 3.49.0 → 3.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actual/iterator/chunks.js +5 -0
- package/actual/iterator/concat.js +4 -0
- package/actual/iterator/from.js +4 -0
- package/actual/iterator/includes.js +5 -0
- package/actual/iterator/index.js +4 -1
- package/actual/iterator/join.js +5 -0
- package/actual/iterator/windows.js +5 -0
- package/actual/iterator/zip-keyed.js +6 -21
- package/actual/iterator/zip.js +6 -19
- package/actual/promise/all-keyed.js +16 -0
- package/actual/promise/all-settled-keyed.js +16 -0
- package/actual/promise/index.js +4 -0
- package/es/index.js +6 -0
- package/es/iterator/chunks.js +8 -0
- package/es/iterator/concat.js +4 -0
- package/es/iterator/from.js +4 -0
- package/es/iterator/includes.js +8 -0
- package/es/iterator/index.js +8 -0
- package/es/iterator/join.js +8 -0
- package/es/iterator/windows.js +8 -0
- package/es/iterator/zip-keyed.js +28 -0
- package/es/iterator/zip.js +26 -0
- package/features/iterator/includes.js +2 -0
- package/features/iterator/join.js +2 -0
- package/features/promise/all-keyed.js +2 -0
- package/features/promise/all-settled-keyed.js +2 -0
- package/full/index.js +10 -0
- package/full/iterator/chunks.js +2 -6
- package/full/iterator/concat.js +0 -2
- package/full/iterator/from.js +0 -2
- package/full/iterator/includes.js +4 -0
- package/full/iterator/index.js +0 -2
- package/full/iterator/join.js +4 -0
- package/full/iterator/range.js +7 -1
- package/full/iterator/windows.js +2 -6
- package/full/iterator/zip-keyed.js +0 -2
- package/full/iterator/zip.js +0 -2
- package/full/promise/all-keyed.js +4 -0
- package/full/promise/all-settled-keyed.js +4 -0
- package/internals/add-disposable-resource.js +1 -1
- package/internals/array-fill.js +2 -1
- package/internals/array-from-async.js +2 -2
- package/internals/array-from.js +8 -2
- package/internals/async-iterator-create-proxy.js +14 -2
- package/internals/error-stack-clear.js +1 -1
- package/internals/get-async-iterator-flattenable.js +1 -1
- package/internals/get-async-iterator.js +1 -1
- package/internals/get-internal-iterator.js +1 -0
- package/internals/get-iterator-flattenable.js +1 -1
- package/internals/get-iterator-internal.js +14 -0
- package/internals/get-iterator-method-internal.js +14 -0
- package/internals/get-iterator-method.js +4 -7
- package/internals/get-iterator-record.js +1 -1
- package/internals/get-iterator.js +4 -5
- package/internals/is-iterable.js +4 -10
- package/internals/iterate.js +2 -2
- package/internals/iterator-chunk-size-validation.js +17 -0
- package/internals/iterator-cleanup-state.js +6 -0
- package/internals/iterator-create-proxy.js +10 -4
- package/internals/iterator-window.js +2 -4
- package/internals/iterators.js +1 -1
- package/internals/math-log1p.js +3 -1
- package/internals/shared-store.js +2 -2
- package/internals/shared.js +3 -1
- package/internals/typed-array-from.js +2 -2
- package/internals/uint8-from-base64.js +4 -2
- package/internals/uint8-from-hex.js +1 -1
- package/internals/url-percent-coding.js +171 -0
- package/modules/es.date.to-json.js +1 -1
- package/modules/es.escape.js +10 -8
- package/modules/es.iterator.chunks.js +42 -0
- package/modules/es.iterator.concat.js +1 -1
- package/modules/es.iterator.drop.js +16 -1
- package/modules/es.iterator.flat-map.js +12 -14
- package/modules/es.iterator.includes.js +44 -0
- package/modules/es.iterator.join.js +31 -0
- package/modules/es.iterator.take.js +16 -1
- package/modules/es.iterator.windows.js +12 -0
- package/modules/es.iterator.zip-keyed.js +70 -0
- package/modules/es.iterator.zip.js +92 -0
- package/modules/es.json.parse.js +1 -1
- package/modules/es.json.stringify.js +150 -34
- package/modules/es.map.group-by.js +2 -0
- package/modules/es.math.asinh.js +7 -3
- package/modules/es.math.cbrt.js +9 -2
- package/modules/es.math.sum-precise.js +27 -1
- package/modules/es.object.group-by.js +2 -0
- package/modules/es.object.proto.js +2 -1
- package/modules/es.promise.try.js +16 -8
- package/modules/es.regexp.escape.js +2 -1
- package/modules/es.string.match-all.js +3 -4
- package/modules/es.string.match.js +3 -1
- package/modules/es.string.search.js +3 -1
- package/modules/es.uint8-array.to-base64.js +22 -5
- package/modules/esnext.iterator.chunks.js +2 -43
- package/modules/esnext.iterator.includes.js +3 -0
- package/modules/esnext.iterator.join.js +3 -0
- package/modules/esnext.iterator.windows.js +2 -10
- package/modules/esnext.iterator.zip-keyed.js +2 -71
- package/modules/esnext.iterator.zip.js +2 -91
- package/modules/esnext.observable.from.js +2 -2
- package/modules/esnext.promise.all-keyed.js +57 -0
- package/modules/esnext.promise.all-settled-keyed.js +62 -0
- package/modules/web.url-search-params.constructor.js +11 -143
- package/modules/web.url.constructor.js +103 -17
- package/modules/web.url.to-json.js +4 -1
- package/package.json +4 -1
- package/proposals/await-dictionary.js +4 -0
- package/proposals/iterator-includes.js +3 -0
- package/proposals/iterator-join.js +3 -0
- package/stable/index.js +6 -0
- package/stable/iterator/chunks.js +4 -0
- package/stable/iterator/includes.js +4 -0
- package/stable/iterator/join.js +4 -0
- package/stable/iterator/windows.js +4 -0
- package/stable/iterator/zip-keyed.js +5 -0
- package/stable/iterator/zip.js +5 -0
- package/stage/3.js +1 -0
- package/stage/4.js +3 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
4
|
+
var call = require('../internals/function-call');
|
|
5
|
+
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
6
|
+
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
|
+
var chunkSizeValidation = require('../internals/iterator-chunk-size-validation');
|
|
8
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
9
|
+
var IS_PURE = require('../internals/is-pure');
|
|
10
|
+
|
|
11
|
+
var push = uncurryThis([].push);
|
|
12
|
+
|
|
13
|
+
var IteratorProxy = createIteratorProxy(function () {
|
|
14
|
+
var iterator = this.iterator;
|
|
15
|
+
var next = this.next;
|
|
16
|
+
var chunkSize = this.chunkSize;
|
|
17
|
+
var buffer = [];
|
|
18
|
+
var result, done;
|
|
19
|
+
while (true) {
|
|
20
|
+
result = anObject(call(next, iterator));
|
|
21
|
+
done = !!result.done;
|
|
22
|
+
if (done) {
|
|
23
|
+
if (buffer.length) return buffer;
|
|
24
|
+
this.done = true;
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
push(buffer, result.value);
|
|
28
|
+
if (buffer.length === chunkSize) return buffer;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// `Iterator.prototype.chunks` method
|
|
33
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.chunks
|
|
34
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
35
|
+
chunks: function chunks(chunkSize) {
|
|
36
|
+
anObject(this);
|
|
37
|
+
chunkSizeValidation(chunkSize, this);
|
|
38
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
39
|
+
chunkSize: chunkSize
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
});
|
|
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var call = require('../internals/function-call');
|
|
4
4
|
var aCallable = require('../internals/a-callable');
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
|
-
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
6
|
+
var getIteratorMethod = require('../internals/get-iterator-method-internal');
|
|
7
7
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
8
8
|
var IS_PURE = require('../internals/is-pure');
|
|
9
9
|
|
|
@@ -11,11 +11,23 @@ var iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helpe
|
|
|
11
11
|
var iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');
|
|
12
12
|
var IS_PURE = require('../internals/is-pure');
|
|
13
13
|
|
|
14
|
+
var $RangeError = RangeError;
|
|
15
|
+
var $Infinity = Infinity;
|
|
16
|
+
|
|
14
17
|
var DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('drop', 0);
|
|
15
18
|
var dropWithoutClosingOnEarlyError = !IS_PURE && !DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR
|
|
16
19
|
&& iteratorHelperWithoutClosingOnEarlyError('drop', RangeError);
|
|
17
20
|
|
|
18
|
-
var FORCED = IS_PURE || DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR || dropWithoutClosingOnEarlyError
|
|
21
|
+
var FORCED = IS_PURE || DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR || dropWithoutClosingOnEarlyError || !function () {
|
|
22
|
+
try {
|
|
23
|
+
// eslint-disable-next-line es/no-iterator, es/no-iterator-prototype-drop -- detection
|
|
24
|
+
Iterator.prototype.drop.call({
|
|
25
|
+
next: function () { return { done: true }; }
|
|
26
|
+
}, 0x20000000000000);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
return error instanceof $RangeError;
|
|
29
|
+
}
|
|
30
|
+
}();
|
|
19
31
|
|
|
20
32
|
var IteratorProxy = createIteratorProxy(function () {
|
|
21
33
|
var iterator = this.iterator;
|
|
@@ -40,6 +52,9 @@ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
|
|
|
40
52
|
var remaining;
|
|
41
53
|
try {
|
|
42
54
|
remaining = toPositiveInteger(notANaN(+limit));
|
|
55
|
+
if (remaining > 0x1FFFFFFFFFFFFF && remaining !== $Infinity) {
|
|
56
|
+
throw new $RangeError('The argument should be a safe integer');
|
|
57
|
+
}
|
|
43
58
|
} catch (error) {
|
|
44
59
|
iteratorClose(this, 'throw', error);
|
|
45
60
|
}
|
|
@@ -7,30 +7,28 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
|
7
7
|
var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
|
|
8
8
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
9
9
|
var iteratorClose = require('../internals/iterator-close');
|
|
10
|
+
var fails = require('../internals/fails');
|
|
10
11
|
var IS_PURE = require('../internals/is-pure');
|
|
11
12
|
var iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');
|
|
12
13
|
var iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');
|
|
13
14
|
|
|
14
15
|
// Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2
|
|
15
16
|
// https://bugs.webkit.org/show_bug.cgi?id=297532
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
} catch (error) {
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
17
|
+
var THROWS_ON_ITERATOR_WITHOUT_RETURN = !IS_PURE && fails(function () {
|
|
18
|
+
// eslint-disable-next-line es/no-array-prototype-values, es/no-iterator-prototype-flatmap, es/no-iterator-prototype-find -- testing
|
|
19
|
+
return [1].values()
|
|
20
|
+
.flatMap(function () { return [1]; })
|
|
21
|
+
.find(function () { return true; }) !== 1;
|
|
22
|
+
});
|
|
26
23
|
|
|
27
|
-
var FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE
|
|
24
|
+
var FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !THROWS_ON_ITERATOR_WITHOUT_RETURN
|
|
28
25
|
&& !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });
|
|
29
|
-
|
|
26
|
+
|
|
27
|
+
var flatMapWithoutClosingOnEarlyError = !IS_PURE && !THROWS_ON_ITERATOR_WITHOUT_RETURN && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
|
|
30
28
|
&& iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);
|
|
31
29
|
|
|
32
|
-
var FORCED = IS_PURE ||
|
|
33
|
-
||
|
|
30
|
+
var FORCED = IS_PURE || THROWS_ON_ITERATOR_WITHOUT_RETURN || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
|
|
31
|
+
|| flatMapWithoutClosingOnEarlyError;
|
|
34
32
|
|
|
35
33
|
var IteratorProxy = createIteratorProxy(function () {
|
|
36
34
|
var iterator = this.iterator;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
4
|
+
var isIntegralNumber = require('../internals/is-integral-number');
|
|
5
|
+
var iterate = require('../internals/iterate');
|
|
6
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
7
|
+
var sameValueZero = require('../internals/same-value-zero');
|
|
8
|
+
var IS_PURE = require('../internals/is-pure');
|
|
9
|
+
|
|
10
|
+
var $RangeError = RangeError;
|
|
11
|
+
var $TypeError = TypeError;
|
|
12
|
+
var $Infinity = Infinity;
|
|
13
|
+
|
|
14
|
+
var INVALID_SKIPPED_ELEMENTS = 'skippedElements should be a positive safe integer';
|
|
15
|
+
|
|
16
|
+
// `Iterator.prototype.includes` method
|
|
17
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.includes
|
|
18
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
19
|
+
includes: function includes(searchElement /* , skippedElements */) {
|
|
20
|
+
anObject(this);
|
|
21
|
+
var skippedElements = arguments.length > 1 ? arguments[1] : undefined;
|
|
22
|
+
var skipped = 0;
|
|
23
|
+
var toSkip;
|
|
24
|
+
try {
|
|
25
|
+
if (skippedElements === undefined) {
|
|
26
|
+
toSkip = 0;
|
|
27
|
+
} else if (skippedElements === $Infinity || skippedElements === -$Infinity || isIntegralNumber(skippedElements)) {
|
|
28
|
+
toSkip = skippedElements;
|
|
29
|
+
} else {
|
|
30
|
+
throw new $TypeError(INVALID_SKIPPED_ELEMENTS);
|
|
31
|
+
}
|
|
32
|
+
if (toSkip < 0 || (toSkip !== $Infinity && toSkip > 0x1FFFFFFFFFFFFF)) {
|
|
33
|
+
throw new $RangeError(INVALID_SKIPPED_ELEMENTS);
|
|
34
|
+
}
|
|
35
|
+
} catch (error) {
|
|
36
|
+
iteratorClose(this, 'throw', error);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return iterate(this, function (value, stop) {
|
|
40
|
+
if (skipped < toSkip) skipped++;
|
|
41
|
+
else if (sameValueZero(value, searchElement)) return stop();
|
|
42
|
+
}, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var $toString = require('../internals/to-string');
|
|
4
|
+
var anObject = require('../internals/an-object');
|
|
5
|
+
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
6
|
+
var iterate = require('../internals/iterate');
|
|
7
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
8
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
9
|
+
var IS_PURE = require('../internals/is-pure');
|
|
10
|
+
|
|
11
|
+
var $join = uncurryThis([].join);
|
|
12
|
+
var push = uncurryThis([].push);
|
|
13
|
+
|
|
14
|
+
// `Iterator.prototype.join` method
|
|
15
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.join
|
|
16
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
17
|
+
join: function join(separator) {
|
|
18
|
+
anObject(this);
|
|
19
|
+
var sep;
|
|
20
|
+
try {
|
|
21
|
+
sep = separator === undefined ? ',' : $toString(separator);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
iteratorClose(this, 'throw', error);
|
|
24
|
+
}
|
|
25
|
+
var result = [];
|
|
26
|
+
iterate(this, function (value) {
|
|
27
|
+
push(result, isNullOrUndefined(value) ? '' : $toString(value));
|
|
28
|
+
}, { IS_ITERATOR: true });
|
|
29
|
+
return $join(result, sep);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
@@ -11,11 +11,23 @@ var iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helpe
|
|
|
11
11
|
var iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');
|
|
12
12
|
var IS_PURE = require('../internals/is-pure');
|
|
13
13
|
|
|
14
|
+
var $RangeError = RangeError;
|
|
15
|
+
var $Infinity = Infinity;
|
|
16
|
+
|
|
14
17
|
var TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('take', 1);
|
|
15
18
|
var takeWithoutClosingOnEarlyError = !IS_PURE && !TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR
|
|
16
19
|
&& iteratorHelperWithoutClosingOnEarlyError('take', RangeError);
|
|
17
20
|
|
|
18
|
-
var FORCED = IS_PURE || TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR || takeWithoutClosingOnEarlyError
|
|
21
|
+
var FORCED = IS_PURE || TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR || takeWithoutClosingOnEarlyError || !function () {
|
|
22
|
+
try {
|
|
23
|
+
// eslint-disable-next-line es/no-iterator, es/no-iterator-prototype-take -- detection
|
|
24
|
+
Iterator.prototype.take.call({
|
|
25
|
+
next: function () { return { done: true }; }
|
|
26
|
+
}, 0x20000000000000);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
return error instanceof $RangeError;
|
|
29
|
+
}
|
|
30
|
+
}();
|
|
19
31
|
|
|
20
32
|
var IteratorProxy = createIteratorProxy(function () {
|
|
21
33
|
var iterator = this.iterator;
|
|
@@ -36,6 +48,9 @@ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
|
|
|
36
48
|
var remaining;
|
|
37
49
|
try {
|
|
38
50
|
remaining = toPositiveInteger(notANaN(+limit));
|
|
51
|
+
if (remaining > 0x1FFFFFFFFFFFFF && remaining !== $Infinity) {
|
|
52
|
+
throw new $RangeError('The argument should be a safe integer');
|
|
53
|
+
}
|
|
39
54
|
} catch (error) {
|
|
40
55
|
iteratorClose(this, 'throw', error);
|
|
41
56
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var iteratorWindow = require('../internals/iterator-window');
|
|
4
|
+
var IS_PURE = require('../internals/is-pure');
|
|
5
|
+
|
|
6
|
+
// `Iterator.prototype.windows` method
|
|
7
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.windows
|
|
8
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
9
|
+
windows: function windows(windowSize /* , undersized */) {
|
|
10
|
+
return iteratorWindow(this, windowSize, arguments.length < 2 ? undefined : arguments[1]);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
4
|
+
var anObjectOrUndefined = require('../internals/an-object-or-undefined');
|
|
5
|
+
var createProperty = require('../internals/create-property');
|
|
6
|
+
var call = require('../internals/function-call');
|
|
7
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
8
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
9
|
+
var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
|
|
10
|
+
var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
|
|
11
|
+
var getModeOption = require('../internals/get-mode-option');
|
|
12
|
+
var iteratorCloseAll = require('../internals/iterator-close-all');
|
|
13
|
+
var iteratorZip = require('../internals/iterator-zip');
|
|
14
|
+
var IS_PURE = require('../internals/is-pure');
|
|
15
|
+
|
|
16
|
+
var push = uncurryThis([].push);
|
|
17
|
+
var THROW = 'throw';
|
|
18
|
+
|
|
19
|
+
// `Iterator.zipKeyed` method
|
|
20
|
+
// https://github.com/tc39/proposal-joint-iteration
|
|
21
|
+
$({ target: 'Iterator', stat: true, forced: IS_PURE }, {
|
|
22
|
+
zipKeyed: function zipKeyed(iterables /* , options */) {
|
|
23
|
+
anObject(iterables);
|
|
24
|
+
var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
|
|
25
|
+
var mode = getModeOption(options);
|
|
26
|
+
var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;
|
|
27
|
+
|
|
28
|
+
var iters = [];
|
|
29
|
+
var padding = [];
|
|
30
|
+
var allKeys = getBuiltIn('Reflect', 'ownKeys')(iterables);
|
|
31
|
+
var keys = [];
|
|
32
|
+
var propertyIsEnumerable = propertyIsEnumerableModule.f;
|
|
33
|
+
var i, key, value;
|
|
34
|
+
for (i = 0; i < allKeys.length; i++) try {
|
|
35
|
+
key = allKeys[i];
|
|
36
|
+
if (!call(propertyIsEnumerable, iterables, key)) continue;
|
|
37
|
+
value = iterables[key];
|
|
38
|
+
if (value !== undefined) {
|
|
39
|
+
push(keys, key);
|
|
40
|
+
push(iters, getIteratorFlattenable(value, false));
|
|
41
|
+
}
|
|
42
|
+
} catch (error) {
|
|
43
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
var iterCount = iters.length;
|
|
47
|
+
if (mode === 'longest') {
|
|
48
|
+
if (paddingOption === undefined) {
|
|
49
|
+
for (i = 0; i < iterCount; i++) push(padding, undefined);
|
|
50
|
+
} else {
|
|
51
|
+
for (i = 0; i < keys.length; i++) {
|
|
52
|
+
try {
|
|
53
|
+
value = paddingOption[keys[i]];
|
|
54
|
+
} catch (error) {
|
|
55
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
56
|
+
}
|
|
57
|
+
push(padding, value);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return iteratorZip(iters, mode, padding, function (results) {
|
|
63
|
+
var obj = getBuiltIn('Object', 'create')(null);
|
|
64
|
+
for (var j = 0; j < iterCount; j++) {
|
|
65
|
+
createProperty(obj, keys[j], results[j]);
|
|
66
|
+
}
|
|
67
|
+
return obj;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
4
|
+
var anObjectOrUndefined = require('../internals/an-object-or-undefined');
|
|
5
|
+
var call = require('../internals/function-call');
|
|
6
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
7
|
+
var getIteratorRecord = require('../internals/get-iterator-record');
|
|
8
|
+
var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
|
|
9
|
+
var getModeOption = require('../internals/get-mode-option');
|
|
10
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
11
|
+
var iteratorCloseAll = require('../internals/iterator-close-all');
|
|
12
|
+
var iteratorZip = require('../internals/iterator-zip');
|
|
13
|
+
var IS_PURE = require('../internals/is-pure');
|
|
14
|
+
|
|
15
|
+
var concat = uncurryThis([].concat);
|
|
16
|
+
var push = uncurryThis([].push);
|
|
17
|
+
var THROW = 'throw';
|
|
18
|
+
|
|
19
|
+
// `Iterator.zip` method
|
|
20
|
+
// https://github.com/tc39/proposal-joint-iteration
|
|
21
|
+
$({ target: 'Iterator', stat: true, forced: IS_PURE }, {
|
|
22
|
+
zip: function zip(iterables /* , options */) {
|
|
23
|
+
anObject(iterables);
|
|
24
|
+
var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
|
|
25
|
+
var mode = getModeOption(options);
|
|
26
|
+
var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;
|
|
27
|
+
|
|
28
|
+
var iters = [];
|
|
29
|
+
var padding = [];
|
|
30
|
+
var inputIter = getIteratorRecord(iterables);
|
|
31
|
+
var iter, done, next;
|
|
32
|
+
while (!done) {
|
|
33
|
+
try {
|
|
34
|
+
next = anObject(call(inputIter.next, inputIter.iterator));
|
|
35
|
+
done = next.done;
|
|
36
|
+
} catch (error) {
|
|
37
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
38
|
+
}
|
|
39
|
+
if (!done) {
|
|
40
|
+
try {
|
|
41
|
+
iter = getIteratorFlattenable(next.value, false);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
return iteratorCloseAll(concat([inputIter], iters), THROW, error);
|
|
44
|
+
}
|
|
45
|
+
push(iters, iter);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
var iterCount = iters.length;
|
|
50
|
+
var i, paddingDone, paddingIter;
|
|
51
|
+
if (mode === 'longest') {
|
|
52
|
+
if (paddingOption === undefined) {
|
|
53
|
+
for (i = 0; i < iterCount; i++) push(padding, undefined);
|
|
54
|
+
} else {
|
|
55
|
+
try {
|
|
56
|
+
paddingIter = getIteratorRecord(paddingOption);
|
|
57
|
+
} catch (error) {
|
|
58
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
59
|
+
}
|
|
60
|
+
var usingIterator = true;
|
|
61
|
+
for (i = 0; i < iterCount; i++) {
|
|
62
|
+
if (usingIterator) {
|
|
63
|
+
try {
|
|
64
|
+
next = anObject(call(paddingIter.next, paddingIter.iterator));
|
|
65
|
+
paddingDone = next.done;
|
|
66
|
+
next = next.value;
|
|
67
|
+
} catch (error) {
|
|
68
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
69
|
+
}
|
|
70
|
+
if (paddingDone) {
|
|
71
|
+
usingIterator = false;
|
|
72
|
+
} else {
|
|
73
|
+
push(padding, next);
|
|
74
|
+
}
|
|
75
|
+
} else {
|
|
76
|
+
push(padding, undefined);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (usingIterator) {
|
|
81
|
+
try {
|
|
82
|
+
iteratorClose(paddingIter.iterator, 'normal');
|
|
83
|
+
} catch (error) {
|
|
84
|
+
return iteratorCloseAll(iters, THROW, error);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return iteratorZip(iters, mode, padding);
|
|
91
|
+
}
|
|
92
|
+
});
|
package/modules/es.json.parse.js
CHANGED
|
@@ -38,7 +38,7 @@ var OBJECT = 1;
|
|
|
38
38
|
|
|
39
39
|
var $parse = function (source, reviver) {
|
|
40
40
|
source = toString(source);
|
|
41
|
-
var context = new Context(source, 0
|
|
41
|
+
var context = new Context(source, 0);
|
|
42
42
|
var root = context.parse();
|
|
43
43
|
var value = root.value;
|
|
44
44
|
var endIndex = context.skip(IS_WHITESPACE, root.end);
|