core-js 3.28.0 → 3.30.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 +1 -1
- package/actual/array/index.js +1 -1
- package/actual/instance/unshift.js +1 -1
- package/actual/url/can-parse.js +3 -0
- package/es/typed-array/to-reversed.js +1 -1
- package/es/typed-array/with.js +1 -1
- package/features/url/can-parse.js +1 -0
- package/full/array/index.js +1 -1
- package/full/array/to-reversed.js +2 -3
- package/full/array/to-sorted.js +2 -4
- package/full/array/to-spliced.js +2 -3
- package/full/array/with.js +2 -3
- package/full/index.js +2 -0
- package/full/instance/replace-all.js +3 -0
- package/full/instance/unshift.js +1 -1
- package/full/url/can-parse.js +3 -0
- package/index.js +1 -1
- package/internals/add-disposable-resource.js +2 -4
- package/internals/async-iterator-iteration.js +3 -2
- package/internals/async-iterator-map.js +3 -1
- package/internals/get-async-iterator-flattenable.js +1 -1
- package/internals/get-iterator-direct.js +1 -2
- package/internals/get-iterator-flattenable.js +1 -2
- package/internals/iterator-map.js +3 -1
- package/internals/numeric-range-iterator.js +17 -20
- package/internals/set-helpers.js +1 -3
- package/internals/set-intersection.js +1 -16
- package/internals/shared.js +2 -2
- package/internals/to-set-like.js +1 -1
- package/internals/url-constructor-detection.js +2 -0
- package/modules/es.array.find-index.js +1 -0
- package/modules/es.array.find.js +1 -0
- package/modules/es.typed-array.set.js +4 -4
- package/modules/esnext.async-disposable-stack.constructor.js +11 -10
- package/modules/esnext.async-iterator.drop.js +3 -1
- package/modules/esnext.async-iterator.filter.js +3 -1
- package/modules/esnext.async-iterator.flat-map.js +3 -1
- package/modules/esnext.async-iterator.reduce.js +2 -1
- package/modules/esnext.async-iterator.take.js +3 -1
- package/modules/esnext.disposable-stack.constructor.js +11 -10
- package/modules/esnext.iterator.drop.js +3 -1
- package/modules/esnext.iterator.every.js +3 -1
- package/modules/esnext.iterator.filter.js +3 -1
- package/modules/esnext.iterator.find.js +3 -1
- package/modules/esnext.iterator.flat-map.js +3 -1
- package/modules/esnext.iterator.for-each.js +3 -1
- package/modules/esnext.iterator.reduce.js +3 -1
- package/modules/esnext.iterator.some.js +3 -1
- package/modules/esnext.iterator.take.js +3 -1
- package/modules/esnext.iterator.to-array.js +2 -1
- package/modules/esnext.iterator.to-async.js +2 -1
- package/modules/esnext.json.parse.js +9 -19
- package/modules/esnext.set.intersection.v2.js +7 -1
- package/modules/web.structured-clone.js +4 -3
- package/modules/web.url-search-params.constructor.js +16 -1
- package/modules/web.url-search-params.size.js +21 -0
- package/modules/web.url.can-parse.js +21 -0
- package/package.json +1 -1
- package/postinstall.js +1 -0
- package/proposals/decorator-metadata-v2.js +2 -0
- package/proposals/decorator-metadata.js +1 -0
- package/proposals/url.js +2 -0
- package/stable/index.js +2 -0
- package/stable/instance/unshift.js +1 -1
- package/stable/url/can-parse.js +5 -0
- package/stage/1.js +0 -1
- package/stage/2.js +3 -1
- package/web/index.js +2 -0
- package/web/url-search-params.js +1 -0
- package/web/url.js +2 -0
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
## Raising funds
|
|
15
15
|
|
|
16
|
-
`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer if you are interested in `core-js`: [**Open Collective**](https://opencollective.com/core-js), [**Patreon**](https://patreon.com/zloirock), **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )
|
|
16
|
+
`core-js` isn't backed by a company, so the future of this project depends on you. Become a sponsor or a backer if you are interested in `core-js`: [**Open Collective**](https://opencollective.com/core-js), [**Patreon**](https://patreon.com/zloirock), [**Boosty**](https://boosty.to/zloirock), **Bitcoin ( bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz )**, [**Alipay**](https://user-images.githubusercontent.com/2213682/219464783-c17ad329-17ce-4795-82a7-f609493345ed.png).
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
package/actual/array/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require('../../modules/
|
|
1
|
+
require('../../modules/es.typed-array.to-reversed');
|
package/es/typed-array/with.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require('../../modules/
|
|
1
|
+
require('../../modules/es.typed-array.with');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('../../full/url/can-parse');
|
package/full/array/index.js
CHANGED
package/full/array/to-sorted.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require('../../
|
|
2
|
-
require('../../modules/esnext.array.to-sorted');
|
|
3
|
-
var entryUnbind = require('../../internals/entry-unbind');
|
|
1
|
+
var parent = require('../../actual/array/to-sorted');
|
|
4
2
|
|
|
5
|
-
module.exports =
|
|
3
|
+
module.exports = parent;
|
package/full/array/to-spliced.js
CHANGED
package/full/array/with.js
CHANGED
package/full/index.js
CHANGED
|
@@ -437,7 +437,9 @@ require('../modules/web.self');
|
|
|
437
437
|
require('../modules/web.structured-clone');
|
|
438
438
|
require('../modules/web.timers');
|
|
439
439
|
require('../modules/web.url');
|
|
440
|
+
require('../modules/web.url.can-parse');
|
|
440
441
|
require('../modules/web.url.to-json');
|
|
441
442
|
require('../modules/web.url-search-params');
|
|
443
|
+
require('../modules/web.url-search-params.size');
|
|
442
444
|
|
|
443
445
|
module.exports = require('../internals/path');
|
package/full/instance/unshift.js
CHANGED
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = require('./
|
|
1
|
+
module.exports = require('./full');
|
|
@@ -28,11 +28,9 @@ module.exports = function (disposable, V, hint, method) {
|
|
|
28
28
|
var resource;
|
|
29
29
|
if (!method) {
|
|
30
30
|
if (isNullOrUndefined(V)) return;
|
|
31
|
-
resource = createDisposableResource(V, hint);
|
|
32
|
-
} else if (isNullOrUndefined(V)) {
|
|
33
|
-
resource = createDisposableResource(undefined, hint, method);
|
|
31
|
+
resource = createDisposableResource(anObject(V), hint);
|
|
34
32
|
} else {
|
|
35
|
-
resource = createDisposableResource(
|
|
33
|
+
resource = createDisposableResource(undefined, hint, method);
|
|
36
34
|
}
|
|
37
35
|
|
|
38
36
|
push(disposable.stack, resource);
|
|
@@ -16,13 +16,14 @@ var createMethod = function (TYPE) {
|
|
|
16
16
|
var IS_EVERY = TYPE == 2;
|
|
17
17
|
var IS_SOME = TYPE == 3;
|
|
18
18
|
return function (object, fn, target) {
|
|
19
|
+
anObject(object);
|
|
20
|
+
var MAPPING = fn !== undefined;
|
|
21
|
+
if (MAPPING || !IS_TO_ARRAY) aCallable(fn);
|
|
19
22
|
var record = getIteratorDirect(object);
|
|
20
23
|
var Promise = getBuiltIn('Promise');
|
|
21
24
|
var iterator = record.iterator;
|
|
22
25
|
var next = record.next;
|
|
23
26
|
var counter = 0;
|
|
24
|
-
var MAPPING = fn !== undefined;
|
|
25
|
-
if (MAPPING || !IS_TO_ARRAY) aCallable(fn);
|
|
26
27
|
|
|
27
28
|
return new Promise(function (resolve, reject) {
|
|
28
29
|
var ifAbruptCloseAsyncIterator = function (error) {
|
|
@@ -49,7 +49,9 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
49
49
|
// `AsyncIterator.prototype.map` method
|
|
50
50
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
51
51
|
module.exports = function map(mapper) {
|
|
52
|
+
anObject(this);
|
|
53
|
+
aCallable(mapper);
|
|
52
54
|
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
53
|
-
mapper:
|
|
55
|
+
mapper: mapper
|
|
54
56
|
});
|
|
55
57
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
var call = require('../internals/function-call');
|
|
2
|
-
var isCallable = require('../internals/is-callable');
|
|
3
2
|
var anObject = require('../internals/an-object');
|
|
4
3
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
5
4
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
@@ -7,5 +6,5 @@ var getIteratorMethod = require('../internals/get-iterator-method');
|
|
|
7
6
|
module.exports = function (obj) {
|
|
8
7
|
var object = anObject(obj);
|
|
9
8
|
var method = getIteratorMethod(object);
|
|
10
|
-
return getIteratorDirect(anObject(
|
|
9
|
+
return getIteratorDirect(anObject(method !== undefined ? call(method, object) : object));
|
|
11
10
|
};
|
|
@@ -16,7 +16,9 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
16
16
|
// `Iterator.prototype.map` method
|
|
17
17
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
18
18
|
module.exports = function map(mapper) {
|
|
19
|
+
anObject(this);
|
|
20
|
+
aCallable(mapper);
|
|
19
21
|
return new IteratorProxy(getIteratorDirect(this), {
|
|
20
|
-
mapper:
|
|
22
|
+
mapper: mapper
|
|
21
23
|
});
|
|
22
24
|
};
|
|
@@ -4,7 +4,7 @@ var createIteratorConstructor = require('../internals/iterator-create-constructo
|
|
|
4
4
|
var createIterResultObject = require('../internals/create-iter-result-object');
|
|
5
5
|
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
6
6
|
var isObject = require('../internals/is-object');
|
|
7
|
-
var
|
|
7
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
8
8
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
9
9
|
|
|
10
10
|
var INCORRECT_RANGE = 'Incorrect Iterator.range arguments';
|
|
@@ -17,7 +17,7 @@ var $RangeError = RangeError;
|
|
|
17
17
|
var $TypeError = TypeError;
|
|
18
18
|
|
|
19
19
|
var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) {
|
|
20
|
-
// TODO: Drop the first `typeof` check after removing
|
|
20
|
+
// TODO: Drop the first `typeof` check after removing legacy methods in `core-js@4`
|
|
21
21
|
if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) {
|
|
22
22
|
throw $TypeError(INCORRECT_RANGE);
|
|
23
23
|
}
|
|
@@ -53,7 +53,7 @@ var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(sta
|
|
|
53
53
|
start: start,
|
|
54
54
|
end: end,
|
|
55
55
|
step: step,
|
|
56
|
-
|
|
56
|
+
inclusive: inclusiveEnd,
|
|
57
57
|
hitsEnd: hitsEnd,
|
|
58
58
|
currentCount: zero,
|
|
59
59
|
zero: zero
|
|
@@ -72,7 +72,7 @@ var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(sta
|
|
|
72
72
|
var step = state.step;
|
|
73
73
|
var currentYieldingValue = start + (step * state.currentCount++);
|
|
74
74
|
if (currentYieldingValue === end) state.hitsEnd = true;
|
|
75
|
-
var inclusiveEnd = state.
|
|
75
|
+
var inclusiveEnd = state.inclusive;
|
|
76
76
|
var endCondition;
|
|
77
77
|
if (end > start) {
|
|
78
78
|
endCondition = inclusiveEnd ? currentYieldingValue > end : currentYieldingValue >= end;
|
|
@@ -85,25 +85,22 @@ var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(sta
|
|
|
85
85
|
} return createIterResultObject(currentYieldingValue, false);
|
|
86
86
|
});
|
|
87
87
|
|
|
88
|
-
var
|
|
89
|
-
|
|
88
|
+
var addGetter = function (key) {
|
|
89
|
+
defineBuiltInAccessor($RangeIterator.prototype, key, {
|
|
90
|
+
get: function () {
|
|
91
|
+
return getInternalState(this)[key];
|
|
92
|
+
},
|
|
93
|
+
set: function () { /* empty */ },
|
|
94
|
+
configurable: true,
|
|
95
|
+
enumerable: false
|
|
96
|
+
});
|
|
90
97
|
};
|
|
91
98
|
|
|
92
99
|
if (DESCRIPTORS) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
end: getter(function () {
|
|
98
|
-
return getInternalState(this).end;
|
|
99
|
-
}),
|
|
100
|
-
inclusive: getter(function () {
|
|
101
|
-
return getInternalState(this).inclusiveEnd;
|
|
102
|
-
}),
|
|
103
|
-
step: getter(function () {
|
|
104
|
-
return getInternalState(this).step;
|
|
105
|
-
})
|
|
106
|
-
});
|
|
100
|
+
addGetter('start');
|
|
101
|
+
addGetter('end');
|
|
102
|
+
addGetter('inclusive');
|
|
103
|
+
addGetter('step');
|
|
107
104
|
}
|
|
108
105
|
|
|
109
106
|
module.exports = $RangeIterator;
|
package/internals/set-helpers.js
CHANGED
|
@@ -9,12 +9,6 @@ var iterateSimple = require('../internals/iterate-simple');
|
|
|
9
9
|
var Set = SetHelpers.Set;
|
|
10
10
|
var add = SetHelpers.add;
|
|
11
11
|
var has = SetHelpers.has;
|
|
12
|
-
var nativeHas = SetHelpers.$has;
|
|
13
|
-
var nativeKeys = SetHelpers.$keys;
|
|
14
|
-
|
|
15
|
-
var isNativeSetRecord = function (record) {
|
|
16
|
-
return record.has === nativeHas && record.keys === nativeKeys;
|
|
17
|
-
};
|
|
18
12
|
|
|
19
13
|
// `Set.prototype.intersection` method
|
|
20
14
|
// https://github.com/tc39/proposal-set-methods
|
|
@@ -23,19 +17,10 @@ module.exports = function intersection(other) {
|
|
|
23
17
|
var otherRec = getSetRecord(other);
|
|
24
18
|
var result = new Set();
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
if (!isNativeSetRecord(otherRec) && size(O) > otherRec.size) {
|
|
20
|
+
if (size(O) > otherRec.size) {
|
|
28
21
|
iterateSimple(otherRec.getIterator(), function (e) {
|
|
29
22
|
if (has(O, e)) add(result, e);
|
|
30
23
|
});
|
|
31
|
-
|
|
32
|
-
if (size(result) < 2) return result;
|
|
33
|
-
|
|
34
|
-
var disordered = result;
|
|
35
|
-
result = new Set();
|
|
36
|
-
iterateSet(O, function (e) {
|
|
37
|
-
if (has(disordered, e)) add(result, e);
|
|
38
|
-
});
|
|
39
24
|
} else {
|
|
40
25
|
iterateSet(O, function (e) {
|
|
41
26
|
if (otherRec.includes(e)) add(result, e);
|
package/internals/shared.js
CHANGED
|
@@ -4,9 +4,9 @@ var store = require('../internals/shared-store');
|
|
|
4
4
|
(module.exports = function (key, value) {
|
|
5
5
|
return store[key] || (store[key] = value !== undefined ? value : {});
|
|
6
6
|
})('versions', []).push({
|
|
7
|
-
version: '3.
|
|
7
|
+
version: '3.30.0',
|
|
8
8
|
mode: IS_PURE ? 'pure' : 'global',
|
|
9
9
|
copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',
|
|
10
|
-
license: 'https://github.com/zloirock/core-js/blob/v3.
|
|
10
|
+
license: 'https://github.com/zloirock/core-js/blob/v3.30.0/LICENSE',
|
|
11
11
|
source: 'https://github.com/zloirock/core-js'
|
|
12
12
|
});
|
package/internals/to-set-like.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
var fails = require('../internals/fails');
|
|
2
2
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
3
|
+
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
4
|
var IS_PURE = require('../internals/is-pure');
|
|
4
5
|
|
|
5
6
|
var ITERATOR = wellKnownSymbol('iterator');
|
|
@@ -15,6 +16,7 @@ module.exports = !fails(function () {
|
|
|
15
16
|
result += key + value;
|
|
16
17
|
});
|
|
17
18
|
return (IS_PURE && !url.toJSON)
|
|
19
|
+
|| (!searchParams.size && (IS_PURE || !DESCRIPTORS))
|
|
18
20
|
|| !searchParams.sort
|
|
19
21
|
|| url.href !== 'http://a/c%20d?a=1&c=3'
|
|
20
22
|
|| searchParams.get('c') !== '3'
|
|
@@ -7,6 +7,7 @@ var FIND_INDEX = 'findIndex';
|
|
|
7
7
|
var SKIPS_HOLES = true;
|
|
8
8
|
|
|
9
9
|
// Shouldn't skip holes
|
|
10
|
+
// eslint-disable-next-line es/no-array-prototype-findindex -- testing
|
|
10
11
|
if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });
|
|
11
12
|
|
|
12
13
|
// `Array.prototype.findIndex` method
|
package/modules/es.array.find.js
CHANGED
|
@@ -14,7 +14,7 @@ var $set = Int8ArrayPrototype && Int8ArrayPrototype.set;
|
|
|
14
14
|
var aTypedArray = ArrayBufferViewCore.aTypedArray;
|
|
15
15
|
var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {
|
|
18
18
|
// eslint-disable-next-line es/no-typed-arrays -- required for testing
|
|
19
19
|
var array = new Uint8ClampedArray(2);
|
|
20
20
|
call($set, array, { length: 1, 0: 3 }, 1);
|
|
@@ -22,7 +22,7 @@ var WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {
|
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other
|
|
25
|
-
var TO_OBJECT_BUG =
|
|
25
|
+
var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {
|
|
26
26
|
var array = new Int8Array(2);
|
|
27
27
|
array.set(1);
|
|
28
28
|
array.set('2', 1);
|
|
@@ -35,10 +35,10 @@ exportTypedArrayMethod('set', function set(arrayLike /* , offset */) {
|
|
|
35
35
|
aTypedArray(this);
|
|
36
36
|
var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);
|
|
37
37
|
var src = toIndexedObject(arrayLike);
|
|
38
|
-
if (
|
|
38
|
+
if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);
|
|
39
39
|
var length = this.length;
|
|
40
40
|
var len = lengthOfArrayLike(src);
|
|
41
41
|
var index = 0;
|
|
42
42
|
if (len + offset > length) throw RangeError('Wrong length');
|
|
43
43
|
while (index < len) this[offset + index] = src[index++];
|
|
44
|
-
}, !
|
|
44
|
+
}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);
|
|
@@ -27,7 +27,11 @@ var HINT = 'async-dispose';
|
|
|
27
27
|
var DISPOSED = 'disposed';
|
|
28
28
|
var PENDING = 'pending';
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var getPendingAsyncDisposableStackInternalState = function (stack) {
|
|
31
|
+
var internalState = getAsyncDisposableStackInternalState(stack);
|
|
32
|
+
if (internalState.state == DISPOSED) throw $ReferenceError(ASYNC_DISPOSABLE_STACK + ' already disposed');
|
|
33
|
+
return internalState;
|
|
34
|
+
};
|
|
31
35
|
|
|
32
36
|
var $AsyncDisposableStack = function AsyncDisposableStack() {
|
|
33
37
|
setInternalState(anInstance(this, AsyncDisposableStackPrototype), {
|
|
@@ -84,14 +88,11 @@ defineBuiltIns(AsyncDisposableStackPrototype, {
|
|
|
84
88
|
});
|
|
85
89
|
},
|
|
86
90
|
use: function use(value) {
|
|
87
|
-
|
|
88
|
-
if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);
|
|
89
|
-
addDisposableResource(internalState, value, HINT);
|
|
91
|
+
addDisposableResource(getPendingAsyncDisposableStackInternalState(this), value, HINT);
|
|
90
92
|
return value;
|
|
91
93
|
},
|
|
92
94
|
adopt: function adopt(value, onDispose) {
|
|
93
|
-
var internalState =
|
|
94
|
-
if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);
|
|
95
|
+
var internalState = getPendingAsyncDisposableStackInternalState(this);
|
|
95
96
|
aCallable(onDispose);
|
|
96
97
|
addDisposableResource(internalState, undefined, HINT, function () {
|
|
97
98
|
onDispose(value);
|
|
@@ -99,17 +100,17 @@ defineBuiltIns(AsyncDisposableStackPrototype, {
|
|
|
99
100
|
return value;
|
|
100
101
|
},
|
|
101
102
|
defer: function defer(onDispose) {
|
|
102
|
-
var internalState =
|
|
103
|
-
if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);
|
|
103
|
+
var internalState = getPendingAsyncDisposableStackInternalState(this);
|
|
104
104
|
aCallable(onDispose);
|
|
105
105
|
addDisposableResource(internalState, undefined, HINT, onDispose);
|
|
106
106
|
},
|
|
107
107
|
move: function move() {
|
|
108
|
-
var internalState =
|
|
109
|
-
if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);
|
|
108
|
+
var internalState = getPendingAsyncDisposableStackInternalState(this);
|
|
110
109
|
var newAsyncDisposableStack = new $AsyncDisposableStack();
|
|
111
110
|
getAsyncDisposableStackInternalState(newAsyncDisposableStack).stack = internalState.stack;
|
|
112
111
|
internalState.stack = [];
|
|
112
|
+
internalState.state = DISPOSED;
|
|
113
|
+
if (!DESCRIPTORS) this.disposed = true;
|
|
113
114
|
return newAsyncDisposableStack;
|
|
114
115
|
}
|
|
115
116
|
});
|
|
@@ -41,8 +41,10 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
41
41
|
// https://github.com/tc39/proposal-async-iterator-helpers
|
|
42
42
|
$({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
43
43
|
drop: function drop(limit) {
|
|
44
|
+
anObject(this);
|
|
45
|
+
var remaining = toPositiveInteger(notANaN(+limit));
|
|
44
46
|
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
45
|
-
remaining:
|
|
47
|
+
remaining: remaining
|
|
46
48
|
});
|
|
47
49
|
}
|
|
48
50
|
});
|
|
@@ -57,8 +57,10 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
57
57
|
// https://github.com/tc39/proposal-async-iterator-helpers
|
|
58
58
|
$({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
59
59
|
filter: function filter(predicate) {
|
|
60
|
+
anObject(this);
|
|
61
|
+
aCallable(predicate);
|
|
60
62
|
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
61
|
-
predicate:
|
|
63
|
+
predicate: predicate
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
66
|
});
|
|
@@ -77,8 +77,10 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
77
77
|
// https://github.com/tc39/proposal-async-iterator-helpers
|
|
78
78
|
$({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
79
79
|
flatMap: function flatMap(mapper) {
|
|
80
|
+
anObject(this);
|
|
81
|
+
aCallable(mapper);
|
|
80
82
|
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
81
|
-
mapper:
|
|
83
|
+
mapper: mapper,
|
|
82
84
|
inner: null
|
|
83
85
|
});
|
|
84
86
|
}
|
|
@@ -15,13 +15,14 @@ var $TypeError = TypeError;
|
|
|
15
15
|
// https://github.com/tc39/proposal-async-iterator-helpers
|
|
16
16
|
$({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
17
17
|
reduce: function reduce(reducer /* , initialValue */) {
|
|
18
|
+
anObject(this);
|
|
19
|
+
aCallable(reducer);
|
|
18
20
|
var record = getIteratorDirect(this);
|
|
19
21
|
var iterator = record.iterator;
|
|
20
22
|
var next = record.next;
|
|
21
23
|
var noInitial = arguments.length < 2;
|
|
22
24
|
var accumulator = noInitial ? undefined : arguments[1];
|
|
23
25
|
var counter = 0;
|
|
24
|
-
aCallable(reducer);
|
|
25
26
|
|
|
26
27
|
return new Promise(function (resolve, reject) {
|
|
27
28
|
var ifAbruptCloseAsyncIterator = function (error) {
|
|
@@ -38,8 +38,10 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
38
38
|
// https://github.com/tc39/proposal-async-iterator-helpers
|
|
39
39
|
$({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
40
40
|
take: function take(limit) {
|
|
41
|
+
anObject(this);
|
|
42
|
+
var remaining = toPositiveInteger(notANaN(+limit));
|
|
41
43
|
return new AsyncIteratorProxy(getIteratorDirect(this), {
|
|
42
|
-
remaining:
|
|
44
|
+
remaining: remaining
|
|
43
45
|
});
|
|
44
46
|
}
|
|
45
47
|
});
|
|
@@ -26,7 +26,11 @@ var HINT = 'sync-dispose';
|
|
|
26
26
|
var DISPOSED = 'disposed';
|
|
27
27
|
var PENDING = 'pending';
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var getPendingDisposableStackInternalState = function (stack) {
|
|
30
|
+
var internalState = getDisposableStackInternalState(stack);
|
|
31
|
+
if (internalState.state == DISPOSED) throw $ReferenceError(DISPOSABLE_STACK + ' already disposed');
|
|
32
|
+
return internalState;
|
|
33
|
+
};
|
|
30
34
|
|
|
31
35
|
var $DisposableStack = function DisposableStack() {
|
|
32
36
|
setInternalState(anInstance(this, DisposableStackPrototype), {
|
|
@@ -68,14 +72,11 @@ defineBuiltIns(DisposableStackPrototype, {
|
|
|
68
72
|
if (thrown) throw suppressed;
|
|
69
73
|
},
|
|
70
74
|
use: function use(value) {
|
|
71
|
-
|
|
72
|
-
if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);
|
|
73
|
-
addDisposableResource(internalState, value, HINT);
|
|
75
|
+
addDisposableResource(getPendingDisposableStackInternalState(this), value, HINT);
|
|
74
76
|
return value;
|
|
75
77
|
},
|
|
76
78
|
adopt: function adopt(value, onDispose) {
|
|
77
|
-
var internalState =
|
|
78
|
-
if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);
|
|
79
|
+
var internalState = getPendingDisposableStackInternalState(this);
|
|
79
80
|
aCallable(onDispose);
|
|
80
81
|
addDisposableResource(internalState, undefined, HINT, function () {
|
|
81
82
|
onDispose(value);
|
|
@@ -83,17 +84,17 @@ defineBuiltIns(DisposableStackPrototype, {
|
|
|
83
84
|
return value;
|
|
84
85
|
},
|
|
85
86
|
defer: function defer(onDispose) {
|
|
86
|
-
var internalState =
|
|
87
|
-
if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);
|
|
87
|
+
var internalState = getPendingDisposableStackInternalState(this);
|
|
88
88
|
aCallable(onDispose);
|
|
89
89
|
addDisposableResource(internalState, undefined, HINT, onDispose);
|
|
90
90
|
},
|
|
91
91
|
move: function move() {
|
|
92
|
-
var internalState =
|
|
93
|
-
if (internalState.state == DISPOSED) throw $ReferenceError(ALREADY_DISPOSED);
|
|
92
|
+
var internalState = getPendingDisposableStackInternalState(this);
|
|
94
93
|
var newDisposableStack = new $DisposableStack();
|
|
95
94
|
getDisposableStackInternalState(newDisposableStack).stack = internalState.stack;
|
|
96
95
|
internalState.stack = [];
|
|
96
|
+
internalState.state = DISPOSED;
|
|
97
|
+
if (!DESCRIPTORS) this.disposed = true;
|
|
97
98
|
return newDisposableStack;
|
|
98
99
|
}
|
|
99
100
|
});
|
|
@@ -26,8 +26,10 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
26
26
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
27
27
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
28
28
|
drop: function drop(limit) {
|
|
29
|
+
anObject(this);
|
|
30
|
+
var remaining = toPositiveInteger(notANaN(+limit));
|
|
29
31
|
return new IteratorProxy(getIteratorDirect(this), {
|
|
30
|
-
remaining:
|
|
32
|
+
remaining: remaining
|
|
31
33
|
});
|
|
32
34
|
}
|
|
33
35
|
});
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var iterate = require('../internals/iterate');
|
|
4
4
|
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
5
6
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
7
|
|
|
7
8
|
// `Iterator.prototype.every` method
|
|
8
9
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
9
10
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
10
11
|
every: function every(predicate) {
|
|
12
|
+
anObject(this);
|
|
13
|
+
aCallable(predicate);
|
|
11
14
|
var record = getIteratorDirect(this);
|
|
12
15
|
var counter = 0;
|
|
13
|
-
aCallable(predicate);
|
|
14
16
|
return !iterate(record, function (value, stop) {
|
|
15
17
|
if (!predicate(value, counter++)) return stop();
|
|
16
18
|
}, { IS_RECORD: true, INTERRUPTED: true }).stopped;
|
|
@@ -25,8 +25,10 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
25
25
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
26
26
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
27
27
|
filter: function filter(predicate) {
|
|
28
|
+
anObject(this);
|
|
29
|
+
aCallable(predicate);
|
|
28
30
|
return new IteratorProxy(getIteratorDirect(this), {
|
|
29
|
-
predicate:
|
|
31
|
+
predicate: predicate
|
|
30
32
|
});
|
|
31
33
|
}
|
|
32
34
|
});
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var iterate = require('../internals/iterate');
|
|
4
4
|
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
5
6
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
7
|
|
|
7
8
|
// `Iterator.prototype.find` method
|
|
8
9
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
9
10
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
10
11
|
find: function find(predicate) {
|
|
12
|
+
anObject(this);
|
|
13
|
+
aCallable(predicate);
|
|
11
14
|
var record = getIteratorDirect(this);
|
|
12
15
|
var counter = 0;
|
|
13
|
-
aCallable(predicate);
|
|
14
16
|
return iterate(record, function (value, stop) {
|
|
15
17
|
if (predicate(value, counter++)) return stop(value);
|
|
16
18
|
}, { IS_RECORD: true, INTERRUPTED: true }).result;
|
|
@@ -34,8 +34,10 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
34
34
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
35
35
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
36
36
|
flatMap: function flatMap(mapper) {
|
|
37
|
+
anObject(this);
|
|
38
|
+
aCallable(mapper);
|
|
37
39
|
return new IteratorProxy(getIteratorDirect(this), {
|
|
38
|
-
mapper:
|
|
40
|
+
mapper: mapper,
|
|
39
41
|
inner: null
|
|
40
42
|
});
|
|
41
43
|
}
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var iterate = require('../internals/iterate');
|
|
4
4
|
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
5
6
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
7
|
|
|
7
8
|
// `Iterator.prototype.forEach` method
|
|
8
9
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
9
10
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
10
11
|
forEach: function forEach(fn) {
|
|
12
|
+
anObject(this);
|
|
13
|
+
aCallable(fn);
|
|
11
14
|
var record = getIteratorDirect(this);
|
|
12
15
|
var counter = 0;
|
|
13
|
-
aCallable(fn);
|
|
14
16
|
iterate(record, function (value) {
|
|
15
17
|
fn(value, counter++);
|
|
16
18
|
}, { IS_RECORD: true });
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var iterate = require('../internals/iterate');
|
|
4
4
|
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
5
6
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
7
|
|
|
7
8
|
var $TypeError = TypeError;
|
|
@@ -10,8 +11,9 @@ var $TypeError = TypeError;
|
|
|
10
11
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
11
12
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
12
13
|
reduce: function reduce(reducer /* , initialValue */) {
|
|
13
|
-
|
|
14
|
+
anObject(this);
|
|
14
15
|
aCallable(reducer);
|
|
16
|
+
var record = getIteratorDirect(this);
|
|
15
17
|
var noInitial = arguments.length < 2;
|
|
16
18
|
var accumulator = noInitial ? undefined : arguments[1];
|
|
17
19
|
var counter = 0;
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var iterate = require('../internals/iterate');
|
|
4
4
|
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var anObject = require('../internals/an-object');
|
|
5
6
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
6
7
|
|
|
7
8
|
// `Iterator.prototype.some` method
|
|
8
9
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
9
10
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
10
11
|
some: function some(predicate) {
|
|
12
|
+
anObject(this);
|
|
13
|
+
aCallable(predicate);
|
|
11
14
|
var record = getIteratorDirect(this);
|
|
12
15
|
var counter = 0;
|
|
13
|
-
aCallable(predicate);
|
|
14
16
|
return iterate(record, function (value, stop) {
|
|
15
17
|
if (predicate(value, counter++)) return stop();
|
|
16
18
|
}, { IS_RECORD: true, INTERRUPTED: true }).stopped;
|
|
@@ -23,8 +23,10 @@ var IteratorProxy = createIteratorProxy(function () {
|
|
|
23
23
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
24
24
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
25
25
|
take: function take(limit) {
|
|
26
|
+
anObject(this);
|
|
27
|
+
var remaining = toPositiveInteger(notANaN(+limit));
|
|
26
28
|
return new IteratorProxy(getIteratorDirect(this), {
|
|
27
|
-
remaining:
|
|
29
|
+
remaining: remaining
|
|
28
30
|
});
|
|
29
31
|
}
|
|
30
32
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
3
4
|
var iterate = require('../internals/iterate');
|
|
4
5
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
5
6
|
|
|
@@ -10,7 +11,7 @@ var push = [].push;
|
|
|
10
11
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
11
12
|
toArray: function toArray() {
|
|
12
13
|
var result = [];
|
|
13
|
-
iterate(getIteratorDirect(this), push, { that: result, IS_RECORD: true });
|
|
14
|
+
iterate(getIteratorDirect(anObject(this)), push, { that: result, IS_RECORD: true });
|
|
14
15
|
return result;
|
|
15
16
|
}
|
|
16
17
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
+
var anObject = require('../internals/an-object');
|
|
3
4
|
var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
|
|
4
5
|
var WrapAsyncIterator = require('../internals/async-iterator-wrap');
|
|
5
6
|
var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
@@ -8,6 +9,6 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
|
|
|
8
9
|
// https://github.com/tc39/proposal-async-iterator-helpers
|
|
9
10
|
$({ target: 'Iterator', proto: true, real: true }, {
|
|
10
11
|
toAsync: function toAsync() {
|
|
11
|
-
return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(this))));
|
|
12
|
+
return new WrapAsyncIterator(getIteratorDirect(new AsyncFromSyncIterator(getIteratorDirect(anObject(this)))));
|
|
12
13
|
}
|
|
13
14
|
});
|
|
@@ -105,31 +105,21 @@ Context.prototype = {
|
|
|
105
105
|
var i = this.skip(IS_WHITESPACE, this.index);
|
|
106
106
|
var fork = this.fork(i);
|
|
107
107
|
var chr = at(source, i);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
else switch (chr) {
|
|
108
|
+
if (exec(IS_NUMBER_START, chr)) return fork.number();
|
|
109
|
+
switch (chr) {
|
|
111
110
|
case '{':
|
|
112
|
-
|
|
113
|
-
break;
|
|
111
|
+
return fork.object();
|
|
114
112
|
case '[':
|
|
115
|
-
|
|
116
|
-
break;
|
|
113
|
+
return fork.array();
|
|
117
114
|
case '"':
|
|
118
|
-
|
|
119
|
-
break;
|
|
115
|
+
return fork.string();
|
|
120
116
|
case 't':
|
|
121
|
-
|
|
122
|
-
break;
|
|
117
|
+
return fork.keyword(true);
|
|
123
118
|
case 'f':
|
|
124
|
-
|
|
125
|
-
break;
|
|
119
|
+
return fork.keyword(false);
|
|
126
120
|
case 'n':
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
default:
|
|
130
|
-
throw SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
|
|
131
|
-
}
|
|
132
|
-
return result;
|
|
121
|
+
return fork.keyword(null);
|
|
122
|
+
} throw SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
|
|
133
123
|
},
|
|
134
124
|
node: function (type, value, start, end, nodes) {
|
|
135
125
|
return new Node(value, end, type ? null : slice(this.source, start, end), nodes);
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
+
var fails = require('../internals/fails');
|
|
2
3
|
var intersection = require('../internals/set-intersection');
|
|
3
4
|
var setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');
|
|
4
5
|
|
|
6
|
+
var INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {
|
|
7
|
+
// eslint-disable-next-line es/no-array-from, es/no-set -- testing
|
|
8
|
+
return Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2]))) != '3,2';
|
|
9
|
+
});
|
|
10
|
+
|
|
5
11
|
// `Set.prototype.intersection` method
|
|
6
12
|
// https://github.com/tc39/proposal-set-methods
|
|
7
|
-
$({ target: 'Set', proto: true, real: true, forced:
|
|
13
|
+
$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
|
|
8
14
|
intersection: intersection
|
|
9
15
|
});
|
|
@@ -147,7 +147,7 @@ var structuredCloneInternal = function (value, map) {
|
|
|
147
147
|
|
|
148
148
|
var type = classof(value);
|
|
149
149
|
var deep = false;
|
|
150
|
-
var C, name, cloned, dataTransfer, i, length, keys, key, source, target;
|
|
150
|
+
var C, name, cloned, dataTransfer, i, length, keys, key, source, target, options;
|
|
151
151
|
|
|
152
152
|
switch (type) {
|
|
153
153
|
case 'Array':
|
|
@@ -302,11 +302,12 @@ var structuredCloneInternal = function (value, map) {
|
|
|
302
302
|
if (!C && typeof value.slice != 'function') throwUnpolyfillable(type);
|
|
303
303
|
// detached buffers throws in `DataView` and `.slice`
|
|
304
304
|
try {
|
|
305
|
-
if (typeof value.slice == 'function') {
|
|
305
|
+
if (typeof value.slice == 'function' && !value.resizable) {
|
|
306
306
|
cloned = value.slice(0);
|
|
307
307
|
} else {
|
|
308
308
|
length = value.byteLength;
|
|
309
|
-
|
|
309
|
+
options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined;
|
|
310
|
+
cloned = new ArrayBuffer(length, options);
|
|
310
311
|
source = new C(value);
|
|
311
312
|
target = new C(cloned);
|
|
312
313
|
for (i = 0; i < length; i++) {
|
|
@@ -8,6 +8,7 @@ var uncurryThis = require('../internals/function-uncurry-this');
|
|
|
8
8
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
9
9
|
var USE_NATIVE_URL = require('../internals/url-constructor-detection');
|
|
10
10
|
var defineBuiltIn = require('../internals/define-built-in');
|
|
11
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
11
12
|
var defineBuiltIns = require('../internals/define-built-ins');
|
|
12
13
|
var setToStringTag = require('../internals/set-to-string-tag');
|
|
13
14
|
var createIteratorConstructor = require('../internals/iterator-create-constructor');
|
|
@@ -203,7 +204,8 @@ URLSearchParamsState.prototype = {
|
|
|
203
204
|
var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
|
|
204
205
|
anInstance(this, URLSearchParamsPrototype);
|
|
205
206
|
var init = arguments.length > 0 ? arguments[0] : undefined;
|
|
206
|
-
setInternalState(this, new URLSearchParamsState(init));
|
|
207
|
+
var state = setInternalState(this, new URLSearchParamsState(init));
|
|
208
|
+
if (!DESCRIPTORS) this.length = state.entries.length;
|
|
207
209
|
};
|
|
208
210
|
|
|
209
211
|
var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
|
|
@@ -215,6 +217,7 @@ defineBuiltIns(URLSearchParamsPrototype, {
|
|
|
215
217
|
validateArgumentsLength(arguments.length, 2);
|
|
216
218
|
var state = getInternalParamsState(this);
|
|
217
219
|
push(state.entries, { key: $toString(name), value: $toString(value) });
|
|
220
|
+
if (!DESCRIPTORS) this.length++;
|
|
218
221
|
state.updateURL();
|
|
219
222
|
},
|
|
220
223
|
// `URLSearchParams.prototype.delete` method
|
|
@@ -229,6 +232,7 @@ defineBuiltIns(URLSearchParamsPrototype, {
|
|
|
229
232
|
if (entries[index].key === key) splice(entries, index, 1);
|
|
230
233
|
else index++;
|
|
231
234
|
}
|
|
235
|
+
if (!DESCRIPTORS) this.length = entries.length;
|
|
232
236
|
state.updateURL();
|
|
233
237
|
},
|
|
234
238
|
// `URLSearchParams.prototype.get` method
|
|
@@ -290,6 +294,7 @@ defineBuiltIns(URLSearchParamsPrototype, {
|
|
|
290
294
|
}
|
|
291
295
|
}
|
|
292
296
|
if (!found) push(entries, { key: key, value: val });
|
|
297
|
+
if (!DESCRIPTORS) this.length = entries.length;
|
|
293
298
|
state.updateURL();
|
|
294
299
|
},
|
|
295
300
|
// `URLSearchParams.prototype.sort` method
|
|
@@ -335,6 +340,16 @@ defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {
|
|
|
335
340
|
return getInternalParamsState(this).serialize();
|
|
336
341
|
}, { enumerable: true });
|
|
337
342
|
|
|
343
|
+
// `URLSearchParams.prototype.size` getter
|
|
344
|
+
// https://github.com/whatwg/url/pull/734
|
|
345
|
+
if (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {
|
|
346
|
+
get: function size() {
|
|
347
|
+
return getInternalParamsState(this).entries.length;
|
|
348
|
+
},
|
|
349
|
+
configurable: true,
|
|
350
|
+
enumerable: true
|
|
351
|
+
});
|
|
352
|
+
|
|
338
353
|
setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);
|
|
339
354
|
|
|
340
355
|
$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var DESCRIPTORS = require('../internals/descriptors');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
|
+
var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
|
|
5
|
+
|
|
6
|
+
var URLSearchParamsPrototype = URLSearchParams.prototype;
|
|
7
|
+
var forEach = uncurryThis(URLSearchParamsPrototype.forEach);
|
|
8
|
+
|
|
9
|
+
// `URLSearchParams.prototype.size` getter
|
|
10
|
+
// https://github.com/whatwg/url/pull/734
|
|
11
|
+
if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {
|
|
12
|
+
defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {
|
|
13
|
+
get: function size() {
|
|
14
|
+
var count = 0;
|
|
15
|
+
forEach(this, function () { count++; });
|
|
16
|
+
return count;
|
|
17
|
+
},
|
|
18
|
+
configurable: true,
|
|
19
|
+
enumerable: true
|
|
20
|
+
});
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
var $ = require('../internals/export');
|
|
2
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
3
|
+
var validateArgumentsLength = require('../internals/validate-arguments-length');
|
|
4
|
+
var toString = require('../internals/to-string');
|
|
5
|
+
|
|
6
|
+
var URL = getBuiltIn('URL');
|
|
7
|
+
|
|
8
|
+
// `URL.canParse` method
|
|
9
|
+
// https://url.spec.whatwg.org/#dom-url-canparse
|
|
10
|
+
$({ target: 'URL', stat: true }, {
|
|
11
|
+
canParse: function canParse(url) {
|
|
12
|
+
var length = validateArgumentsLength(arguments.length, 1);
|
|
13
|
+
var urlString = toString(url);
|
|
14
|
+
var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);
|
|
15
|
+
try {
|
|
16
|
+
return !!new URL(urlString, base);
|
|
17
|
+
} catch (error) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
});
|
package/package.json
CHANGED
package/postinstall.js
CHANGED
|
@@ -23,6 +23,7 @@ var BANNER = '\u001B[96mThank you for using core-js (\u001B[94m https://github.c
|
|
|
23
23
|
'\u001B[96mThe project needs your help! Please consider supporting of core-js:\u001B[0m\n' +
|
|
24
24
|
'\u001B[96m>\u001B[94m https://opencollective.com/core-js \u001B[0m\n' +
|
|
25
25
|
'\u001B[96m>\u001B[94m https://patreon.com/zloirock \u001B[0m\n' +
|
|
26
|
+
'\u001B[96m>\u001B[94m https://boosty.to/zloirock \u001B[0m\n' +
|
|
26
27
|
'\u001B[96m>\u001B[94m bitcoin: bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz \u001B[0m\n\n' +
|
|
27
28
|
'\u001B[96mI highly recommend reading this:\u001B[94m https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md \u001B[96m\u001B[0m\n';
|
|
28
29
|
|
package/proposals/url.js
CHANGED
package/stable/index.js
CHANGED
|
@@ -251,7 +251,9 @@ require('../modules/web.self');
|
|
|
251
251
|
require('../modules/web.structured-clone');
|
|
252
252
|
require('../modules/web.timers');
|
|
253
253
|
require('../modules/web.url');
|
|
254
|
+
require('../modules/web.url.can-parse');
|
|
254
255
|
require('../modules/web.url.to-json');
|
|
255
256
|
require('../modules/web.url-search-params');
|
|
257
|
+
require('../modules/web.url-search-params.size');
|
|
256
258
|
|
|
257
259
|
module.exports = require('../internals/path');
|
package/stage/1.js
CHANGED
|
@@ -5,7 +5,6 @@ require('../proposals/array-last');
|
|
|
5
5
|
require('../proposals/array-unique');
|
|
6
6
|
require('../proposals/collection-methods');
|
|
7
7
|
require('../proposals/collection-of-from');
|
|
8
|
-
require('../proposals/iterator-range');
|
|
9
8
|
require('../proposals/keys-composition');
|
|
10
9
|
require('../proposals/math-extensions');
|
|
11
10
|
require('../proposals/math-signbit');
|
package/stage/2.js
CHANGED
|
@@ -3,13 +3,15 @@ var parent = require('./3');
|
|
|
3
3
|
require('../proposals/array-is-template-object');
|
|
4
4
|
require('../proposals/async-explicit-resource-management');
|
|
5
5
|
require('../proposals/async-iterator-helpers');
|
|
6
|
-
require('../proposals/decorator-metadata');
|
|
6
|
+
require('../proposals/decorator-metadata-v2');
|
|
7
|
+
require('../proposals/iterator-range');
|
|
7
8
|
require('../proposals/map-upsert-stage-2');
|
|
8
9
|
require('../proposals/string-dedent');
|
|
9
10
|
require('../proposals/symbol-predicates');
|
|
10
11
|
// TODO: Obsolete versions, remove from `core-js@4`
|
|
11
12
|
require('../proposals/array-grouping');
|
|
12
13
|
require('../proposals/decorators');
|
|
14
|
+
require('../proposals/decorator-metadata');
|
|
13
15
|
require('../proposals/iterator-helpers');
|
|
14
16
|
require('../proposals/set-methods');
|
|
15
17
|
require('../proposals/using-statement');
|
package/web/index.js
CHANGED
|
@@ -11,8 +11,10 @@ require('../modules/web.self');
|
|
|
11
11
|
require('../modules/web.structured-clone');
|
|
12
12
|
require('../modules/web.timers');
|
|
13
13
|
require('../modules/web.url');
|
|
14
|
+
require('../modules/web.url.can-parse');
|
|
14
15
|
require('../modules/web.url.to-json');
|
|
15
16
|
require('../modules/web.url-search-params');
|
|
17
|
+
require('../modules/web.url-search-params.size');
|
|
16
18
|
var path = require('../internals/path');
|
|
17
19
|
|
|
18
20
|
module.exports = path;
|
package/web/url-search-params.js
CHANGED
package/web/url.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
require('../modules/web.url');
|
|
2
|
+
require('../modules/web.url.can-parse');
|
|
2
3
|
require('../modules/web.url.to-json');
|
|
3
4
|
require('../modules/web.url-search-params');
|
|
5
|
+
require('../modules/web.url-search-params.size');
|
|
4
6
|
var path = require('../internals/path');
|
|
5
7
|
|
|
6
8
|
module.exports = path.URL;
|