core-js 3.48.0 → 3.50.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/README.md +2 -2
- package/actual/iterator/chunks.js +8 -0
- package/actual/iterator/concat.js +4 -0
- package/actual/iterator/from.js +4 -0
- package/actual/iterator/includes.js +8 -0
- package/actual/iterator/index.js +4 -1
- package/actual/iterator/join.js +8 -0
- package/actual/iterator/windows.js +8 -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/configurator.js +1 -1
- package/es/index.js +2 -0
- package/es/iterator/index.js +4 -0
- package/es/iterator/zip-keyed.js +24 -0
- package/es/iterator/zip.js +22 -0
- package/es/object/define-properties.js +2 -2
- package/es/object/define-property.js +2 -2
- package/es/object/get-own-property-descriptor.js +2 -2
- package/es/promise/try.js +2 -2
- 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 +6 -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 +3 -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/advance-string-index.js +1 -1
- package/internals/array-buffer-transfer.js +4 -1
- package/internals/array-buffer-view-core.js +1 -1
- package/internals/array-buffer.js +1 -2
- package/internals/array-fill.js +2 -1
- package/internals/array-from-async.js +7 -9
- package/internals/array-from.js +15 -4
- package/internals/async-from-sync-iterator.js +28 -4
- package/internals/async-iterator-close.js +11 -3
- package/internals/async-iterator-create-proxy.js +61 -22
- package/internals/async-iterator-iteration.js +7 -4
- package/internals/async-iterator-map.js +20 -18
- package/internals/does-not-exceed-safe-integer.js +1 -1
- package/internals/environment-is-ios.js +1 -2
- package/internals/error-stack-clear.js +1 -1
- package/internals/function-bind-native.js +1 -1
- package/internals/function-name.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 +10 -5
- package/internals/iterator-chunk-size-validation.js +17 -0
- package/internals/iterator-cleanup-state.js +6 -0
- package/internals/iterator-create-proxy.js +14 -5
- package/internals/iterator-window.js +4 -6
- package/internals/iterator-zip.js +4 -3
- package/internals/iterators.js +1 -1
- package/internals/math-log1p.js +3 -1
- package/internals/numeric-range-iterator.js +9 -4
- package/internals/regexp-exec.js +20 -13
- package/internals/set-difference.js +1 -1
- package/internals/set-is-disjoint-from.js +1 -1
- package/internals/set-is-superset-of.js +1 -1
- package/internals/shared-store.js +2 -2
- package/internals/shared.js +3 -1
- package/internals/string-pad.js +2 -1
- package/internals/string-parse.js +1 -1
- package/internals/string-repeat.js +2 -1
- package/internals/to-uint8-clamped.js +11 -3
- package/internals/typed-array-constructor.js +1 -2
- package/internals/typed-array-from.js +5 -3
- package/internals/uint8-from-base64.js +4 -2
- package/internals/uint8-from-hex.js +10 -10
- package/internals/url-percent-coding.js +171 -0
- package/modules/es.array.flat.js +2 -1
- package/modules/es.array.from-async.js +1 -1
- package/modules/es.array.includes.js +7 -1
- package/modules/es.array.sort.js +3 -1
- package/modules/es.data-view.get-float16.js +1 -1
- package/modules/es.data-view.set-float16.js +2 -1
- package/modules/es.date.set-year.js +4 -1
- package/modules/es.date.to-json.js +1 -1
- package/modules/es.error.is-error.js +1 -1
- package/modules/es.escape.js +10 -8
- package/modules/es.iterator.concat.js +5 -4
- package/modules/es.iterator.drop.js +16 -1
- package/modules/es.iterator.flat-map.js +12 -14
- package/modules/es.iterator.take.js +22 -2
- package/modules/es.iterator.zip-keyed.js +70 -0
- package/modules/es.iterator.zip.js +92 -0
- package/modules/es.json.parse.js +14 -2
- package/modules/es.json.stringify.js +157 -38
- package/modules/es.map.get-or-insert-computed.js +3 -4
- package/modules/es.map.get-or-insert.js +2 -3
- package/modules/es.map.group-by.js +2 -0
- package/modules/es.math.asinh.js +6 -1
- package/modules/es.math.atanh.js +2 -2
- package/modules/es.math.cbrt.js +3 -1
- package/modules/es.math.sum-precise.js +3 -3
- package/modules/es.number.to-exponential.js +15 -6
- 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.reflect.construct.js +1 -1
- package/modules/es.reflect.define-property.js +10 -0
- package/modules/es.reflect.delete-property.js +5 -2
- package/modules/es.reflect.get.js +9 -7
- package/modules/es.reflect.set.js +14 -9
- package/modules/es.regexp.constructor.js +16 -5
- package/modules/es.string.ends-with.js +1 -1
- package/modules/es.string.from-code-point.js +2 -2
- package/modules/es.string.match-all.js +1 -1
- package/modules/es.string.match.js +5 -3
- package/modules/es.string.replace.js +9 -8
- package/modules/es.string.search.js +3 -1
- package/modules/es.string.split.js +7 -5
- package/modules/es.string.starts-with.js +1 -1
- package/modules/es.string.substr.js +5 -7
- package/modules/es.symbol.constructor.js +3 -2
- package/modules/es.symbol.description.js +9 -0
- package/modules/es.typed-array.sort.js +3 -3
- package/modules/es.uint8-array.from-base64.js +1 -1
- package/modules/es.uint8-array.from-hex.js +1 -1
- package/modules/es.uint8-array.set-from-base64.js +1 -1
- package/modules/es.uint8-array.set-from-hex.js +1 -1
- package/modules/es.uint8-array.to-base64.js +23 -6
- package/modules/es.uint8-array.to-hex.js +6 -4
- package/modules/es.weak-map.get-or-insert-computed.js +2 -2
- package/modules/es.weak-map.get-or-insert.js +2 -3
- package/modules/esnext.array.is-template-object.js +1 -1
- package/modules/esnext.async-iterator.reduce.js +2 -2
- package/modules/esnext.async-iterator.take.js +4 -2
- package/modules/esnext.bigint.range.js +1 -1
- package/modules/esnext.iterator.chunks.js +6 -8
- package/modules/esnext.iterator.includes.js +44 -0
- package/modules/esnext.iterator.join.js +31 -0
- package/modules/esnext.iterator.range.js +1 -1
- package/modules/esnext.iterator.windows.js +2 -1
- package/modules/esnext.iterator.zip-keyed.js +2 -70
- package/modules/esnext.iterator.zip.js +2 -90
- package/modules/esnext.number.from-string.js +30 -3
- package/modules/esnext.number.range.js +1 -1
- package/modules/esnext.observable.from.js +6 -3
- package/modules/esnext.promise.all-keyed.js +57 -0
- package/modules/esnext.promise.all-settled-keyed.js +60 -0
- package/modules/esnext.string.dedent.js +1 -1
- package/modules/web.atob.js +15 -6
- package/modules/web.btoa.js +10 -3
- package/modules/web.structured-clone.js +2 -2
- package/modules/web.url-search-params.constructor.js +13 -130
- package/modules/web.url-search-params.delete.js +6 -9
- package/modules/web.url.constructor.js +154 -39
- package/modules/web.url.parse.js +1 -1
- package/modules/web.url.to-json.js +4 -1
- package/package.json +8 -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 +2 -0
- package/stable/iterator/zip-keyed.js +5 -0
- package/stable/iterator/zip.js +5 -0
- package/stage/3.js +4 -0
|
@@ -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://github.com/tc39/proposal-iterator-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://github.com/tc39/proposal-iterator-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
|
+
});
|
|
@@ -6,7 +6,7 @@ var NumericRangeIterator = require('../internals/numeric-range-iterator');
|
|
|
6
6
|
var $TypeError = TypeError;
|
|
7
7
|
|
|
8
8
|
// `Iterator.range` method
|
|
9
|
-
// https://github.com/tc39/proposal-
|
|
9
|
+
// https://github.com/tc39/proposal-iterator.range
|
|
10
10
|
$({ target: 'Iterator', stat: true, forced: true }, {
|
|
11
11
|
range: function range(start, end, option) {
|
|
12
12
|
if (typeof start == 'number') return new NumericRangeIterator(start, end, option, 'number', 0, 1);
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var iteratorWindow = require('../internals/iterator-window');
|
|
4
|
+
var IS_PURE = require('../internals/is-pure');
|
|
4
5
|
|
|
5
6
|
// `Iterator.prototype.windows` method
|
|
6
7
|
// https://github.com/tc39/proposal-iterator-chunking
|
|
7
|
-
$({ target: 'Iterator', proto: true, real: true, forced:
|
|
8
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
8
9
|
windows: function windows(windowSize /* , undersized */) {
|
|
9
10
|
return iteratorWindow(this, windowSize, arguments.length < 2 ? undefined : arguments[1]);
|
|
10
11
|
}
|
|
@@ -1,71 +1,3 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
15
|
-
var create = getBuiltIn('Object', 'create');
|
|
16
|
-
var ownKeys = getBuiltIn('Reflect', 'ownKeys');
|
|
17
|
-
var push = uncurryThis([].push);
|
|
18
|
-
var THROW = 'throw';
|
|
19
|
-
|
|
20
|
-
// `Iterator.zipKeyed` method
|
|
21
|
-
// https://github.com/tc39/proposal-joint-iteration
|
|
22
|
-
$({ target: 'Iterator', stat: true }, {
|
|
23
|
-
zipKeyed: function zipKeyed(iterables /* , options */) {
|
|
24
|
-
anObject(iterables);
|
|
25
|
-
var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
|
|
26
|
-
var mode = getModeOption(options);
|
|
27
|
-
var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;
|
|
28
|
-
|
|
29
|
-
var iters = [];
|
|
30
|
-
var padding = [];
|
|
31
|
-
var allKeys = ownKeys(iterables);
|
|
32
|
-
var keys = [];
|
|
33
|
-
var propertyIsEnumerable = propertyIsEnumerableModule.f;
|
|
34
|
-
var i, key, value;
|
|
35
|
-
for (i = 0; i < allKeys.length; i++) try {
|
|
36
|
-
key = allKeys[i];
|
|
37
|
-
if (!call(propertyIsEnumerable, iterables, key)) continue;
|
|
38
|
-
value = iterables[key];
|
|
39
|
-
if (value !== undefined) {
|
|
40
|
-
push(keys, key);
|
|
41
|
-
push(iters, getIteratorFlattenable(value, true));
|
|
42
|
-
}
|
|
43
|
-
} catch (error) {
|
|
44
|
-
return iteratorCloseAll(iters, THROW, error);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
var iterCount = iters.length;
|
|
48
|
-
if (mode === 'longest') {
|
|
49
|
-
if (paddingOption === undefined) {
|
|
50
|
-
for (i = 0; i < iterCount; i++) push(padding, undefined);
|
|
51
|
-
} else {
|
|
52
|
-
for (i = 0; i < keys.length; i++) {
|
|
53
|
-
try {
|
|
54
|
-
value = paddingOption[keys[i]];
|
|
55
|
-
} catch (error) {
|
|
56
|
-
return iteratorCloseAll(iters, THROW, error);
|
|
57
|
-
}
|
|
58
|
-
push(padding, value);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return iteratorZip(iters, mode, padding, function (results) {
|
|
64
|
-
var obj = create(null);
|
|
65
|
-
for (var j = 0; j < iterCount; j++) {
|
|
66
|
-
createProperty(obj, keys[j], results[j]);
|
|
67
|
-
}
|
|
68
|
-
return obj;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
});
|
|
2
|
+
// TODO: Remove from `core-js@4`
|
|
3
|
+
require('../modules/es.iterator.zip-keyed');
|
|
@@ -1,91 +1,3 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
14
|
-
var concat = uncurryThis([].concat);
|
|
15
|
-
var push = uncurryThis([].push);
|
|
16
|
-
var THROW = 'throw';
|
|
17
|
-
|
|
18
|
-
// `Iterator.zip` method
|
|
19
|
-
// https://github.com/tc39/proposal-joint-iteration
|
|
20
|
-
$({ target: 'Iterator', stat: true }, {
|
|
21
|
-
zip: function zip(iterables /* , options */) {
|
|
22
|
-
anObject(iterables);
|
|
23
|
-
var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
|
|
24
|
-
var mode = getModeOption(options);
|
|
25
|
-
var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;
|
|
26
|
-
|
|
27
|
-
var iters = [];
|
|
28
|
-
var padding = [];
|
|
29
|
-
var inputIter = getIteratorRecord(iterables);
|
|
30
|
-
var iter, done, next;
|
|
31
|
-
while (!done) {
|
|
32
|
-
try {
|
|
33
|
-
next = anObject(call(inputIter.next, inputIter.iterator));
|
|
34
|
-
done = next.done;
|
|
35
|
-
} catch (error) {
|
|
36
|
-
return iteratorCloseAll(iters, THROW, error);
|
|
37
|
-
}
|
|
38
|
-
if (!done) {
|
|
39
|
-
try {
|
|
40
|
-
iter = getIteratorFlattenable(next.value, true);
|
|
41
|
-
} catch (error) {
|
|
42
|
-
return iteratorCloseAll(concat([inputIter.iterator], iters), THROW, error);
|
|
43
|
-
}
|
|
44
|
-
push(iters, iter);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
var iterCount = iters.length;
|
|
49
|
-
var i, paddingDone, paddingIter;
|
|
50
|
-
if (mode === 'longest') {
|
|
51
|
-
if (paddingOption === undefined) {
|
|
52
|
-
for (i = 0; i < iterCount; i++) push(padding, undefined);
|
|
53
|
-
} else {
|
|
54
|
-
try {
|
|
55
|
-
paddingIter = getIteratorRecord(paddingOption);
|
|
56
|
-
} catch (error) {
|
|
57
|
-
return iteratorCloseAll(iters, THROW, error);
|
|
58
|
-
}
|
|
59
|
-
var usingIterator = true;
|
|
60
|
-
for (i = 0; i < iterCount; i++) {
|
|
61
|
-
if (usingIterator) {
|
|
62
|
-
try {
|
|
63
|
-
next = anObject(call(paddingIter.next, paddingIter.iterator));
|
|
64
|
-
paddingDone = next.done;
|
|
65
|
-
next = next.value;
|
|
66
|
-
} catch (error) {
|
|
67
|
-
return iteratorCloseAll(iters, THROW, error);
|
|
68
|
-
}
|
|
69
|
-
if (paddingDone) {
|
|
70
|
-
usingIterator = false;
|
|
71
|
-
} else {
|
|
72
|
-
push(padding, next);
|
|
73
|
-
}
|
|
74
|
-
} else {
|
|
75
|
-
push(padding, undefined);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (usingIterator) {
|
|
80
|
-
try {
|
|
81
|
-
iteratorClose(paddingIter.iterator, 'normal');
|
|
82
|
-
} catch (error) {
|
|
83
|
-
return iteratorCloseAll(iters, THROW, error);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return iteratorZip(iters, mode, padding);
|
|
90
|
-
}
|
|
91
|
-
});
|
|
2
|
+
// TODO: Remove from `core-js@4`
|
|
3
|
+
require('../modules/es.iterator.zip');
|
|
@@ -10,13 +10,30 @@ var $SyntaxError = SyntaxError;
|
|
|
10
10
|
var $TypeError = TypeError;
|
|
11
11
|
var $parseInt = parseInt;
|
|
12
12
|
var pow = Math.pow;
|
|
13
|
-
var valid = /^[
|
|
13
|
+
var valid = /^[0-9a-z]+(\.[0-9a-z]+)?$/;
|
|
14
14
|
var charAt = uncurryThis(''.charAt);
|
|
15
|
+
var charCodeAt = uncurryThis(''.charCodeAt);
|
|
15
16
|
var exec = uncurryThis(valid.exec);
|
|
16
17
|
var numberToString = uncurryThis(1.1.toString);
|
|
17
18
|
var stringSlice = uncurryThis(''.slice);
|
|
18
19
|
var split = uncurryThis(''.split);
|
|
19
20
|
|
|
21
|
+
var validDigitForRadix = function (string, R) {
|
|
22
|
+
for (var i = 0; i < string.length; i++) {
|
|
23
|
+
var code = charCodeAt(string, i);
|
|
24
|
+
// '.' is allowed
|
|
25
|
+
if (code === 0x2E) continue;
|
|
26
|
+
// '0'-'9' - digit value 0-9
|
|
27
|
+
if (code >= 0x30 && code <= 0x39) {
|
|
28
|
+
if (code - 0x30 >= R) return false;
|
|
29
|
+
// 'a'-'z' - digit value 10-35
|
|
30
|
+
} else if (code >= 0x61 && code <= 0x7A) {
|
|
31
|
+
if (code - 0x61 + 10 >= R) return false;
|
|
32
|
+
} else return false;
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
};
|
|
36
|
+
|
|
20
37
|
// `Number.fromString` method
|
|
21
38
|
// https://github.com/tc39/proposal-number-fromstring
|
|
22
39
|
$({ target: 'Number', stat: true, forced: true }, {
|
|
@@ -31,11 +48,21 @@ $({ target: 'Number', stat: true, forced: true }, {
|
|
|
31
48
|
}
|
|
32
49
|
var R = radix === undefined ? 10 : toIntegerOrInfinity(radix);
|
|
33
50
|
if (R < 2 || R > 36) throw new $RangeError(INVALID_RADIX);
|
|
34
|
-
if (!exec(valid, string)) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
|
|
51
|
+
if (!exec(valid, string) || !validDigitForRadix(string, R)) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
|
|
35
52
|
var parts = split(string, '.');
|
|
36
53
|
var mathNum = $parseInt(parts[0], R);
|
|
37
54
|
if (parts.length > 1) mathNum += $parseInt(parts[1], R) / pow(R, parts[1].length);
|
|
38
|
-
if (R === 10
|
|
55
|
+
if (R === 10) {
|
|
56
|
+
var compareString = string;
|
|
57
|
+
if (parts.length > 1) {
|
|
58
|
+
var fraction = parts[1];
|
|
59
|
+
while (fraction.length && charAt(fraction, fraction.length - 1) === '0') {
|
|
60
|
+
fraction = stringSlice(fraction, 0, -1);
|
|
61
|
+
}
|
|
62
|
+
compareString = fraction.length ? parts[0] + '.' + fraction : parts[0];
|
|
63
|
+
}
|
|
64
|
+
if (numberToString(mathNum, R) !== compareString) throw new $SyntaxError(INVALID_NUMBER_REPRESENTATION);
|
|
65
|
+
}
|
|
39
66
|
return sign * mathNum;
|
|
40
67
|
}
|
|
41
68
|
});
|
|
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
|
|
|
3
3
|
var NumericRangeIterator = require('../internals/numeric-range-iterator');
|
|
4
4
|
|
|
5
5
|
// `Number.range` method
|
|
6
|
-
// https://github.com/tc39/proposal-
|
|
6
|
+
// https://github.com/tc39/proposal-iterator.range
|
|
7
7
|
// TODO: Remove from `core-js@4`
|
|
8
8
|
$({ target: 'Number', stat: true, forced: true }, {
|
|
9
9
|
range: function range(start, end, option) {
|
|
@@ -4,7 +4,8 @@ var getBuiltIn = require('../internals/get-built-in');
|
|
|
4
4
|
var call = require('../internals/function-call');
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
6
|
var isConstructor = require('../internals/is-constructor');
|
|
7
|
-
var getIterator = require('../internals/get-iterator');
|
|
7
|
+
var getIterator = require('../internals/get-iterator-internal');
|
|
8
|
+
var getIteratorMethod = require('../internals/get-iterator-method-internal');
|
|
8
9
|
var getMethod = require('../internals/get-method');
|
|
9
10
|
var iterate = require('../internals/iterate');
|
|
10
11
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
@@ -23,9 +24,11 @@ $({ target: 'Observable', stat: true, forced: true }, {
|
|
|
23
24
|
return observable.subscribe(observer);
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
|
-
var
|
|
27
|
+
var iteratorMethod = getIteratorMethod(x);
|
|
28
|
+
// validate that x is iterable synchronously during `from()` call
|
|
29
|
+
if (!iteratorMethod) getIterator(x);
|
|
27
30
|
return new C(function (observer) {
|
|
28
|
-
iterate(
|
|
31
|
+
iterate(getIterator(x, iteratorMethod), function (it, stop) {
|
|
29
32
|
observer.next(it);
|
|
30
33
|
if (observer.closed) return stop();
|
|
31
34
|
}, { IS_ITERATOR: true, INTERRUPTED: true });
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var aCallable = require('../internals/a-callable');
|
|
4
|
+
var anObject = require('../internals/an-object');
|
|
5
|
+
var call = require('../internals/function-call');
|
|
6
|
+
var createProperty = require('../internals/create-property');
|
|
7
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
8
|
+
var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor');
|
|
9
|
+
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
10
|
+
var perform = require('../internals/perform');
|
|
11
|
+
|
|
12
|
+
var create = getBuiltIn('Object', 'create');
|
|
13
|
+
var ownKeys = getBuiltIn('Reflect', 'ownKeys');
|
|
14
|
+
|
|
15
|
+
// `Promise.allKeyed` method
|
|
16
|
+
// https://github.com/tc39/proposal-await-dictionary
|
|
17
|
+
$({ target: 'Promise', stat: true }, {
|
|
18
|
+
allKeyed: function allKeyed(promises) {
|
|
19
|
+
var C = this;
|
|
20
|
+
var capability = newPromiseCapabilityModule.f(C);
|
|
21
|
+
var resolve = capability.resolve;
|
|
22
|
+
var reject = capability.reject;
|
|
23
|
+
var result = perform(function () {
|
|
24
|
+
var promiseResolve = aCallable(C.resolve);
|
|
25
|
+
var allKeys = ownKeys(anObject(promises));
|
|
26
|
+
var keys = [];
|
|
27
|
+
var values = [];
|
|
28
|
+
var remaining = 1;
|
|
29
|
+
var counter = 0;
|
|
30
|
+
for (var i = 0; i < allKeys.length; i++) (function (key) {
|
|
31
|
+
var desc = getOwnPropertyDescriptor.f(promises, key);
|
|
32
|
+
if (desc && desc.enumerable) {
|
|
33
|
+
var index = counter;
|
|
34
|
+
var alreadyCalled = false;
|
|
35
|
+
remaining++;
|
|
36
|
+
keys[index] = key;
|
|
37
|
+
values[index] = undefined;
|
|
38
|
+
call(promiseResolve, C, promises[key]).then(function (value) {
|
|
39
|
+
if (alreadyCalled) return;
|
|
40
|
+
alreadyCalled = true;
|
|
41
|
+
values[index] = value;
|
|
42
|
+
--remaining;
|
|
43
|
+
if (remaining === 0) {
|
|
44
|
+
var res = create(null);
|
|
45
|
+
for (var j = 0; j < keys.length; j++) createProperty(res, keys[j], values[j]);
|
|
46
|
+
resolve(res);
|
|
47
|
+
}
|
|
48
|
+
}, reject);
|
|
49
|
+
counter++;
|
|
50
|
+
}
|
|
51
|
+
})(allKeys[i]);
|
|
52
|
+
--remaining || resolve(create(null));
|
|
53
|
+
});
|
|
54
|
+
if (result.error) reject(result.value);
|
|
55
|
+
return capability.promise;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var aCallable = require('../internals/a-callable');
|
|
4
|
+
var anObject = require('../internals/an-object');
|
|
5
|
+
var call = require('../internals/function-call');
|
|
6
|
+
var createProperty = require('../internals/create-property');
|
|
7
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
8
|
+
var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor');
|
|
9
|
+
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
10
|
+
var perform = require('../internals/perform');
|
|
11
|
+
|
|
12
|
+
var create = getBuiltIn('Object', 'create');
|
|
13
|
+
var ownKeys = getBuiltIn('Reflect', 'ownKeys');
|
|
14
|
+
|
|
15
|
+
// `Promise.allSettledKeyed` method
|
|
16
|
+
// https://github.com/tc39/proposal-await-dictionary
|
|
17
|
+
$({ target: 'Promise', stat: true }, {
|
|
18
|
+
allSettledKeyed: function allSettledKeyed(promises) {
|
|
19
|
+
var C = this;
|
|
20
|
+
var capability = newPromiseCapabilityModule.f(C);
|
|
21
|
+
var resolve = capability.resolve;
|
|
22
|
+
var reject = capability.reject;
|
|
23
|
+
var result = perform(function () {
|
|
24
|
+
var promiseResolve = aCallable(C.resolve);
|
|
25
|
+
var allKeys = ownKeys(anObject(promises));
|
|
26
|
+
var keys = [];
|
|
27
|
+
var values = [];
|
|
28
|
+
var remaining = 1;
|
|
29
|
+
var counter = 0;
|
|
30
|
+
for (var i = 0; i < allKeys.length; i++) (function (key) {
|
|
31
|
+
var desc = getOwnPropertyDescriptor.f(promises, key);
|
|
32
|
+
if (desc && desc.enumerable) {
|
|
33
|
+
var createElementResolver = function (rejection) {
|
|
34
|
+
return function (value) {
|
|
35
|
+
if (alreadyCalled) return;
|
|
36
|
+
alreadyCalled = true;
|
|
37
|
+
values[index] = rejection
|
|
38
|
+
? { status: 'rejected', reason: value }
|
|
39
|
+
: { status: 'fulfilled', value: value };
|
|
40
|
+
if (--remaining) return;
|
|
41
|
+
var res = create(null);
|
|
42
|
+
for (var j = 0; j < keys.length; j++) createProperty(res, keys[j], values[j]);
|
|
43
|
+
resolve(res);
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
var index = counter;
|
|
47
|
+
var alreadyCalled = false;
|
|
48
|
+
remaining++;
|
|
49
|
+
keys[index] = key;
|
|
50
|
+
values[index] = undefined;
|
|
51
|
+
call(promiseResolve, C, promises[key]).then(createElementResolver(false), createElementResolver(true));
|
|
52
|
+
counter++;
|
|
53
|
+
}
|
|
54
|
+
})(allKeys[i]);
|
|
55
|
+
--remaining || resolve(create(null));
|
|
56
|
+
});
|
|
57
|
+
if (result.error) reject(result.value);
|
|
58
|
+
return capability.promise;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
@@ -86,7 +86,7 @@ var dedentStringsArray = function (template) {
|
|
|
86
86
|
lines[lines.length - 2] = '';
|
|
87
87
|
lines[lines.length - 1] = '';
|
|
88
88
|
}
|
|
89
|
-
|
|
89
|
+
|
|
90
90
|
for (var j = 2; j < lines.length; j += 2) {
|
|
91
91
|
var text = lines[j];
|
|
92
92
|
var lineContainsTemplateExpression = j + 1 === lines.length && !lastSplit;
|
package/modules/web.atob.js
CHANGED
|
@@ -14,9 +14,11 @@ var whitespaces = /[\t\n\f\r ]+/g;
|
|
|
14
14
|
var finalEq = /[=]{1,2}$/;
|
|
15
15
|
|
|
16
16
|
var $atob = getBuiltIn('atob');
|
|
17
|
+
var $Array = Array;
|
|
17
18
|
var fromCharCode = String.fromCharCode;
|
|
18
19
|
var charAt = uncurryThis(''.charAt);
|
|
19
20
|
var replace = uncurryThis(''.replace);
|
|
21
|
+
var join = uncurryThis([].join);
|
|
20
22
|
var exec = uncurryThis(disallowed.exec);
|
|
21
23
|
|
|
22
24
|
var BASIC = !!$atob && !fails(function () {
|
|
@@ -47,21 +49,28 @@ $({ global: true, bind: true, enumerable: true, forced: FORCED }, {
|
|
|
47
49
|
// `webpack` dev server bug on IE global methods - use call(fn, global, ...)
|
|
48
50
|
if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, globalThis, data);
|
|
49
51
|
var string = replace(toString(data), whitespaces, '');
|
|
50
|
-
var output = '';
|
|
51
52
|
var position = 0;
|
|
52
53
|
var bc = 0;
|
|
53
54
|
var length, chr, bs;
|
|
54
|
-
if (string.length
|
|
55
|
+
if (!(string.length & 3)) {
|
|
55
56
|
string = replace(string, finalEq, '');
|
|
56
57
|
}
|
|
57
58
|
length = string.length;
|
|
58
|
-
|
|
59
|
+
var lenmod = length & 3;
|
|
60
|
+
if (lenmod === 1 || exec(disallowed, string)) {
|
|
59
61
|
throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');
|
|
60
62
|
}
|
|
63
|
+
// (length >> 2) is equivalent for length / 4 floored; * 3 then multiplies the
|
|
64
|
+
// number of bytes for full quanta
|
|
65
|
+
// lenmod is length % 4; if there's 2 or 3 bytes it's 1 or 2 bytes of extra output
|
|
66
|
+
// respectively, so -1, however use a ternary to ensure 0 does not get -1 onto length
|
|
67
|
+
var output = new $Array((length >> 2) * 3 + (lenmod ? lenmod - 1 : 0));
|
|
68
|
+
var outputIndex = 0;
|
|
61
69
|
while (position < length) {
|
|
62
70
|
chr = charAt(string, position++);
|
|
63
|
-
bs = bc
|
|
64
|
-
if (bc++
|
|
65
|
-
}
|
|
71
|
+
bs = bc & 3 ? (bs << 6) + c2i[chr] : c2i[chr];
|
|
72
|
+
if (bc++ & 3) output[outputIndex++] = fromCharCode(255 & bs >> (-2 * bc & 6));
|
|
73
|
+
}
|
|
74
|
+
return join(output, '');
|
|
66
75
|
}
|
|
67
76
|
});
|
package/modules/web.btoa.js
CHANGED
|
@@ -10,6 +10,8 @@ var validateArgumentsLength = require('../internals/validate-arguments-length');
|
|
|
10
10
|
var i2c = require('../internals/base64-map').i2c;
|
|
11
11
|
|
|
12
12
|
var $btoa = getBuiltIn('btoa');
|
|
13
|
+
var $Array = Array;
|
|
14
|
+
var join = uncurryThis([].join);
|
|
13
15
|
var charAt = uncurryThis(''.charAt);
|
|
14
16
|
var charCodeAt = uncurryThis(''.charCodeAt);
|
|
15
17
|
|
|
@@ -35,7 +37,12 @@ $({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVI
|
|
|
35
37
|
// `webpack` dev server bug on IE global methods - use call(fn, global, ...)
|
|
36
38
|
if (BASIC) return call($btoa, globalThis, toString(data));
|
|
37
39
|
var string = toString(data);
|
|
38
|
-
|
|
40
|
+
// (string.length + 2) / 3) and then truncating to integer
|
|
41
|
+
// does the ceil automatically. << 2 will truncate the integer
|
|
42
|
+
// while also doing *4. ceil(length / 3) quanta, 4 bytes output
|
|
43
|
+
// per quanta for base64.
|
|
44
|
+
var output = new $Array((string.length + 2) / 3 << 2);
|
|
45
|
+
var outputIndex = 0;
|
|
39
46
|
var position = 0;
|
|
40
47
|
var map = i2c;
|
|
41
48
|
var block, charCode;
|
|
@@ -45,7 +52,7 @@ $({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVI
|
|
|
45
52
|
throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError');
|
|
46
53
|
}
|
|
47
54
|
block = block << 8 | charCode;
|
|
48
|
-
output
|
|
49
|
-
} return output;
|
|
55
|
+
output[outputIndex++] = charAt(map, 63 & block >> 8 - position % 1 * 8);
|
|
56
|
+
} return join(output, '');
|
|
50
57
|
}
|
|
51
58
|
});
|
|
@@ -443,8 +443,8 @@ var tryToTransfer = function (rawTransfer, map) {
|
|
|
443
443
|
|
|
444
444
|
while (i < length) {
|
|
445
445
|
value = transfer[i++];
|
|
446
|
-
|
|
447
446
|
type = classof(value);
|
|
447
|
+
transferred = undefined;
|
|
448
448
|
|
|
449
449
|
if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) {
|
|
450
450
|
throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);
|
|
@@ -500,7 +500,7 @@ var tryToTransfer = function (rawTransfer, map) {
|
|
|
500
500
|
var detachBuffers = function (buffers) {
|
|
501
501
|
setIterate(buffers, function (buffer) {
|
|
502
502
|
if (PROPER_STRUCTURED_CLONE_TRANSFER) {
|
|
503
|
-
|
|
503
|
+
nativeStructuredClone(buffer, { transfer: [buffer] });
|
|
504
504
|
} else if (isCallable(buffer.transfer)) {
|
|
505
505
|
buffer.transfer();
|
|
506
506
|
} else if (detachTransferable) {
|