core-js 3.49.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/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/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/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/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.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.take.js +16 -1
- 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 +3 -1
- package/modules/es.math.cbrt.js +3 -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.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 +6 -8
- package/modules/esnext.iterator.includes.js +44 -0
- package/modules/esnext.iterator.join.js +31 -0
- package/modules/esnext.iterator.windows.js +2 -1
- 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 +60 -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 +2 -0
- package/stable/iterator/zip-keyed.js +5 -0
- package/stable/iterator/zip.js +5 -0
- package/stage/3.js +4 -0
|
@@ -4,10 +4,10 @@ var anObject = require('../internals/an-object');
|
|
|
4
4
|
var call = require('../internals/function-call');
|
|
5
5
|
var createIteratorProxy = require('../internals/iterator-create-proxy');
|
|
6
6
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
7
|
-
var
|
|
7
|
+
var chunkSizeValidation = require('../internals/iterator-chunk-size-validation');
|
|
8
8
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
9
|
+
var IS_PURE = require('../internals/is-pure');
|
|
9
10
|
|
|
10
|
-
var $RangeError = RangeError;
|
|
11
11
|
var push = uncurryThis([].push);
|
|
12
12
|
|
|
13
13
|
var IteratorProxy = createIteratorProxy(function () {
|
|
@@ -31,13 +31,11 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
31
31
|
|
|
32
32
|
// `Iterator.prototype.chunks` method
|
|
33
33
|
// https://github.com/tc39/proposal-iterator-chunking
|
|
34
|
-
$({ target: 'Iterator', proto: true, real: true, forced:
|
|
34
|
+
$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
|
|
35
35
|
chunks: function chunks(chunkSize) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
return new IteratorProxy(getIteratorDirect(O), {
|
|
36
|
+
anObject(this);
|
|
37
|
+
chunkSizeValidation(chunkSize, this);
|
|
38
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
41
39
|
chunkSize: chunkSize
|
|
42
40
|
});
|
|
43
41
|
}
|
|
@@ -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
|
+
});
|
|
@@ -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,72 +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
|
-
var IS_PURE = require('../internals/is-pure');
|
|
15
|
-
|
|
16
|
-
var create = getBuiltIn('Object', 'create');
|
|
17
|
-
var ownKeys = getBuiltIn('Reflect', 'ownKeys');
|
|
18
|
-
var push = uncurryThis([].push);
|
|
19
|
-
var THROW = 'throw';
|
|
20
|
-
|
|
21
|
-
// `Iterator.zipKeyed` method
|
|
22
|
-
// https://github.com/tc39/proposal-joint-iteration
|
|
23
|
-
$({ target: 'Iterator', stat: true, forced: IS_PURE }, {
|
|
24
|
-
zipKeyed: function zipKeyed(iterables /* , options */) {
|
|
25
|
-
anObject(iterables);
|
|
26
|
-
var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
|
|
27
|
-
var mode = getModeOption(options);
|
|
28
|
-
var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;
|
|
29
|
-
|
|
30
|
-
var iters = [];
|
|
31
|
-
var padding = [];
|
|
32
|
-
var allKeys = ownKeys(iterables);
|
|
33
|
-
var keys = [];
|
|
34
|
-
var propertyIsEnumerable = propertyIsEnumerableModule.f;
|
|
35
|
-
var i, key, value;
|
|
36
|
-
for (i = 0; i < allKeys.length; i++) try {
|
|
37
|
-
key = allKeys[i];
|
|
38
|
-
if (!call(propertyIsEnumerable, iterables, key)) continue;
|
|
39
|
-
value = iterables[key];
|
|
40
|
-
if (value !== undefined) {
|
|
41
|
-
push(keys, key);
|
|
42
|
-
push(iters, getIteratorFlattenable(value, false));
|
|
43
|
-
}
|
|
44
|
-
} catch (error) {
|
|
45
|
-
return iteratorCloseAll(iters, THROW, error);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
var iterCount = iters.length;
|
|
49
|
-
if (mode === 'longest') {
|
|
50
|
-
if (paddingOption === undefined) {
|
|
51
|
-
for (i = 0; i < iterCount; i++) push(padding, undefined);
|
|
52
|
-
} else {
|
|
53
|
-
for (i = 0; i < keys.length; i++) {
|
|
54
|
-
try {
|
|
55
|
-
value = paddingOption[keys[i]];
|
|
56
|
-
} catch (error) {
|
|
57
|
-
return iteratorCloseAll(iters, THROW, error);
|
|
58
|
-
}
|
|
59
|
-
push(padding, value);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return iteratorZip(iters, mode, padding, function (results) {
|
|
65
|
-
var obj = create(null);
|
|
66
|
-
for (var j = 0; j < iterCount; j++) {
|
|
67
|
-
createProperty(obj, keys[j], results[j]);
|
|
68
|
-
}
|
|
69
|
-
return obj;
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
});
|
|
2
|
+
// TODO: Remove from `core-js@4`
|
|
3
|
+
require('../modules/es.iterator.zip-keyed');
|
|
@@ -1,92 +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
|
-
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
|
-
});
|
|
2
|
+
// TODO: Remove from `core-js@4`
|
|
3
|
+
require('../modules/es.iterator.zip');
|
|
@@ -4,8 +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');
|
|
8
|
-
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
7
|
+
var getIterator = require('../internals/get-iterator-internal');
|
|
8
|
+
var getIteratorMethod = require('../internals/get-iterator-method-internal');
|
|
9
9
|
var getMethod = require('../internals/get-method');
|
|
10
10
|
var iterate = require('../internals/iterate');
|
|
11
11
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
@@ -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
|
+
});
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
|
|
3
3
|
require('../modules/es.array.iterator');
|
|
4
|
-
require('../modules/es.string.from-code-point');
|
|
5
4
|
var $ = require('../internals/export');
|
|
6
5
|
var globalThis = require('../internals/global-this');
|
|
7
6
|
var safeGetBuiltIn = require('../internals/safe-get-built-in');
|
|
8
|
-
var getBuiltIn = require('../internals/get-built-in');
|
|
9
7
|
var call = require('../internals/function-call');
|
|
10
8
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
11
9
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
12
10
|
var USE_NATIVE_URL = require('../internals/url-constructor-detection');
|
|
11
|
+
var percentCoding = require('../internals/url-percent-coding');
|
|
13
12
|
var defineBuiltIn = require('../internals/define-built-in');
|
|
14
13
|
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
15
14
|
var defineBuiltIns = require('../internals/define-built-ins');
|
|
@@ -26,8 +25,8 @@ var isObject = require('../internals/is-object');
|
|
|
26
25
|
var $toString = require('../internals/to-string');
|
|
27
26
|
var create = require('../internals/object-create');
|
|
28
27
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
29
|
-
var getIterator = require('../internals/get-iterator');
|
|
30
|
-
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
28
|
+
var getIterator = require('../internals/get-iterator-internal');
|
|
29
|
+
var getIteratorMethod = require('../internals/get-iterator-method-internal');
|
|
31
30
|
var createIterResultObject = require('../internals/create-iter-result-object');
|
|
32
31
|
var validateArgumentsLength = require('../internals/validate-arguments-length');
|
|
33
32
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
@@ -39,6 +38,8 @@ var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
|
|
|
39
38
|
var setInternalState = InternalStateModule.set;
|
|
40
39
|
var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
|
|
41
40
|
var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);
|
|
41
|
+
var percentDecode = percentCoding.decode;
|
|
42
|
+
var percentEncode = percentCoding.encode;
|
|
42
43
|
|
|
43
44
|
var nativeFetch = safeGetBuiltIn('fetch');
|
|
44
45
|
var NativeRequest = safeGetBuiltIn('Request');
|
|
@@ -46,10 +47,6 @@ var Headers = safeGetBuiltIn('Headers');
|
|
|
46
47
|
var RequestPrototype = NativeRequest && NativeRequest.prototype;
|
|
47
48
|
var HeadersPrototype = Headers && Headers.prototype;
|
|
48
49
|
var TypeError = globalThis.TypeError;
|
|
49
|
-
var encodeURIComponent = globalThis.encodeURIComponent;
|
|
50
|
-
var fromCharCode = String.fromCharCode;
|
|
51
|
-
var fromCodePoint = getBuiltIn('String', 'fromCodePoint');
|
|
52
|
-
var $parseInt = parseInt;
|
|
53
50
|
var charAt = uncurryThis(''.charAt);
|
|
54
51
|
var join = uncurryThis([].join);
|
|
55
52
|
var push = uncurryThis([].push);
|
|
@@ -58,142 +55,13 @@ var shift = uncurryThis([].shift);
|
|
|
58
55
|
var splice = uncurryThis([].splice);
|
|
59
56
|
var split = uncurryThis(''.split);
|
|
60
57
|
var stringSlice = uncurryThis(''.slice);
|
|
61
|
-
var exec = uncurryThis(/./.exec);
|
|
62
58
|
|
|
63
59
|
var plus = /\+/g;
|
|
64
|
-
var FALLBACK_REPLACER = '\uFFFD';
|
|
65
|
-
var VALID_HEX = /^[0-9a-f]+$/i;
|
|
66
60
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return $parseInt(substr, 16);
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
var getLeadingOnes = function (octet) {
|
|
75
|
-
var count = 0;
|
|
76
|
-
for (var mask = 0x80; mask > 0 && (octet & mask) !== 0; mask >>= 1) {
|
|
77
|
-
count++;
|
|
78
|
-
}
|
|
79
|
-
return count;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
var utf8Decode = function (octets) {
|
|
83
|
-
var codePoint = null;
|
|
84
|
-
var length = octets.length;
|
|
85
|
-
|
|
86
|
-
switch (length) {
|
|
87
|
-
case 1:
|
|
88
|
-
codePoint = octets[0];
|
|
89
|
-
break;
|
|
90
|
-
case 2:
|
|
91
|
-
codePoint = (octets[0] & 0x1F) << 6 | (octets[1] & 0x3F);
|
|
92
|
-
break;
|
|
93
|
-
case 3:
|
|
94
|
-
codePoint = (octets[0] & 0x0F) << 12 | (octets[1] & 0x3F) << 6 | (octets[2] & 0x3F);
|
|
95
|
-
break;
|
|
96
|
-
case 4:
|
|
97
|
-
codePoint = (octets[0] & 0x07) << 18 | (octets[1] & 0x3F) << 12 | (octets[2] & 0x3F) << 6 | (octets[3] & 0x3F);
|
|
98
|
-
break;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// reject surrogates, overlong encodings, and out-of-range codepoints
|
|
102
|
-
if (codePoint === null
|
|
103
|
-
|| codePoint > 0x10FFFF
|
|
104
|
-
|| (codePoint >= 0xD800 && codePoint <= 0xDFFF)
|
|
105
|
-
|| codePoint < (length > 3 ? 0x10000 : length > 2 ? 0x800 : length > 1 ? 0x80 : 0)
|
|
106
|
-
) return null;
|
|
107
|
-
|
|
108
|
-
return codePoint;
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
/* eslint-disable max-statements, max-depth -- ok */
|
|
112
|
-
var decode = function (input) {
|
|
113
|
-
input = replace(input, plus, ' ');
|
|
114
|
-
var length = input.length;
|
|
115
|
-
var result = '';
|
|
116
|
-
var i = 0;
|
|
117
|
-
|
|
118
|
-
while (i < length) {
|
|
119
|
-
var decodedChar = charAt(input, i);
|
|
120
|
-
|
|
121
|
-
if (decodedChar === '%') {
|
|
122
|
-
if (charAt(input, i + 1) === '%' || i + 3 > length) {
|
|
123
|
-
result += '%';
|
|
124
|
-
i++;
|
|
125
|
-
continue;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
var octet = parseHexOctet(input, i + 1);
|
|
129
|
-
|
|
130
|
-
// eslint-disable-next-line no-self-compare -- NaN check
|
|
131
|
-
if (octet !== octet) {
|
|
132
|
-
result += decodedChar;
|
|
133
|
-
i++;
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
i += 2;
|
|
138
|
-
var byteSequenceLength = getLeadingOnes(octet);
|
|
139
|
-
|
|
140
|
-
if (byteSequenceLength === 0) {
|
|
141
|
-
decodedChar = fromCharCode(octet);
|
|
142
|
-
} else {
|
|
143
|
-
if (byteSequenceLength === 1 || byteSequenceLength > 4) {
|
|
144
|
-
result += FALLBACK_REPLACER;
|
|
145
|
-
i++;
|
|
146
|
-
continue;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
var octets = [octet];
|
|
150
|
-
var sequenceIndex = 1;
|
|
151
|
-
|
|
152
|
-
while (sequenceIndex < byteSequenceLength) {
|
|
153
|
-
i++;
|
|
154
|
-
if (i + 3 > length || charAt(input, i) !== '%') break;
|
|
155
|
-
|
|
156
|
-
var nextByte = parseHexOctet(input, i + 1);
|
|
157
|
-
|
|
158
|
-
// eslint-disable-next-line no-self-compare -- NaN check
|
|
159
|
-
if (nextByte !== nextByte || nextByte > 191 || nextByte < 128) break;
|
|
160
|
-
|
|
161
|
-
// https://encoding.spec.whatwg.org/#utf-8-decoder - position-specific byte ranges
|
|
162
|
-
if (sequenceIndex === 1) {
|
|
163
|
-
if (octet === 0xE0 && nextByte < 0xA0) break;
|
|
164
|
-
if (octet === 0xED && nextByte > 0x9F) break;
|
|
165
|
-
if (octet === 0xF0 && nextByte < 0x90) break;
|
|
166
|
-
if (octet === 0xF4 && nextByte > 0x8F) break;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
push(octets, nextByte);
|
|
170
|
-
i += 2;
|
|
171
|
-
sequenceIndex++;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
if (octets.length !== byteSequenceLength) {
|
|
175
|
-
result += FALLBACK_REPLACER;
|
|
176
|
-
continue;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
var codePoint = utf8Decode(octets);
|
|
180
|
-
if (codePoint === null) {
|
|
181
|
-
for (var replacement = 0; replacement < byteSequenceLength; replacement++) result += FALLBACK_REPLACER;
|
|
182
|
-
i++;
|
|
183
|
-
continue;
|
|
184
|
-
} else {
|
|
185
|
-
decodedChar = fromCodePoint(codePoint);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
result += decodedChar;
|
|
191
|
-
i++;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
return result;
|
|
61
|
+
// https://url.spec.whatwg.org/#urlencoded-parsing - `+` decodes to a space
|
|
62
|
+
var decodeQueryComponent = function (input) {
|
|
63
|
+
return percentDecode(replace(input, plus, ' '));
|
|
195
64
|
};
|
|
196
|
-
/* eslint-enable max-statements, max-depth -- ok */
|
|
197
65
|
|
|
198
66
|
var find = /[!'()~]|%20/g;
|
|
199
67
|
|
|
@@ -211,7 +79,7 @@ var replacer = function (match) {
|
|
|
211
79
|
};
|
|
212
80
|
|
|
213
81
|
var serialize = function (it) {
|
|
214
|
-
return replace(
|
|
82
|
+
return replace(percentEncode(it), find, replacer);
|
|
215
83
|
};
|
|
216
84
|
|
|
217
85
|
var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
|
|
@@ -285,8 +153,8 @@ URLSearchParamsState.prototype = {
|
|
|
285
153
|
if (attribute.length) {
|
|
286
154
|
entry = split(attribute, '=');
|
|
287
155
|
push(entries, {
|
|
288
|
-
key:
|
|
289
|
-
value:
|
|
156
|
+
key: decodeQueryComponent(shift(entry)),
|
|
157
|
+
value: decodeQueryComponent(join(entry, '='))
|
|
290
158
|
});
|
|
291
159
|
}
|
|
292
160
|
}
|