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.
Files changed (79) hide show
  1. package/actual/function/index.js +1 -0
  2. package/actual/function/metadata.js +3 -0
  3. package/actual/instance/is-well-formed.js +2 -9
  4. package/actual/instance/to-well-formed.js +2 -9
  5. package/actual/string/index.js +1 -0
  6. package/actual/string/is-well-formed.js +4 -1
  7. package/actual/string/to-well-formed.js +4 -1
  8. package/actual/string/virtual/index.js +1 -0
  9. package/actual/string/virtual/is-well-formed.js +4 -1
  10. package/actual/string/virtual/to-well-formed.js +4 -1
  11. package/actual/symbol/index.js +2 -0
  12. package/actual/symbol/metadata.js +5 -0
  13. package/es/index.js +2 -0
  14. package/es/instance/is-well-formed.js +10 -0
  15. package/es/instance/to-well-formed.js +10 -0
  16. package/es/string/index.js +2 -0
  17. package/es/string/is-well-formed.js +3 -0
  18. package/es/string/to-well-formed.js +3 -0
  19. package/es/string/virtual/is-well-formed.js +3 -0
  20. package/es/string/virtual/to-well-formed.js +3 -0
  21. package/features/function/metadata.js +1 -0
  22. package/features/object/group-by.js +1 -0
  23. package/features/promise/with-resolvers.js +1 -0
  24. package/features/symbol/is-registered-symbol.js +1 -0
  25. package/features/symbol/is-well-known-symbol.js +1 -0
  26. package/full/function/metadata.js +3 -0
  27. package/full/index.js +11 -2
  28. package/full/object/group-by.js +6 -0
  29. package/full/object/index.js +1 -0
  30. package/full/promise/index.js +2 -1
  31. package/full/promise/with-resolvers.js +13 -0
  32. package/full/symbol/index.js +5 -4
  33. package/full/symbol/is-registered-symbol.js +5 -0
  34. package/full/symbol/is-well-known-symbol.js +5 -0
  35. package/full/symbol/metadata.js +2 -3
  36. package/internals/array-buffer-transfer.js +6 -4
  37. package/internals/array-group.js +1 -1
  38. package/internals/get-iterator-direct.js +4 -3
  39. package/internals/object-to-array.js +13 -1
  40. package/internals/shared.js +2 -2
  41. package/internals/symbol-is-registered.js +16 -0
  42. package/internals/symbol-is-well-known.js +33 -0
  43. package/internals/url-constructor-detection.js +3 -1
  44. package/modules/es.string.is-well-formed.js +23 -0
  45. package/modules/es.string.to-well-formed.js +43 -0
  46. package/modules/esnext.async-disposable-stack.constructor.js +1 -1
  47. package/modules/esnext.function.metadata.js +13 -0
  48. package/modules/esnext.map.group-by.js +17 -16
  49. package/modules/esnext.object.group-by.js +30 -0
  50. package/modules/esnext.promise.with-resolvers.js +16 -0
  51. package/modules/esnext.string.is-well-formed.js +2 -23
  52. package/modules/esnext.string.to-well-formed.js +2 -42
  53. package/modules/esnext.symbol.is-registered-symbol.js +8 -0
  54. package/modules/esnext.symbol.is-registered.js +4 -15
  55. package/modules/esnext.symbol.is-well-known-symbol.js +9 -0
  56. package/modules/esnext.symbol.is-well-known.js +4 -31
  57. package/modules/web.url-search-params.constructor.js +22 -14
  58. package/modules/web.url-search-params.delete.js +46 -0
  59. package/modules/web.url-search-params.has.js +26 -0
  60. package/package.json +1 -1
  61. package/postinstall.js +1 -1
  62. package/proposals/array-grouping-v2.js +3 -0
  63. package/proposals/decorator-metadata-v2.js +1 -0
  64. package/proposals/promise-with-resolvers.js +2 -0
  65. package/proposals/symbol-predicates-v2.js +3 -0
  66. package/proposals/url.js +1 -5
  67. package/stable/index.js +4 -0
  68. package/stable/instance/is-well-formed.js +3 -0
  69. package/stable/instance/to-well-formed.js +3 -0
  70. package/stable/string/is-well-formed.js +3 -0
  71. package/stable/string/to-well-formed.js +3 -0
  72. package/stable/string/virtual/is-well-formed.js +3 -0
  73. package/stable/string/virtual/to-well-formed.js +3 -0
  74. package/stage/2.js +4 -2
  75. package/stage/3.js +2 -2
  76. package/stage/4.js +1 -0
  77. package/web/index.js +2 -0
  78. package/web/url-search-params.js +2 -0
  79. 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 Map = require('../internals/map-helpers').Map;
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-collection-methods
16
+ // https://github.com/tc39/proposal-array-grouping
14
17
  $({ target: 'Map', stat: true, forced: true }, {
15
- groupBy: function groupBy(iterable, keyDerivative) {
16
- var C = isCallable(this) ? this : Map;
17
- var newMap = new C();
18
- aCallable(keyDerivative);
19
- var has = aCallable(newMap.has);
20
- var get = aCallable(newMap.get);
21
- var set = aCallable(newMap.set);
22
- iterate(iterable, function (element) {
23
- var derivedKey = keyDerivative(element);
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 newMap;
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
- 'use strict';
2
- var $ = require('../internals/export');
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
- 'use strict';
2
- var $ = require('../internals/export');
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 getBuiltIn = require('../internals/get-built-in');
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-isregistered
11
- $({ target: 'Symbol', stat: true }, {
12
- isRegistered: function isRegistered(value) {
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 shared = require('../internals/shared');
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-iswellknown
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: function isWellKnown(value) {
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.length = state.entries.length;
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
- if (entries[index].key === key) splice(entries, index, 1);
233
- else index++;
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.length = entries.length;
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
- if (entries[index++].key === key) return true;
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.length = entries.length;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-js",
3
- "version": "3.30.2",
3
+ "version": "3.31.0",
4
4
  "description": "Standard library",
5
5
  "keywords": [
6
6
  "ES3",
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 of core-js:\u001B[0m\n' +
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' +
@@ -0,0 +1,3 @@
1
+ // https://github.com/tc39/proposal-array-grouping
2
+ require('../modules/esnext.map.group-by');
3
+ require('../modules/esnext.object.group-by');
@@ -1,2 +1,3 @@
1
1
  // https://github.com/tc39/proposal-decorator-metadata
2
+ require('../modules/esnext.function.metadata');
2
3
  require('../modules/esnext.symbol.metadata');
@@ -0,0 +1,2 @@
1
+ // https://github.com/tc39/proposal-promise-with-resolvers
2
+ require('../modules/esnext.promise.with-resolvers');
@@ -0,0 +1,3 @@
1
+ // https://github.com/tc39/proposal-symbol-predicates
2
+ require('../modules/esnext.symbol.is-registered-symbol');
3
+ require('../modules/esnext.symbol.is-well-known-symbol');
package/proposals/url.js CHANGED
@@ -1,6 +1,2 @@
1
1
  // https://github.com/jasnell/proposal-url
2
- require('../modules/web.url');
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');
@@ -0,0 +1,3 @@
1
+ var parent = require('../../es/instance/is-well-formed');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../es/instance/to-well-formed');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../es/string/is-well-formed');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../es/string/to-well-formed');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../../es/string/virtual/is-well-formed');
2
+
3
+ module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../../es/string/virtual/to-well-formed');
2
+
3
+ module.exports = parent;
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
 
@@ -1,4 +1,6 @@
1
1
  require('../modules/web.url-search-params');
2
+ require('../modules/web.url-search-params.delete');
3
+ require('../modules/web.url-search-params.has');
2
4
  require('../modules/web.url-search-params.size');
3
5
  var path = require('../internals/path');
4
6
 
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;