core-js 3.30.2 → 3.31.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/function/index.js +1 -0
- package/actual/function/metadata.js +3 -0
- package/actual/instance/is-well-formed.js +2 -9
- package/actual/instance/to-well-formed.js +2 -9
- package/actual/string/index.js +1 -0
- package/actual/string/is-well-formed.js +4 -1
- package/actual/string/to-well-formed.js +4 -1
- package/actual/string/virtual/index.js +1 -0
- package/actual/string/virtual/is-well-formed.js +4 -1
- package/actual/string/virtual/to-well-formed.js +4 -1
- package/actual/symbol/index.js +2 -0
- package/actual/symbol/metadata.js +5 -0
- package/es/index.js +2 -0
- package/es/instance/is-well-formed.js +10 -0
- package/es/instance/to-well-formed.js +10 -0
- package/es/string/index.js +2 -0
- package/es/string/is-well-formed.js +3 -0
- package/es/string/to-well-formed.js +3 -0
- package/es/string/virtual/is-well-formed.js +3 -0
- package/es/string/virtual/to-well-formed.js +3 -0
- package/features/function/metadata.js +1 -0
- package/features/object/group-by.js +1 -0
- package/features/promise/with-resolvers.js +1 -0
- package/features/symbol/is-registered-symbol.js +1 -0
- package/features/symbol/is-well-known-symbol.js +1 -0
- package/full/function/metadata.js +3 -0
- package/full/index.js +11 -2
- package/full/object/group-by.js +6 -0
- package/full/object/index.js +1 -0
- package/full/promise/index.js +2 -1
- package/full/promise/with-resolvers.js +13 -0
- package/full/symbol/index.js +5 -4
- package/full/symbol/is-registered-symbol.js +5 -0
- package/full/symbol/is-well-known-symbol.js +5 -0
- package/full/symbol/metadata.js +2 -3
- package/internals/array-buffer-transfer.js +6 -4
- package/internals/array-group.js +1 -1
- package/internals/get-iterator-direct.js +4 -3
- package/internals/object-to-array.js +13 -1
- package/internals/shared.js +2 -2
- package/internals/symbol-is-registered.js +16 -0
- package/internals/symbol-is-well-known.js +33 -0
- package/internals/url-constructor-detection.js +3 -1
- package/modules/es.string.is-well-formed.js +23 -0
- package/modules/es.string.to-well-formed.js +43 -0
- package/modules/esnext.async-disposable-stack.constructor.js +1 -1
- package/modules/esnext.function.metadata.js +13 -0
- package/modules/esnext.map.group-by.js +17 -16
- package/modules/esnext.object.group-by.js +30 -0
- package/modules/esnext.promise.with-resolvers.js +16 -0
- package/modules/esnext.string.is-well-formed.js +2 -23
- package/modules/esnext.string.to-well-formed.js +2 -42
- package/modules/esnext.symbol.is-registered-symbol.js +8 -0
- package/modules/esnext.symbol.is-registered.js +4 -15
- package/modules/esnext.symbol.is-well-known-symbol.js +9 -0
- package/modules/esnext.symbol.is-well-known.js +4 -31
- package/modules/web.url-search-params.constructor.js +22 -14
- package/modules/web.url-search-params.delete.js +46 -0
- package/modules/web.url-search-params.has.js +26 -0
- package/package.json +1 -1
- package/postinstall.js +1 -1
- package/proposals/array-grouping-v2.js +3 -0
- package/proposals/decorator-metadata-v2.js +1 -0
- package/proposals/promise-with-resolvers.js +2 -0
- package/proposals/symbol-predicates-v2.js +3 -0
- package/proposals/url.js +1 -5
- package/stable/index.js +4 -0
- package/stable/instance/is-well-formed.js +3 -0
- package/stable/instance/to-well-formed.js +3 -0
- package/stable/string/is-well-formed.js +3 -0
- package/stable/string/to-well-formed.js +3 -0
- package/stable/string/virtual/is-well-formed.js +3 -0
- package/stable/string/virtual/to-well-formed.js +3 -0
- package/stage/2.js +4 -2
- package/stage/3.js +2 -2
- package/stage/4.js +1 -0
- package/web/index.js +2 -0
- package/web/url-search-params.js +2 -0
- package/web/url.js +1 -2
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var call = require('../internals/function-call');
|
|
4
3
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
|
-
var isCallable = require('../internals/is-callable');
|
|
6
4
|
var aCallable = require('../internals/a-callable');
|
|
5
|
+
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
7
6
|
var iterate = require('../internals/iterate');
|
|
8
|
-
var
|
|
7
|
+
var MapHelpers = require('../internals/map-helpers');
|
|
9
8
|
|
|
9
|
+
var Map = MapHelpers.Map;
|
|
10
|
+
var has = MapHelpers.has;
|
|
11
|
+
var get = MapHelpers.get;
|
|
12
|
+
var set = MapHelpers.set;
|
|
10
13
|
var push = uncurryThis([].push);
|
|
11
14
|
|
|
12
15
|
// `Map.groupBy` method
|
|
13
|
-
// https://github.com/tc39/proposal-
|
|
16
|
+
// https://github.com/tc39/proposal-array-grouping
|
|
14
17
|
$({ target: 'Map', stat: true, forced: true }, {
|
|
15
|
-
groupBy: function groupBy(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (!call(has, newMap, derivedKey)) call(set, newMap, derivedKey, [element]);
|
|
25
|
-
else push(call(get, newMap, derivedKey), element);
|
|
18
|
+
groupBy: function groupBy(items, callbackfn) {
|
|
19
|
+
requireObjectCoercible(items);
|
|
20
|
+
aCallable(callbackfn);
|
|
21
|
+
var map = new Map();
|
|
22
|
+
var k = 0;
|
|
23
|
+
iterate(items, function (value) {
|
|
24
|
+
var key = callbackfn(value, k++);
|
|
25
|
+
if (!has(map, key)) set(map, key, [value]);
|
|
26
|
+
else push(get(map, key), value);
|
|
26
27
|
});
|
|
27
|
-
return
|
|
28
|
+
return map;
|
|
28
29
|
}
|
|
29
30
|
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
4
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
|
+
var aCallable = require('../internals/a-callable');
|
|
6
|
+
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
7
|
+
var toPropertyKey = require('../internals/to-property-key');
|
|
8
|
+
var iterate = require('../internals/iterate');
|
|
9
|
+
|
|
10
|
+
var create = getBuiltIn('Object', 'create');
|
|
11
|
+
var push = uncurryThis([].push);
|
|
12
|
+
|
|
13
|
+
// `Object.groupBy` method
|
|
14
|
+
// https://github.com/tc39/proposal-array-grouping
|
|
15
|
+
$({ target: 'Object', stat: true, forced: true }, {
|
|
16
|
+
groupBy: function groupBy(items, callbackfn) {
|
|
17
|
+
requireObjectCoercible(items);
|
|
18
|
+
aCallable(callbackfn);
|
|
19
|
+
var obj = create(null);
|
|
20
|
+
var k = 0;
|
|
21
|
+
iterate(items, function (value) {
|
|
22
|
+
var key = toPropertyKey(callbackfn(value, k++));
|
|
23
|
+
// in some IE versions, `hasOwnProperty` returns incorrect result on integer keys
|
|
24
|
+
// but since it's a `null` prototype object, we can safely use `in`
|
|
25
|
+
if (key in obj) push(obj[key], value);
|
|
26
|
+
else obj[key] = [value];
|
|
27
|
+
});
|
|
28
|
+
return obj;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var $ = require('../internals/export');
|
|
3
|
+
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
4
|
+
|
|
5
|
+
// `Promise.withResolvers` method
|
|
6
|
+
// https://github.com/tc39/proposal-promise-with-resolvers
|
|
7
|
+
$({ target: 'Promise', stat: true, forced: true }, {
|
|
8
|
+
withResolvers: function withResolvers() {
|
|
9
|
+
var promiseCapability = newPromiseCapabilityModule.f(this);
|
|
10
|
+
return {
|
|
11
|
+
promise: promiseCapability.promise,
|
|
12
|
+
resolve: promiseCapability.resolve,
|
|
13
|
+
reject: promiseCapability.reject
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
});
|
|
@@ -1,23 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
|
-
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
5
|
-
var toString = require('../internals/to-string');
|
|
6
|
-
|
|
7
|
-
var charCodeAt = uncurryThis(''.charCodeAt);
|
|
8
|
-
|
|
9
|
-
// `String.prototype.isWellFormed` method
|
|
10
|
-
// https://github.com/tc39/proposal-is-usv-string
|
|
11
|
-
$({ target: 'String', proto: true }, {
|
|
12
|
-
isWellFormed: function isWellFormed() {
|
|
13
|
-
var S = toString(requireObjectCoercible(this));
|
|
14
|
-
var length = S.length;
|
|
15
|
-
for (var i = 0; i < length; i++) {
|
|
16
|
-
var charCode = charCodeAt(S, i);
|
|
17
|
-
// single UTF-16 code unit
|
|
18
|
-
if ((charCode & 0xF800) != 0xD800) continue;
|
|
19
|
-
// unpaired surrogate
|
|
20
|
-
if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) != 0xDC00) return false;
|
|
21
|
-
} return true;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
1
|
+
// TODO: Remove from `core-js@4`
|
|
2
|
+
require('../modules/es.string.is-well-formed');
|
|
@@ -1,42 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var call = require('../internals/function-call');
|
|
4
|
-
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
|
-
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
6
|
-
var toString = require('../internals/to-string');
|
|
7
|
-
var fails = require('../internals/fails');
|
|
8
|
-
|
|
9
|
-
var $Array = Array;
|
|
10
|
-
var charAt = uncurryThis(''.charAt);
|
|
11
|
-
var charCodeAt = uncurryThis(''.charCodeAt);
|
|
12
|
-
var join = uncurryThis([].join);
|
|
13
|
-
var $toWellFormed = ''.toWellFormed;
|
|
14
|
-
var REPLACEMENT_CHARACTER = '\uFFFD';
|
|
15
|
-
|
|
16
|
-
// Safari bug
|
|
17
|
-
var TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () {
|
|
18
|
-
return call($toWellFormed, 1) !== '1';
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
// `String.prototype.toWellFormed` method
|
|
22
|
-
// https://github.com/tc39/proposal-is-usv-string
|
|
23
|
-
$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, {
|
|
24
|
-
toWellFormed: function toWellFormed() {
|
|
25
|
-
var S = toString(requireObjectCoercible(this));
|
|
26
|
-
if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S);
|
|
27
|
-
var length = S.length;
|
|
28
|
-
var result = $Array(length);
|
|
29
|
-
for (var i = 0; i < length; i++) {
|
|
30
|
-
var charCode = charCodeAt(S, i);
|
|
31
|
-
// single UTF-16 code unit
|
|
32
|
-
if ((charCode & 0xF800) != 0xD800) result[i] = charAt(S, i);
|
|
33
|
-
// unpaired surrogate
|
|
34
|
-
else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) != 0xDC00) result[i] = REPLACEMENT_CHARACTER;
|
|
35
|
-
// surrogate pair
|
|
36
|
-
else {
|
|
37
|
-
result[i] = charAt(S, i);
|
|
38
|
-
result[++i] = charAt(S, i);
|
|
39
|
-
}
|
|
40
|
-
} return join(result, '');
|
|
41
|
-
}
|
|
42
|
-
});
|
|
1
|
+
// TODO: Remove from `core-js@4`
|
|
2
|
+
require('../modules/es.string.to-well-formed');
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var $ = require('../internals/export');
|
|
2
|
+
var isRegisteredSymbol = require('../internals/symbol-is-registered');
|
|
3
|
+
|
|
4
|
+
// `Symbol.isRegisteredSymbol` method
|
|
5
|
+
// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol
|
|
6
|
+
$({ target: 'Symbol', stat: true }, {
|
|
7
|
+
isRegisteredSymbol: isRegisteredSymbol
|
|
8
|
+
});
|
|
@@ -1,19 +1,8 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var
|
|
3
|
-
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
|
-
|
|
5
|
-
var Symbol = getBuiltIn('Symbol');
|
|
6
|
-
var keyFor = Symbol.keyFor;
|
|
7
|
-
var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);
|
|
2
|
+
var isRegisteredSymbol = require('../internals/symbol-is-registered');
|
|
8
3
|
|
|
9
4
|
// `Symbol.isRegistered` method
|
|
10
|
-
// https://tc39.es/proposal-symbol-predicates/#sec-symbol-
|
|
11
|
-
$({ target: 'Symbol', stat: true }, {
|
|
12
|
-
isRegistered:
|
|
13
|
-
try {
|
|
14
|
-
return keyFor(thisSymbolValue(value)) !== undefined;
|
|
15
|
-
} catch (error) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
5
|
+
// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol
|
|
6
|
+
$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {
|
|
7
|
+
isRegistered: isRegisteredSymbol
|
|
19
8
|
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
var $ = require('../internals/export');
|
|
2
|
+
var isWellKnownSymbol = require('../internals/symbol-is-well-known');
|
|
3
|
+
|
|
4
|
+
// `Symbol.isWellKnownSymbol` method
|
|
5
|
+
// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol
|
|
6
|
+
// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected
|
|
7
|
+
$({ target: 'Symbol', stat: true, forced: true }, {
|
|
8
|
+
isWellKnownSymbol: isWellKnownSymbol
|
|
9
|
+
});
|
|
@@ -1,36 +1,9 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
|
-
var
|
|
3
|
-
var getBuiltIn = require('../internals/get-built-in');
|
|
4
|
-
var uncurryThis = require('../internals/function-uncurry-this');
|
|
5
|
-
var isSymbol = require('../internals/is-symbol');
|
|
6
|
-
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
7
|
-
|
|
8
|
-
var Symbol = getBuiltIn('Symbol');
|
|
9
|
-
var $isWellKnown = Symbol.isWellKnown;
|
|
10
|
-
var getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');
|
|
11
|
-
var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);
|
|
12
|
-
var WellKnownSymbolsStore = shared('wks');
|
|
13
|
-
|
|
14
|
-
for (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {
|
|
15
|
-
// some old engines throws on access to some keys like `arguments` or `caller`
|
|
16
|
-
try {
|
|
17
|
-
var symbolKey = symbolKeys[i];
|
|
18
|
-
if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);
|
|
19
|
-
} catch (error) { /* empty */ }
|
|
20
|
-
}
|
|
2
|
+
var isWellKnownSymbol = require('../internals/symbol-is-well-known');
|
|
21
3
|
|
|
22
4
|
// `Symbol.isWellKnown` method
|
|
23
|
-
// https://tc39.es/proposal-symbol-predicates/#sec-symbol-
|
|
5
|
+
// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol
|
|
24
6
|
// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected
|
|
25
|
-
$({ target: 'Symbol', stat: true, forced: true }, {
|
|
26
|
-
isWellKnown:
|
|
27
|
-
if ($isWellKnown && $isWellKnown(value)) return true;
|
|
28
|
-
try {
|
|
29
|
-
var symbol = thisSymbolValue(value);
|
|
30
|
-
for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {
|
|
31
|
-
if (WellKnownSymbolsStore[keys[j]] == symbol) return true;
|
|
32
|
-
}
|
|
33
|
-
} catch (error) { /* empty */ }
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
7
|
+
$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {
|
|
8
|
+
isWellKnown: isWellKnownSymbol
|
|
36
9
|
});
|
|
@@ -205,7 +205,7 @@ var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
|
|
|
205
205
|
anInstance(this, URLSearchParamsPrototype);
|
|
206
206
|
var init = arguments.length > 0 ? arguments[0] : undefined;
|
|
207
207
|
var state = setInternalState(this, new URLSearchParamsState(init));
|
|
208
|
-
if (!DESCRIPTORS) this.
|
|
208
|
+
if (!DESCRIPTORS) this.size = state.entries.length;
|
|
209
209
|
};
|
|
210
210
|
|
|
211
211
|
var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
|
|
@@ -214,32 +214,37 @@ defineBuiltIns(URLSearchParamsPrototype, {
|
|
|
214
214
|
// `URLSearchParams.prototype.append` method
|
|
215
215
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-append
|
|
216
216
|
append: function append(name, value) {
|
|
217
|
-
validateArgumentsLength(arguments.length, 2);
|
|
218
217
|
var state = getInternalParamsState(this);
|
|
218
|
+
validateArgumentsLength(arguments.length, 2);
|
|
219
219
|
push(state.entries, { key: $toString(name), value: $toString(value) });
|
|
220
220
|
if (!DESCRIPTORS) this.length++;
|
|
221
221
|
state.updateURL();
|
|
222
222
|
},
|
|
223
223
|
// `URLSearchParams.prototype.delete` method
|
|
224
224
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-delete
|
|
225
|
-
'delete': function (name) {
|
|
226
|
-
validateArgumentsLength(arguments.length, 1);
|
|
225
|
+
'delete': function (name /* , value */) {
|
|
227
226
|
var state = getInternalParamsState(this);
|
|
227
|
+
var length = validateArgumentsLength(arguments.length, 1);
|
|
228
228
|
var entries = state.entries;
|
|
229
229
|
var key = $toString(name);
|
|
230
|
+
var $value = length < 2 ? undefined : arguments[1];
|
|
231
|
+
var value = $value === undefined ? $value : $toString($value);
|
|
230
232
|
var index = 0;
|
|
231
233
|
while (index < entries.length) {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
+
var entry = entries[index];
|
|
235
|
+
if (entry.key === key && (value === undefined || entry.value === value)) {
|
|
236
|
+
splice(entries, index, 1);
|
|
237
|
+
if (value !== undefined) break;
|
|
238
|
+
} else index++;
|
|
234
239
|
}
|
|
235
|
-
if (!DESCRIPTORS) this.
|
|
240
|
+
if (!DESCRIPTORS) this.size = entries.length;
|
|
236
241
|
state.updateURL();
|
|
237
242
|
},
|
|
238
243
|
// `URLSearchParams.prototype.get` method
|
|
239
244
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-get
|
|
240
245
|
get: function get(name) {
|
|
241
|
-
validateArgumentsLength(arguments.length, 1);
|
|
242
246
|
var entries = getInternalParamsState(this).entries;
|
|
247
|
+
validateArgumentsLength(arguments.length, 1);
|
|
243
248
|
var key = $toString(name);
|
|
244
249
|
var index = 0;
|
|
245
250
|
for (; index < entries.length; index++) {
|
|
@@ -250,8 +255,8 @@ defineBuiltIns(URLSearchParamsPrototype, {
|
|
|
250
255
|
// `URLSearchParams.prototype.getAll` method
|
|
251
256
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-getall
|
|
252
257
|
getAll: function getAll(name) {
|
|
253
|
-
validateArgumentsLength(arguments.length, 1);
|
|
254
258
|
var entries = getInternalParamsState(this).entries;
|
|
259
|
+
validateArgumentsLength(arguments.length, 1);
|
|
255
260
|
var key = $toString(name);
|
|
256
261
|
var result = [];
|
|
257
262
|
var index = 0;
|
|
@@ -262,21 +267,24 @@ defineBuiltIns(URLSearchParamsPrototype, {
|
|
|
262
267
|
},
|
|
263
268
|
// `URLSearchParams.prototype.has` method
|
|
264
269
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-has
|
|
265
|
-
has: function has(name) {
|
|
266
|
-
validateArgumentsLength(arguments.length, 1);
|
|
270
|
+
has: function has(name /* , value */) {
|
|
267
271
|
var entries = getInternalParamsState(this).entries;
|
|
272
|
+
var length = validateArgumentsLength(arguments.length, 1);
|
|
268
273
|
var key = $toString(name);
|
|
274
|
+
var $value = length < 2 ? undefined : arguments[1];
|
|
275
|
+
var value = $value === undefined ? $value : $toString($value);
|
|
269
276
|
var index = 0;
|
|
270
277
|
while (index < entries.length) {
|
|
271
|
-
|
|
278
|
+
var entry = entries[index++];
|
|
279
|
+
if (entry.key === key && (value === undefined || entry.value === value)) return true;
|
|
272
280
|
}
|
|
273
281
|
return false;
|
|
274
282
|
},
|
|
275
283
|
// `URLSearchParams.prototype.set` method
|
|
276
284
|
// https://url.spec.whatwg.org/#dom-urlsearchparams-set
|
|
277
285
|
set: function set(name, value) {
|
|
278
|
-
validateArgumentsLength(arguments.length, 1);
|
|
279
286
|
var state = getInternalParamsState(this);
|
|
287
|
+
validateArgumentsLength(arguments.length, 1);
|
|
280
288
|
var entries = state.entries;
|
|
281
289
|
var found = false;
|
|
282
290
|
var key = $toString(name);
|
|
@@ -294,7 +302,7 @@ defineBuiltIns(URLSearchParamsPrototype, {
|
|
|
294
302
|
}
|
|
295
303
|
}
|
|
296
304
|
if (!found) push(entries, { key: key, value: val });
|
|
297
|
-
if (!DESCRIPTORS) this.
|
|
305
|
+
if (!DESCRIPTORS) this.size = entries.length;
|
|
298
306
|
state.updateURL();
|
|
299
307
|
},
|
|
300
308
|
// `URLSearchParams.prototype.sort` method
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
|
+
var toString = require('../internals/to-string');
|
|
5
|
+
var validateArgumentsLength = require('../internals/validate-arguments-length');
|
|
6
|
+
|
|
7
|
+
var $URLSearchParams = URLSearchParams;
|
|
8
|
+
var URLSearchParamsPrototype = $URLSearchParams.prototype;
|
|
9
|
+
var append = uncurryThis(URLSearchParamsPrototype.append);
|
|
10
|
+
var $delete = uncurryThis(URLSearchParamsPrototype['delete']);
|
|
11
|
+
var forEach = uncurryThis(URLSearchParamsPrototype.forEach);
|
|
12
|
+
var push = uncurryThis([].push);
|
|
13
|
+
var params = new $URLSearchParams('a=1&a=2');
|
|
14
|
+
|
|
15
|
+
params['delete']('a', 1);
|
|
16
|
+
|
|
17
|
+
if (params + '' !== 'a=2') {
|
|
18
|
+
defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {
|
|
19
|
+
var length = arguments.length;
|
|
20
|
+
var $value = length < 2 ? undefined : arguments[1];
|
|
21
|
+
if (length && $value === undefined) return $delete(this, name);
|
|
22
|
+
var entries = [];
|
|
23
|
+
forEach(this, function (v, k) { // also validates `this`
|
|
24
|
+
push(entries, { key: k, value: v });
|
|
25
|
+
});
|
|
26
|
+
validateArgumentsLength(length, 1);
|
|
27
|
+
var key = toString(name);
|
|
28
|
+
var value = toString($value);
|
|
29
|
+
var index = 0;
|
|
30
|
+
var dindex = 0;
|
|
31
|
+
var found = false;
|
|
32
|
+
var entriesLength = entries.length;
|
|
33
|
+
var entry;
|
|
34
|
+
while (index < entriesLength) {
|
|
35
|
+
entry = entries[index++];
|
|
36
|
+
if (found || entry.key === key) {
|
|
37
|
+
found = true;
|
|
38
|
+
$delete(this, entry.key);
|
|
39
|
+
} else dindex++;
|
|
40
|
+
}
|
|
41
|
+
while (dindex < entriesLength) {
|
|
42
|
+
entry = entries[dindex++];
|
|
43
|
+
if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);
|
|
44
|
+
}
|
|
45
|
+
}, { enumerable: true, unsafe: true });
|
|
46
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var defineBuiltIn = require('../internals/define-built-in');
|
|
3
|
+
var uncurryThis = require('../internals/function-uncurry-this');
|
|
4
|
+
var toString = require('../internals/to-string');
|
|
5
|
+
var validateArgumentsLength = require('../internals/validate-arguments-length');
|
|
6
|
+
|
|
7
|
+
var $URLSearchParams = URLSearchParams;
|
|
8
|
+
var URLSearchParamsPrototype = $URLSearchParams.prototype;
|
|
9
|
+
var getAll = uncurryThis(URLSearchParamsPrototype.getAll);
|
|
10
|
+
var $has = uncurryThis(URLSearchParamsPrototype.has);
|
|
11
|
+
var params = new $URLSearchParams('a=1');
|
|
12
|
+
|
|
13
|
+
if (params.has('a', 2)) {
|
|
14
|
+
defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {
|
|
15
|
+
var length = arguments.length;
|
|
16
|
+
var $value = length < 2 ? undefined : arguments[1];
|
|
17
|
+
if (length && $value === undefined) return $has(this, name);
|
|
18
|
+
var values = getAll(this, name); // also validates `this`
|
|
19
|
+
validateArgumentsLength(length, 1);
|
|
20
|
+
var value = toString($value);
|
|
21
|
+
var index = 0;
|
|
22
|
+
while (index < values.length) {
|
|
23
|
+
if (values[index++] === value) return true;
|
|
24
|
+
} return false;
|
|
25
|
+
}, { enumerable: true, unsafe: true });
|
|
26
|
+
}
|
package/package.json
CHANGED
package/postinstall.js
CHANGED
|
@@ -20,7 +20,7 @@ var CI = [
|
|
|
20
20
|
].some(function (it) { return is(env[it]); });
|
|
21
21
|
|
|
22
22
|
var BANNER = '\u001B[96mThank you for using core-js (\u001B[94m https://github.com/zloirock/core-js \u001B[96m) for polyfilling JavaScript standard library!\u001B[0m\n\n' +
|
|
23
|
-
'\u001B[96mThe project needs your help! Please consider supporting
|
|
23
|
+
'\u001B[96mThe project needs your help! Please consider supporting 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
26
|
'\u001B[96m>\u001B[94m https://boosty.to/zloirock \u001B[0m\n' +
|
package/proposals/url.js
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
// https://github.com/jasnell/proposal-url
|
|
2
|
-
require('../
|
|
3
|
-
require('../modules/web.url.can-parse');
|
|
4
|
-
require('../modules/web.url.to-json');
|
|
5
|
-
require('../modules/web.url-search-params');
|
|
6
|
-
require('../modules/web.url-search-params.size');
|
|
2
|
+
require('../web/url');
|
package/stable/index.js
CHANGED
|
@@ -166,6 +166,7 @@ require('../modules/es.string.code-point-at');
|
|
|
166
166
|
require('../modules/es.string.ends-with');
|
|
167
167
|
require('../modules/es.string.from-code-point');
|
|
168
168
|
require('../modules/es.string.includes');
|
|
169
|
+
require('../modules/es.string.is-well-formed');
|
|
169
170
|
require('../modules/es.string.iterator');
|
|
170
171
|
require('../modules/es.string.match');
|
|
171
172
|
require('../modules/es.string.match-all');
|
|
@@ -179,6 +180,7 @@ require('../modules/es.string.search');
|
|
|
179
180
|
require('../modules/es.string.split');
|
|
180
181
|
require('../modules/es.string.starts-with');
|
|
181
182
|
require('../modules/es.string.substr');
|
|
183
|
+
require('../modules/es.string.to-well-formed');
|
|
182
184
|
require('../modules/es.string.trim');
|
|
183
185
|
require('../modules/es.string.trim-end');
|
|
184
186
|
require('../modules/es.string.trim-start');
|
|
@@ -254,6 +256,8 @@ require('../modules/web.url');
|
|
|
254
256
|
require('../modules/web.url.can-parse');
|
|
255
257
|
require('../modules/web.url.to-json');
|
|
256
258
|
require('../modules/web.url-search-params');
|
|
259
|
+
require('../modules/web.url-search-params.delete');
|
|
260
|
+
require('../modules/web.url-search-params.has');
|
|
257
261
|
require('../modules/web.url-search-params.size');
|
|
258
262
|
|
|
259
263
|
module.exports = require('../internals/path');
|
package/stage/2.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
var parent = require('./3');
|
|
2
2
|
|
|
3
|
+
require('../proposals/array-grouping-v2');
|
|
3
4
|
require('../proposals/array-is-template-object');
|
|
4
5
|
require('../proposals/async-explicit-resource-management');
|
|
5
6
|
require('../proposals/async-iterator-helpers');
|
|
6
|
-
require('../proposals/decorator-metadata-v2');
|
|
7
7
|
require('../proposals/iterator-range');
|
|
8
8
|
require('../proposals/map-upsert-stage-2');
|
|
9
|
+
require('../proposals/promise-with-resolvers');
|
|
9
10
|
require('../proposals/string-dedent');
|
|
10
|
-
require('../proposals/symbol-predicates');
|
|
11
|
+
require('../proposals/symbol-predicates-v2');
|
|
11
12
|
// TODO: Obsolete versions, remove from `core-js@4`
|
|
12
13
|
require('../proposals/array-grouping');
|
|
13
14
|
require('../proposals/decorators');
|
|
14
15
|
require('../proposals/decorator-metadata');
|
|
15
16
|
require('../proposals/iterator-helpers');
|
|
16
17
|
require('../proposals/set-methods');
|
|
18
|
+
require('../proposals/symbol-predicates');
|
|
17
19
|
require('../proposals/using-statement');
|
|
18
20
|
|
|
19
21
|
module.exports = parent;
|
package/stage/3.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
var parent = require('./4');
|
|
2
2
|
|
|
3
3
|
require('../proposals/array-from-async-stage-2');
|
|
4
|
-
require('../proposals/array-grouping-stage-3-2');
|
|
5
4
|
require('../proposals/array-buffer-transfer');
|
|
5
|
+
require('../proposals/decorator-metadata-v2');
|
|
6
6
|
require('../proposals/explicit-resource-management');
|
|
7
7
|
require('../proposals/iterator-helpers-stage-3-2');
|
|
8
8
|
require('../proposals/json-parse-with-source');
|
|
9
9
|
require('../proposals/set-methods-v2');
|
|
10
|
-
require('../proposals/well-formed-unicode-strings');
|
|
11
10
|
// TODO: Obsolete versions, remove from `core-js@4`
|
|
12
11
|
require('../proposals/array-grouping-stage-3');
|
|
12
|
+
require('../proposals/array-grouping-stage-3-2');
|
|
13
13
|
require('../proposals/change-array-by-copy');
|
|
14
14
|
require('../proposals/iterator-helpers-stage-3');
|
|
15
15
|
|
package/stage/4.js
CHANGED
|
@@ -9,6 +9,7 @@ require('../proposals/promise-any');
|
|
|
9
9
|
require('../proposals/relative-indexing-method');
|
|
10
10
|
require('../proposals/string-match-all');
|
|
11
11
|
require('../proposals/string-replace-all-stage-4');
|
|
12
|
+
require('../proposals/well-formed-unicode-strings');
|
|
12
13
|
|
|
13
14
|
var path = require('../internals/path');
|
|
14
15
|
|
package/web/index.js
CHANGED
|
@@ -14,6 +14,8 @@ require('../modules/web.url');
|
|
|
14
14
|
require('../modules/web.url.can-parse');
|
|
15
15
|
require('../modules/web.url.to-json');
|
|
16
16
|
require('../modules/web.url-search-params');
|
|
17
|
+
require('../modules/web.url-search-params.delete');
|
|
18
|
+
require('../modules/web.url-search-params.has');
|
|
17
19
|
require('../modules/web.url-search-params.size');
|
|
18
20
|
var path = require('../internals/path');
|
|
19
21
|
|
package/web/url-search-params.js
CHANGED
package/web/url.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
require('./url-search-params');
|
|
1
2
|
require('../modules/web.url');
|
|
2
3
|
require('../modules/web.url.can-parse');
|
|
3
4
|
require('../modules/web.url.to-json');
|
|
4
|
-
require('../modules/web.url-search-params');
|
|
5
|
-
require('../modules/web.url-search-params.size');
|
|
6
5
|
var path = require('../internals/path');
|
|
7
6
|
|
|
8
7
|
module.exports = path.URL;
|