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.
Files changed (70) hide show
  1. package/README.md +1 -1
  2. package/actual/array/index.js +1 -1
  3. package/actual/instance/unshift.js +1 -1
  4. package/actual/url/can-parse.js +3 -0
  5. package/es/typed-array/to-reversed.js +1 -1
  6. package/es/typed-array/with.js +1 -1
  7. package/features/url/can-parse.js +1 -0
  8. package/full/array/index.js +1 -1
  9. package/full/array/to-reversed.js +2 -3
  10. package/full/array/to-sorted.js +2 -4
  11. package/full/array/to-spliced.js +2 -3
  12. package/full/array/with.js +2 -3
  13. package/full/index.js +2 -0
  14. package/full/instance/replace-all.js +3 -0
  15. package/full/instance/unshift.js +1 -1
  16. package/full/url/can-parse.js +3 -0
  17. package/index.js +1 -1
  18. package/internals/add-disposable-resource.js +2 -4
  19. package/internals/async-iterator-iteration.js +3 -2
  20. package/internals/async-iterator-map.js +3 -1
  21. package/internals/get-async-iterator-flattenable.js +1 -1
  22. package/internals/get-iterator-direct.js +1 -2
  23. package/internals/get-iterator-flattenable.js +1 -2
  24. package/internals/iterator-map.js +3 -1
  25. package/internals/numeric-range-iterator.js +17 -20
  26. package/internals/set-helpers.js +1 -3
  27. package/internals/set-intersection.js +1 -16
  28. package/internals/shared.js +2 -2
  29. package/internals/to-set-like.js +1 -1
  30. package/internals/url-constructor-detection.js +2 -0
  31. package/modules/es.array.find-index.js +1 -0
  32. package/modules/es.array.find.js +1 -0
  33. package/modules/es.typed-array.set.js +4 -4
  34. package/modules/esnext.async-disposable-stack.constructor.js +11 -10
  35. package/modules/esnext.async-iterator.drop.js +3 -1
  36. package/modules/esnext.async-iterator.filter.js +3 -1
  37. package/modules/esnext.async-iterator.flat-map.js +3 -1
  38. package/modules/esnext.async-iterator.reduce.js +2 -1
  39. package/modules/esnext.async-iterator.take.js +3 -1
  40. package/modules/esnext.disposable-stack.constructor.js +11 -10
  41. package/modules/esnext.iterator.drop.js +3 -1
  42. package/modules/esnext.iterator.every.js +3 -1
  43. package/modules/esnext.iterator.filter.js +3 -1
  44. package/modules/esnext.iterator.find.js +3 -1
  45. package/modules/esnext.iterator.flat-map.js +3 -1
  46. package/modules/esnext.iterator.for-each.js +3 -1
  47. package/modules/esnext.iterator.reduce.js +3 -1
  48. package/modules/esnext.iterator.some.js +3 -1
  49. package/modules/esnext.iterator.take.js +3 -1
  50. package/modules/esnext.iterator.to-array.js +2 -1
  51. package/modules/esnext.iterator.to-async.js +2 -1
  52. package/modules/esnext.json.parse.js +9 -19
  53. package/modules/esnext.set.intersection.v2.js +7 -1
  54. package/modules/web.structured-clone.js +4 -3
  55. package/modules/web.url-search-params.constructor.js +16 -1
  56. package/modules/web.url-search-params.size.js +21 -0
  57. package/modules/web.url.can-parse.js +21 -0
  58. package/package.json +1 -1
  59. package/postinstall.js +1 -0
  60. package/proposals/decorator-metadata-v2.js +2 -0
  61. package/proposals/decorator-metadata.js +1 -0
  62. package/proposals/url.js +2 -0
  63. package/stable/index.js +2 -0
  64. package/stable/instance/unshift.js +1 -1
  65. package/stable/url/can-parse.js +5 -0
  66. package/stage/1.js +0 -1
  67. package/stage/2.js +3 -1
  68. package/web/index.js +2 -0
  69. package/web/url-search-params.js +1 -0
  70. 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
 
@@ -1,5 +1,5 @@
1
1
  var parent = require('../../stable/array');
2
- require('../../modules/es.map');
2
+ require('../../modules/es.promise');
3
3
  require('../../modules/es.object.to-string');
4
4
  require('../../modules/esnext.array.from-async');
5
5
  require('../../modules/esnext.array.group');
@@ -1,3 +1,3 @@
1
- var parent = require('../../stable/instance/push');
1
+ var parent = require('../../stable/instance/unshift');
2
2
 
3
3
  module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../stable/url/can-parse');
2
+
3
+ module.exports = parent;
@@ -1 +1 @@
1
- require('../../modules/esnext.typed-array.to-reversed');
1
+ require('../../modules/es.typed-array.to-reversed');
@@ -1 +1 @@
1
- require('../../modules/esnext.typed-array.with');
1
+ require('../../modules/es.typed-array.with');
@@ -0,0 +1 @@
1
+ module.exports = require('../../full/url/can-parse');
@@ -1,5 +1,5 @@
1
1
  var parent = require('../../actual/array');
2
- require('../../modules/es.promise');
2
+ require('../../modules/es.map');
3
3
  // TODO: Remove from `core-js@4`
4
4
  require('../../modules/esnext.array.at');
5
5
  // TODO: Remove from `core-js@4`
@@ -1,4 +1,3 @@
1
- require('../../modules/esnext.array.to-reversed');
2
- var entryUnbind = require('../../internals/entry-unbind');
1
+ var parent = require('../../actual/array/to-reversed');
3
2
 
4
- module.exports = entryUnbind('Array', 'toReversed');
3
+ module.exports = parent;
@@ -1,5 +1,3 @@
1
- require('../../modules/es.array.sort');
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 = entryUnbind('Array', 'toSorted');
3
+ module.exports = parent;
@@ -1,4 +1,3 @@
1
- require('../../modules/esnext.array.to-spliced');
2
- var entryUnbind = require('../../internals/entry-unbind');
1
+ var parent = require('../../actual/array/to-spliced');
3
2
 
4
- module.exports = entryUnbind('Array', 'toSpliced');
3
+ module.exports = parent;
@@ -1,4 +1,3 @@
1
- require('../../modules/esnext.array.with');
2
- var entryUnbind = require('../../internals/entry-unbind');
1
+ var parent = require('../../actual/array/with');
3
2
 
4
- module.exports = entryUnbind('Array', 'with');
3
+ module.exports = parent;
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');
@@ -1,3 +1,6 @@
1
+ // TODO: remove from `core-js@4`
2
+ require('../../modules/esnext.string.replace-all');
3
+
1
4
  var parent = require('../../actual/instance/replace-all');
2
5
 
3
6
  module.exports = parent;
@@ -1,3 +1,3 @@
1
- var parent = require('../../actual/instance/push');
1
+ var parent = require('../../actual/instance/unshift');
2
2
 
3
3
  module.exports = parent;
@@ -0,0 +1,3 @@
1
+ var parent = require('../../actual/url/can-parse');
2
+
3
+ module.exports = parent;
package/index.js CHANGED
@@ -1 +1 @@
1
- module.exports = require('./features');
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(anObject(V), hint, method);
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: aCallable(mapper)
55
+ mapper: mapper
54
56
  });
55
57
  };
@@ -18,7 +18,7 @@ module.exports = function from(obj) {
18
18
  method = getIteratorMethod(object);
19
19
  alreadyAsync = false;
20
20
  }
21
- if (isCallable(method)) {
21
+ if (method !== undefined) {
22
22
  iterator = call(method, object);
23
23
  } else {
24
24
  iterator = object;
@@ -1,9 +1,8 @@
1
1
  var aCallable = require('../internals/a-callable');
2
- var anObject = require('../internals/an-object');
3
2
 
4
3
  module.exports = function (obj) {
5
4
  return {
6
5
  iterator: obj,
7
- next: aCallable(anObject(obj).next)
6
+ next: aCallable(obj.next)
8
7
  };
9
8
  };
@@ -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(isCallable(method) ? call(method, object) : object));
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: aCallable(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 defineProperties = require('../internals/object-define-properties').f;
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 lagacy methods in `core-js@4`
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
- inclusiveEnd: inclusiveEnd,
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.inclusiveEnd;
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 getter = function (fn) {
89
- return { get: fn, set: function () { /* empty */ }, configurable: true, enumerable: false };
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
- defineProperties($RangeIterator.prototype, {
94
- start: getter(function () {
95
- return getInternalState(this).start;
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;
@@ -9,7 +9,5 @@ module.exports = {
9
9
  add: uncurryThis(SetPrototype.add),
10
10
  has: uncurryThis(SetPrototype.has),
11
11
  remove: uncurryThis(SetPrototype['delete']),
12
- proto: SetPrototype,
13
- $has: SetPrototype.has,
14
- $keys: SetPrototype.keys
12
+ proto: SetPrototype
15
13
  };
@@ -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
- // observable side effects
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);
@@ -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.28.0',
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.28.0/LICENSE',
10
+ license: 'https://github.com/zloirock/core-js/blob/v3.30.0/LICENSE',
11
11
  source: 'https://github.com/zloirock/core-js'
12
12
  });
@@ -15,5 +15,5 @@ var isSetLike = function (it) {
15
15
  // fallback old -> new set methods proposal arguments
16
16
  module.exports = function (it) {
17
17
  if (isSetLike(it)) return it;
18
- if (isIterable(it)) return new Set(it);
18
+ return isIterable(it) ? new Set(it) : it;
19
19
  };
@@ -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
@@ -7,6 +7,7 @@ var FIND = 'find';
7
7
  var SKIPS_HOLES = true;
8
8
 
9
9
  // Shouldn't skip holes
10
+ // eslint-disable-next-line es/no-array-prototype-find -- testing
10
11
  if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
11
12
 
12
13
  // `Array.prototype.find` method
@@ -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 WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {
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 = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {
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 (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);
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
- }, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);
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 ALREADY_DISPOSED = ASYNC_DISPOSABLE_STACK + ' already disposed';
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
- var internalState = getAsyncDisposableStackInternalState(this);
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 = getAsyncDisposableStackInternalState(this);
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 = getAsyncDisposableStackInternalState(this);
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 = getAsyncDisposableStackInternalState(this);
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: toPositiveInteger(notANaN(+limit))
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: aCallable(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: aCallable(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: toPositiveInteger(notANaN(+limit))
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 ALREADY_DISPOSED = DISPOSABLE_STACK + ' already disposed';
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
- var internalState = getDisposableStackInternalState(this);
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 = getDisposableStackInternalState(this);
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 = getDisposableStackInternalState(this);
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 = getDisposableStackInternalState(this);
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: toPositiveInteger(notANaN(+limit))
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: aCallable(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: aCallable(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
- var record = getIteratorDirect(this);
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: toPositiveInteger(notANaN(+limit))
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
- var result;
109
- if (exec(IS_NUMBER_START, chr)) result = fork.number();
110
- else switch (chr) {
108
+ if (exec(IS_NUMBER_START, chr)) return fork.number();
109
+ switch (chr) {
111
110
  case '{':
112
- result = fork.object();
113
- break;
111
+ return fork.object();
114
112
  case '[':
115
- result = fork.array();
116
- break;
113
+ return fork.array();
117
114
  case '"':
118
- result = fork.string();
119
- break;
115
+ return fork.string();
120
116
  case 't':
121
- result = fork.keyword(true);
122
- break;
117
+ return fork.keyword(true);
123
118
  case 'f':
124
- result = fork.keyword(false);
125
- break;
119
+ return fork.keyword(false);
126
120
  case 'n':
127
- result = fork.keyword(null);
128
- break;
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: !setMethodAcceptSetLike('intersection') }, {
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
- cloned = new ArrayBuffer(length);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-js",
3
- "version": "3.28.0",
3
+ "version": "3.30.0",
4
4
  "description": "Standard library",
5
5
  "keywords": [
6
6
  "ES3",
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
 
@@ -0,0 +1,2 @@
1
+ // https://github.com/tc39/proposal-decorator-metadata
2
+ require('../modules/esnext.symbol.metadata');
@@ -1,2 +1,3 @@
1
+ // TODO: Remove from `core-js@4`
1
2
  // https://github.com/tc39/proposal-decorator-metadata
2
3
  require('../modules/esnext.symbol.metadata-key');
package/proposals/url.js CHANGED
@@ -1,4 +1,6 @@
1
1
  // https://github.com/jasnell/proposal-url
2
2
  require('../modules/web.url');
3
+ require('../modules/web.url.can-parse');
3
4
  require('../modules/web.url.to-json');
4
5
  require('../modules/web.url-search-params');
6
+ require('../modules/web.url-search-params.size');
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');
@@ -1,3 +1,3 @@
1
- var parent = require('../../es/instance/push');
1
+ var parent = require('../../es/instance/unshift');
2
2
 
3
3
  module.exports = parent;
@@ -0,0 +1,5 @@
1
+ require('../../modules/web.url');
2
+ require('../../modules/web.url.can-parse');
3
+ var path = require('../../internals/path');
4
+
5
+ module.exports = path.URL.canParse;
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;
@@ -1,4 +1,5 @@
1
1
  require('../modules/web.url-search-params');
2
+ require('../modules/web.url-search-params.size');
2
3
  var path = require('../internals/path');
3
4
 
4
5
  module.exports = path.URLSearchParams;
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;