core-js 3.22.3 → 3.22.8

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 (157) hide show
  1. package/actual/typed-array/at.js +1 -1
  2. package/full/typed-array/at.js +1 -1
  3. package/internals/a-callable.js +2 -3
  4. package/internals/a-constructor.js +2 -3
  5. package/internals/a-possible-prototype.js +3 -4
  6. package/internals/add-to-unscopables.js +2 -2
  7. package/internals/an-instance.js +2 -3
  8. package/internals/an-object.js +3 -4
  9. package/internals/array-buffer-view-core.js +4 -4
  10. package/internals/array-buffer.js +3 -3
  11. package/internals/array-copy-within.js +2 -1
  12. package/internals/array-from.js +3 -4
  13. package/internals/array-group-by.js +2 -3
  14. package/internals/array-reduce.js +2 -3
  15. package/internals/array-slice-simple.js +2 -3
  16. package/internals/array-species-constructor.js +3 -4
  17. package/internals/array-to-spliced.js +2 -4
  18. package/internals/array-with.js +2 -3
  19. package/internals/async-from-sync-iterator.js +2 -2
  20. package/internals/async-iterator-create-proxy.js +2 -2
  21. package/internals/async-iterator-iteration.js +2 -7
  22. package/internals/async-iterator-prototype.js +2 -2
  23. package/internals/classof.js +2 -3
  24. package/internals/collection-strong.js +3 -3
  25. package/internals/collection-weak.js +3 -3
  26. package/internals/collection.js +3 -3
  27. package/internals/composite-key.js +3 -4
  28. package/internals/date-to-iso-string.js +2 -3
  29. package/internals/date-to-primitive.js +2 -3
  30. package/internals/define-built-in-accessor.js +8 -0
  31. package/internals/define-built-in.js +20 -0
  32. package/internals/define-built-ins.js +6 -0
  33. package/internals/{set-global.js → define-global-property.js} +0 -0
  34. package/internals/define-iterator.js +4 -4
  35. package/internals/delete-property-or-throw.js +8 -0
  36. package/internals/does-not-exceed-safe-integer.js +7 -0
  37. package/internals/export.js +18 -19
  38. package/internals/fix-regexp-well-known-symbol-logic.js +3 -3
  39. package/internals/flatten-into-array.js +2 -4
  40. package/internals/function-bind.js +3 -4
  41. package/internals/get-iterator.js +2 -3
  42. package/internals/ieee754.js +2 -4
  43. package/internals/indexed-object.js +4 -5
  44. package/internals/is-iterable.js +2 -3
  45. package/internals/is-symbol.js +2 -3
  46. package/internals/iterate.js +2 -3
  47. package/internals/iterator-create-proxy.js +2 -2
  48. package/internals/iterators-core.js +2 -2
  49. package/internals/make-built-in.js +48 -0
  50. package/internals/map-upsert.js +2 -3
  51. package/internals/math-expm1.js +2 -1
  52. package/internals/math-fround.js +3 -2
  53. package/internals/math-log1p.js +2 -1
  54. package/internals/math-sign.js +2 -1
  55. package/internals/math-trunc.js +10 -0
  56. package/internals/not-a-regexp.js +2 -3
  57. package/internals/numeric-range-iterator.js +7 -8
  58. package/internals/object-define-property.js +2 -3
  59. package/internals/object-get-prototype-of.js +5 -5
  60. package/internals/ordinary-to-primitive.js +2 -3
  61. package/internals/regexp-exec-abstract.js +2 -3
  62. package/internals/require-object-coercible.js +2 -4
  63. package/internals/shared-store.js +2 -2
  64. package/internals/shared.js +2 -2
  65. package/internals/string-punycode-to-ascii.js +3 -4
  66. package/internals/string-repeat.js +2 -3
  67. package/internals/symbol-define-to-primitive.js +3 -3
  68. package/internals/to-big-int.js +12 -0
  69. package/internals/to-index.js +2 -3
  70. package/internals/to-integer-or-infinity.js +3 -4
  71. package/internals/to-object.js +2 -3
  72. package/internals/to-offset.js +2 -3
  73. package/internals/to-positive-integer.js +2 -3
  74. package/internals/to-primitive.js +2 -3
  75. package/internals/to-string.js +2 -3
  76. package/internals/try-to-string.js +2 -4
  77. package/internals/typed-array-constructor.js +3 -3
  78. package/internals/validate-arguments-length.js +2 -4
  79. package/modules/es.aggregate-error.cause.js +1 -1
  80. package/modules/es.aggregate-error.constructor.js +6 -7
  81. package/modules/es.array-buffer.constructor.js +1 -1
  82. package/modules/es.array.concat.js +4 -7
  83. package/modules/es.array.of.js +4 -4
  84. package/modules/es.array.slice.js +4 -5
  85. package/modules/es.array.sort.js +2 -1
  86. package/modules/es.array.splice.js +7 -11
  87. package/modules/es.data-view.constructor.js +1 -1
  88. package/modules/es.date.now.js +3 -4
  89. package/modules/es.date.to-json.js +1 -1
  90. package/modules/es.date.to-primitive.js +2 -2
  91. package/modules/es.date.to-string.js +2 -2
  92. package/modules/es.error.cause.js +2 -2
  93. package/modules/es.error.to-string.js +2 -2
  94. package/modules/es.function.has-instance.js +3 -2
  95. package/modules/es.json.stringify.js +1 -1
  96. package/modules/es.math.acosh.js +4 -3
  97. package/modules/es.math.asinh.js +2 -1
  98. package/modules/es.math.atanh.js +2 -1
  99. package/modules/es.math.cbrt.js +2 -1
  100. package/modules/es.math.clz32.js +2 -1
  101. package/modules/es.math.hypot.js +1 -1
  102. package/modules/es.math.sinh.js +2 -1
  103. package/modules/es.math.tanh.js +4 -3
  104. package/modules/es.math.trunc.js +2 -6
  105. package/modules/es.number.constructor.js +2 -2
  106. package/modules/es.number.to-exponential.js +7 -8
  107. package/modules/es.number.to-fixed.js +5 -6
  108. package/modules/es.object.assign.js +1 -1
  109. package/modules/es.object.to-string.js +2 -2
  110. package/modules/es.promise.catch.js +2 -2
  111. package/modules/es.promise.constructor.js +17 -21
  112. package/modules/es.promise.finally.js +2 -2
  113. package/modules/es.regexp.constructor.js +2 -2
  114. package/modules/es.regexp.dot-all.js +5 -6
  115. package/modules/es.regexp.flags.js +2 -2
  116. package/modules/es.regexp.sticky.js +5 -6
  117. package/modules/es.regexp.test.js +2 -3
  118. package/modules/es.regexp.to-string.js +2 -2
  119. package/modules/es.string.from-code-point.js +3 -4
  120. package/modules/es.string.match-all.js +4 -5
  121. package/modules/es.string.replace-all.js +2 -3
  122. package/modules/es.symbol.constructor.js +5 -5
  123. package/modules/es.symbol.description.js +1 -1
  124. package/modules/es.typed-array.fill.js +18 -9
  125. package/modules/es.weak-map.constructor.js +2 -2
  126. package/modules/esnext.array.last-index.js +2 -2
  127. package/modules/esnext.array.last-item.js +2 -2
  128. package/modules/esnext.array.to-reversed.js +2 -3
  129. package/modules/esnext.array.to-sorted.js +2 -3
  130. package/modules/esnext.array.to-spliced.js +3 -4
  131. package/modules/esnext.array.with.js +2 -3
  132. package/modules/esnext.async-iterator.constructor.js +1 -1
  133. package/modules/esnext.async-iterator.reduce.js +2 -3
  134. package/modules/esnext.composite-key.js +2 -3
  135. package/modules/esnext.iterator.constructor.js +1 -1
  136. package/modules/esnext.iterator.flat-map.js +2 -3
  137. package/modules/esnext.iterator.reduce.js +2 -3
  138. package/modules/esnext.map.merge.js +1 -1
  139. package/modules/esnext.map.reduce.js +2 -3
  140. package/modules/esnext.map.update.js +2 -3
  141. package/modules/esnext.math.seeded-prng.js +2 -3
  142. package/modules/esnext.math.signbit.js +3 -1
  143. package/modules/esnext.number.from-string.js +8 -9
  144. package/modules/esnext.observable.constructor.js +12 -12
  145. package/modules/esnext.set.reduce.js +2 -3
  146. package/modules/esnext.string.cooked.js +2 -3
  147. package/modules/esnext.typed-array.to-spliced.js +1 -1
  148. package/modules/esnext.typed-array.with.js +9 -0
  149. package/modules/web.dom-exception.constructor.js +10 -10
  150. package/modules/web.dom-exception.stack.js +1 -1
  151. package/modules/web.queue-microtask.js +1 -1
  152. package/modules/web.structured-clone.js +21 -9
  153. package/modules/web.url-search-params.constructor.js +8 -8
  154. package/modules/web.url.constructor.js +43 -45
  155. package/package.json +2 -3
  156. package/internals/redefine-all.js +0 -6
  157. package/internals/redefine.js +0 -46
@@ -4,6 +4,7 @@ var isObject = require('../internals/is-object');
4
4
  var definePropertyModule = require('../internals/object-define-property');
5
5
  var getPrototypeOf = require('../internals/object-get-prototype-of');
6
6
  var wellKnownSymbol = require('../internals/well-known-symbol');
7
+ var makeBuiltIn = require('../internals/make-built-in');
7
8
 
8
9
  var HAS_INSTANCE = wellKnownSymbol('hasInstance');
9
10
  var FunctionPrototype = Function.prototype;
@@ -11,12 +12,12 @@ var FunctionPrototype = Function.prototype;
11
12
  // `Function.prototype[@@hasInstance]` method
12
13
  // https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance
13
14
  if (!(HAS_INSTANCE in FunctionPrototype)) {
14
- definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {
15
+ definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) {
15
16
  if (!isCallable(this) || !isObject(O)) return false;
16
17
  var P = this.prototype;
17
18
  if (!isObject(P)) return O instanceof this;
18
19
  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
19
20
  while (O = getPrototypeOf(O)) if (P === O) return true;
20
21
  return false;
21
- } });
22
+ }, HAS_INSTANCE) });
22
23
  }
@@ -61,7 +61,7 @@ var fixIllFormed = function (match, offset, string) {
61
61
  if ($stringify) {
62
62
  // `JSON.stringify` method
63
63
  // https://tc39.es/ecma262/#sec-json.stringify
64
- $({ target: 'JSON', stat: true, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {
64
+ $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {
65
65
  // eslint-disable-next-line no-unused-vars -- required for `.length`
66
66
  stringify: function stringify(it, replacer, space) {
67
67
  var args = arraySlice(arguments);
@@ -17,8 +17,9 @@ var FORCED = !$acosh
17
17
  // https://tc39.es/ecma262/#sec-math.acosh
18
18
  $({ target: 'Math', stat: true, forced: FORCED }, {
19
19
  acosh: function acosh(x) {
20
- return (x = +x) < 1 ? NaN : x > 94906265.62425156
21
- ? log(x) + LN2
22
- : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
20
+ var n = +x;
21
+ return n < 1 ? NaN : n > 94906265.62425156
22
+ ? log(n) + LN2
23
+ : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1));
23
24
  }
24
25
  });
@@ -6,7 +6,8 @@ var log = Math.log;
6
6
  var sqrt = Math.sqrt;
7
7
 
8
8
  function asinh(x) {
9
- return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));
9
+ var n = +x;
10
+ return !isFinite(n) || n == 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1));
10
11
  }
11
12
 
12
13
  // `Math.asinh` method
@@ -9,6 +9,7 @@ var log = Math.log;
9
9
  // Tor Browser bug: Math.atanh(-0) -> 0
10
10
  $({ target: 'Math', stat: true, forced: !($atanh && 1 / $atanh(-0) < 0) }, {
11
11
  atanh: function atanh(x) {
12
- return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;
12
+ var n = +x;
13
+ return n == 0 ? n : log((1 + n) / (1 - n)) / 2;
13
14
  }
14
15
  });
@@ -8,6 +8,7 @@ var pow = Math.pow;
8
8
  // https://tc39.es/ecma262/#sec-math.cbrt
9
9
  $({ target: 'Math', stat: true }, {
10
10
  cbrt: function cbrt(x) {
11
- return sign(x = +x) * pow(abs(x), 1 / 3);
11
+ var n = +x;
12
+ return sign(n) * pow(abs(n), 1 / 3);
12
13
  }
13
14
  });
@@ -8,6 +8,7 @@ var LOG2E = Math.LOG2E;
8
8
  // https://tc39.es/ecma262/#sec-math.clz32
9
9
  $({ target: 'Math', stat: true }, {
10
10
  clz32: function clz32(x) {
11
- return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;
11
+ var n = x >>> 0;
12
+ return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32;
12
13
  }
13
14
  });
@@ -11,7 +11,7 @@ var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;
11
11
 
12
12
  // `Math.hypot` method
13
13
  // https://tc39.es/ecma262/#sec-math.hypot
14
- $({ target: 'Math', stat: true, forced: BUGGY }, {
14
+ $({ target: 'Math', stat: true, arity: 2, forced: BUGGY }, {
15
15
  // eslint-disable-next-line no-unused-vars -- required for `.length`
16
16
  hypot: function hypot(value1, value2) {
17
17
  var sum = 0;
@@ -16,6 +16,7 @@ var FORCED = fails(function () {
16
16
  // V8 near Chromium 38 has a problem with very small numbers
17
17
  $({ target: 'Math', stat: true, forced: FORCED }, {
18
18
  sinh: function sinh(x) {
19
- return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);
19
+ var n = +x;
20
+ return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2);
20
21
  }
21
22
  });
@@ -7,8 +7,9 @@ var exp = Math.exp;
7
7
  // https://tc39.es/ecma262/#sec-math.tanh
8
8
  $({ target: 'Math', stat: true }, {
9
9
  tanh: function tanh(x) {
10
- var a = expm1(x = +x);
11
- var b = expm1(-x);
12
- return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
10
+ var n = +x;
11
+ var a = expm1(n);
12
+ var b = expm1(-n);
13
+ return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(n) + exp(-n));
13
14
  }
14
15
  });
@@ -1,12 +1,8 @@
1
1
  var $ = require('../internals/export');
2
-
3
- var ceil = Math.ceil;
4
- var floor = Math.floor;
2
+ var trunc = require('../internals/math-trunc');
5
3
 
6
4
  // `Math.trunc` method
7
5
  // https://tc39.es/ecma262/#sec-math.trunc
8
6
  $({ target: 'Math', stat: true }, {
9
- trunc: function trunc(it) {
10
- return (it > 0 ? floor : ceil)(it);
11
- }
7
+ trunc: trunc
12
8
  });
@@ -3,7 +3,7 @@ var DESCRIPTORS = require('../internals/descriptors');
3
3
  var global = require('../internals/global');
4
4
  var uncurryThis = require('../internals/function-uncurry-this');
5
5
  var isForced = require('../internals/is-forced');
6
- var redefine = require('../internals/redefine');
6
+ var defineBuiltIn = require('../internals/define-built-in');
7
7
  var hasOwn = require('../internals/has-own-property');
8
8
  var inheritIfRequired = require('../internals/inherit-if-required');
9
9
  var isPrototypeOf = require('../internals/object-is-prototype-of');
@@ -84,5 +84,5 @@ if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumb
84
84
  }
85
85
  NumberWrapper.prototype = NumberPrototype;
86
86
  NumberPrototype.constructor = NumberWrapper;
87
- redefine(global, NUMBER, NumberWrapper);
87
+ defineBuiltIn(global, NUMBER, NumberWrapper, { constructor: true });
88
88
  }
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var global = require('../internals/global');
4
3
  var uncurryThis = require('../internals/function-uncurry-this');
5
4
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
6
5
  var thisNumberValue = require('../internals/this-number-value');
@@ -8,9 +7,9 @@ var $repeat = require('../internals/string-repeat');
8
7
  var log10 = require('../internals/math-log10');
9
8
  var fails = require('../internals/fails');
10
9
 
11
- var RangeError = global.RangeError;
12
- var String = global.String;
13
- var isFinite = global.isFinite;
10
+ var $RangeError = RangeError;
11
+ var $String = String;
12
+ var $isFinite = isFinite;
14
13
  var abs = Math.abs;
15
14
  var floor = Math.floor;
16
15
  var pow = Math.pow;
@@ -51,9 +50,9 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
51
50
  var x = thisNumberValue(this);
52
51
  if (fractionDigits === undefined) return un$ToExponential(x);
53
52
  var f = toIntegerOrInfinity(fractionDigits);
54
- if (!isFinite(x)) return String(x);
53
+ if (!$isFinite(x)) return String(x);
55
54
  // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation
56
- if (f < 0 || f > 20) throw RangeError('Incorrect fraction digits');
55
+ if (f < 0 || f > 20) throw $RangeError('Incorrect fraction digits');
57
56
  if (ROUNDS_PROPERLY) return un$ToExponential(x, f);
58
57
  var s = '';
59
58
  var m = '';
@@ -82,7 +81,7 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
82
81
  n /= 10;
83
82
  e += 1;
84
83
  }
85
- m = String(n);
84
+ m = $String(n);
86
85
  }
87
86
  if (f !== 0) {
88
87
  m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1);
@@ -92,7 +91,7 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
92
91
  d = '0';
93
92
  } else {
94
93
  c = e > 0 ? '+' : '-';
95
- d = String(abs(e));
94
+ d = $String(abs(e));
96
95
  }
97
96
  m += 'e' + c + d;
98
97
  return s + m;
@@ -1,14 +1,13 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var global = require('../internals/global');
4
3
  var uncurryThis = require('../internals/function-uncurry-this');
5
4
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
6
5
  var thisNumberValue = require('../internals/this-number-value');
7
6
  var $repeat = require('../internals/string-repeat');
8
7
  var fails = require('../internals/fails');
9
8
 
10
- var RangeError = global.RangeError;
11
- var String = global.String;
9
+ var $RangeError = RangeError;
10
+ var $String = String;
12
11
  var floor = Math.floor;
13
12
  var repeat = uncurryThis($repeat);
14
13
  var stringSlice = uncurryThis(''.slice);
@@ -56,7 +55,7 @@ var dataToString = function (data) {
56
55
  var s = '';
57
56
  while (--index >= 0) {
58
57
  if (s !== '' || index === 0 || data[index] !== 0) {
59
- var t = String(data[index]);
58
+ var t = $String(data[index]);
60
59
  s = s === '' ? t : s + repeat('0', 7 - t.length) + t;
61
60
  }
62
61
  } return s;
@@ -84,10 +83,10 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
84
83
  var e, z, j, k;
85
84
 
86
85
  // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation
87
- if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');
86
+ if (fractDigits < 0 || fractDigits > 20) throw $RangeError('Incorrect fraction digits');
88
87
  // eslint-disable-next-line no-self-compare -- NaN check
89
88
  if (number != number) return 'NaN';
90
- if (number <= -1e21 || number >= 1e21) return String(number);
89
+ if (number <= -1e21 || number >= 1e21) return $String(number);
91
90
  if (number < 0) {
92
91
  sign = '-';
93
92
  number = -number;
@@ -4,6 +4,6 @@ var assign = require('../internals/object-assign');
4
4
  // `Object.assign` method
5
5
  // https://tc39.es/ecma262/#sec-object.assign
6
6
  // eslint-disable-next-line es-x/no-object-assign -- required for testing
7
- $({ target: 'Object', stat: true, forced: Object.assign !== assign }, {
7
+ $({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {
8
8
  assign: assign
9
9
  });
@@ -1,9 +1,9 @@
1
1
  var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
2
- var redefine = require('../internals/redefine');
2
+ var defineBuiltIn = require('../internals/define-built-in');
3
3
  var toString = require('../internals/object-to-string');
4
4
 
5
5
  // `Object.prototype.toString` method
6
6
  // https://tc39.es/ecma262/#sec-object.prototype.tostring
7
7
  if (!TO_STRING_TAG_SUPPORT) {
8
- redefine(Object.prototype, 'toString', toString, { unsafe: true });
8
+ defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });
9
9
  }
@@ -5,7 +5,7 @@ var FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detec
5
5
  var NativePromiseConstructor = require('../internals/promise-native-constructor');
6
6
  var getBuiltIn = require('../internals/get-built-in');
7
7
  var isCallable = require('../internals/is-callable');
8
- var redefine = require('../internals/redefine');
8
+ var defineBuiltIn = require('../internals/define-built-in');
9
9
 
10
10
  var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
11
11
 
@@ -21,6 +21,6 @@ $({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: tr
21
21
  if (!IS_PURE && isCallable(NativePromiseConstructor)) {
22
22
  var method = getBuiltIn('Promise').prototype['catch'];
23
23
  if (NativePromisePrototype['catch'] !== method) {
24
- redefine(NativePromisePrototype, 'catch', method, { unsafe: true });
24
+ defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });
25
25
  }
26
26
  }
@@ -4,8 +4,7 @@ var IS_PURE = require('../internals/is-pure');
4
4
  var IS_NODE = require('../internals/engine-is-node');
5
5
  var global = require('../internals/global');
6
6
  var call = require('../internals/function-call');
7
- var redefine = require('../internals/redefine');
8
- var redefineAll = require('../internals/redefine-all');
7
+ var defineBuiltIn = require('../internals/define-built-in');
9
8
  var setPrototypeOf = require('../internals/object-set-prototype-of');
10
9
  var setToStringTag = require('../internals/set-to-string-tag');
11
10
  var setSpecies = require('../internals/set-species');
@@ -225,23 +224,20 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
225
224
  });
226
225
  };
227
226
 
228
- Internal.prototype = redefineAll(PromisePrototype, {
229
- // `Promise.prototype.then` method
230
- // https://tc39.es/ecma262/#sec-promise.prototype.then
231
- // eslint-disable-next-line unicorn/no-thenable -- safe
232
- then: function then(onFulfilled, onRejected) {
233
- var state = getInternalPromiseState(this);
234
- var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
235
- state.parent = true;
236
- reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
237
- reaction.fail = isCallable(onRejected) && onRejected;
238
- reaction.domain = IS_NODE ? process.domain : undefined;
239
- if (state.state == PENDING) state.reactions.add(reaction);
240
- else microtask(function () {
241
- callReaction(reaction, state);
242
- });
243
- return reaction.promise;
244
- }
227
+ // `Promise.prototype.then` method
228
+ // https://tc39.es/ecma262/#sec-promise.prototype.then
229
+ Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {
230
+ var state = getInternalPromiseState(this);
231
+ var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
232
+ state.parent = true;
233
+ reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
234
+ reaction.fail = isCallable(onRejected) && onRejected;
235
+ reaction.domain = IS_NODE ? process.domain : undefined;
236
+ if (state.state == PENDING) state.reactions.add(reaction);
237
+ else microtask(function () {
238
+ callReaction(reaction, state);
239
+ });
240
+ return reaction.promise;
245
241
  });
246
242
 
247
243
  OwnPromiseCapability = function () {
@@ -263,7 +259,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
263
259
 
264
260
  if (!NATIVE_PROMISE_SUBCLASSING) {
265
261
  // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs
266
- redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
262
+ defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
267
263
  var that = this;
268
264
  return new PromiseConstructor(function (resolve, reject) {
269
265
  call(nativeThen, that, resolve, reject);
@@ -284,7 +280,7 @@ if (FORCED_PROMISE_CONSTRUCTOR) {
284
280
  }
285
281
  }
286
282
 
287
- $({ global: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
283
+ $({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
288
284
  Promise: PromiseConstructor
289
285
  });
290
286
 
@@ -7,7 +7,7 @@ var getBuiltIn = require('../internals/get-built-in');
7
7
  var isCallable = require('../internals/is-callable');
8
8
  var speciesConstructor = require('../internals/species-constructor');
9
9
  var promiseResolve = require('../internals/promise-resolve');
10
- var redefine = require('../internals/redefine');
10
+ var defineBuiltIn = require('../internals/define-built-in');
11
11
 
12
12
  var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
13
13
 
@@ -38,6 +38,6 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
38
38
  if (!IS_PURE && isCallable(NativePromiseConstructor)) {
39
39
  var method = getBuiltIn('Promise').prototype['finally'];
40
40
  if (NativePromisePrototype['finally'] !== method) {
41
- redefine(NativePromisePrototype, 'finally', method, { unsafe: true });
41
+ defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });
42
42
  }
43
43
  }
@@ -11,7 +11,7 @@ var toString = require('../internals/to-string');
11
11
  var getRegExpFlags = require('../internals/regexp-get-flags');
12
12
  var stickyHelpers = require('../internals/regexp-sticky-helpers');
13
13
  var proxyAccessor = require('../internals/proxy-accessor');
14
- var redefine = require('../internals/redefine');
14
+ var defineBuiltIn = require('../internals/define-built-in');
15
15
  var fails = require('../internals/fails');
16
16
  var hasOwn = require('../internals/has-own-property');
17
17
  var enforceInternalState = require('../internals/internal-state').enforce;
@@ -183,7 +183,7 @@ if (isForced('RegExp', BASE_FORCED)) {
183
183
 
184
184
  RegExpPrototype.constructor = RegExpWrapper;
185
185
  RegExpWrapper.prototype = RegExpPrototype;
186
- redefine(global, 'RegExp', RegExpWrapper);
186
+ defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });
187
187
  }
188
188
 
189
189
  // https://tc39.es/ecma262/#sec-get-regexp-@@species
@@ -1,26 +1,25 @@
1
- var global = require('../internals/global');
2
1
  var DESCRIPTORS = require('../internals/descriptors');
3
2
  var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');
4
3
  var classof = require('../internals/classof-raw');
5
- var defineProperty = require('../internals/object-define-property').f;
4
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
6
5
  var getInternalState = require('../internals/internal-state').get;
7
6
 
8
7
  var RegExpPrototype = RegExp.prototype;
9
- var TypeError = global.TypeError;
8
+ var $TypeError = TypeError;
10
9
 
11
10
  // `RegExp.prototype.dotAll` getter
12
11
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall
13
12
  if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {
14
- defineProperty(RegExpPrototype, 'dotAll', {
13
+ defineBuiltInAccessor(RegExpPrototype, 'dotAll', {
15
14
  configurable: true,
16
- get: function () {
15
+ get: function dotAll() {
17
16
  if (this === RegExpPrototype) return undefined;
18
17
  // We can't use InternalStateModule.getterFor because
19
18
  // we don't add metadata for regexps created by a literal.
20
19
  if (classof(this) === 'RegExp') {
21
20
  return !!getInternalState(this).dotAll;
22
21
  }
23
- throw TypeError('Incompatible receiver, RegExp required');
22
+ throw $TypeError('Incompatible receiver, RegExp required');
24
23
  }
25
24
  });
26
25
  }
@@ -1,5 +1,5 @@
1
1
  var DESCRIPTORS = require('../internals/descriptors');
2
- var objectDefinePropertyModule = require('../internals/object-define-property');
2
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
3
3
  var regExpFlags = require('../internals/regexp-flags');
4
4
  var fails = require('../internals/fails');
5
5
 
@@ -12,7 +12,7 @@ var FORCED = DESCRIPTORS && fails(function () {
12
12
 
13
13
  // `RegExp.prototype.flags` getter
14
14
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
15
- if (FORCED) objectDefinePropertyModule.f(RegExpPrototype, 'flags', {
15
+ if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {
16
16
  configurable: true,
17
17
  get: regExpFlags
18
18
  });
@@ -1,26 +1,25 @@
1
- var global = require('../internals/global');
2
1
  var DESCRIPTORS = require('../internals/descriptors');
3
2
  var MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;
4
3
  var classof = require('../internals/classof-raw');
5
- var defineProperty = require('../internals/object-define-property').f;
4
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
6
5
  var getInternalState = require('../internals/internal-state').get;
7
6
 
8
7
  var RegExpPrototype = RegExp.prototype;
9
- var TypeError = global.TypeError;
8
+ var $TypeError = TypeError;
10
9
 
11
10
  // `RegExp.prototype.sticky` getter
12
11
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky
13
12
  if (DESCRIPTORS && MISSED_STICKY) {
14
- defineProperty(RegExpPrototype, 'sticky', {
13
+ defineBuiltInAccessor(RegExpPrototype, 'sticky', {
15
14
  configurable: true,
16
- get: function () {
15
+ get: function sticky() {
17
16
  if (this === RegExpPrototype) return undefined;
18
17
  // We can't use InternalStateModule.getterFor because
19
18
  // we don't add metadata for regexps created by a literal.
20
19
  if (classof(this) === 'RegExp') {
21
20
  return !!getInternalState(this).sticky;
22
21
  }
23
- throw TypeError('Incompatible receiver, RegExp required');
22
+ throw $TypeError('Incompatible receiver, RegExp required');
24
23
  }
25
24
  });
26
25
  }
@@ -2,7 +2,6 @@
2
2
  // TODO: Remove from `core-js@4` since it's moved to entry points
3
3
  require('../modules/es.regexp.exec');
4
4
  var $ = require('../internals/export');
5
- var global = require('../internals/global');
6
5
  var call = require('../internals/function-call');
7
6
  var uncurryThis = require('../internals/function-uncurry-this');
8
7
  var isCallable = require('../internals/is-callable');
@@ -18,7 +17,7 @@ var DELEGATES_TO_EXEC = function () {
18
17
  return re.test('abc') === true && execCalled;
19
18
  }();
20
19
 
21
- var Error = global.Error;
20
+ var $TypeError = TypeError;
22
21
  var un$Test = uncurryThis(/./.test);
23
22
 
24
23
  // `RegExp.prototype.test` method
@@ -29,7 +28,7 @@ $({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
29
28
  if (!isCallable(exec)) return un$Test(this, str);
30
29
  var result = call(exec, this, str);
31
30
  if (result !== null && !isObject(result)) {
32
- throw new Error('RegExp exec method returned something other than an Object or null');
31
+ throw new $TypeError('RegExp exec method returned something other than an Object or null');
33
32
  }
34
33
  return !!result;
35
34
  }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;
3
- var redefine = require('../internals/redefine');
3
+ var defineBuiltIn = require('../internals/define-built-in');
4
4
  var anObject = require('../internals/an-object');
5
5
  var $toString = require('../internals/to-string');
6
6
  var fails = require('../internals/fails');
@@ -17,7 +17,7 @@ var INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;
17
17
  // `RegExp.prototype.toString` method
18
18
  // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
19
19
  if (NOT_GENERIC || INCORRECT_NAME) {
20
- redefine(RegExp.prototype, TO_STRING, function toString() {
20
+ defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {
21
21
  var R = anObject(this);
22
22
  var pattern = $toString(R.source);
23
23
  var flags = $toString(getRegExpFlags(R));
@@ -1,9 +1,8 @@
1
1
  var $ = require('../internals/export');
2
- var global = require('../internals/global');
3
2
  var uncurryThis = require('../internals/function-uncurry-this');
4
3
  var toAbsoluteIndex = require('../internals/to-absolute-index');
5
4
 
6
- var RangeError = global.RangeError;
5
+ var $RangeError = RangeError;
7
6
  var fromCharCode = String.fromCharCode;
8
7
  // eslint-disable-next-line es-x/no-string-fromcodepoint -- required for testing
9
8
  var $fromCodePoint = String.fromCodePoint;
@@ -14,7 +13,7 @@ var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;
14
13
 
15
14
  // `String.fromCodePoint` method
16
15
  // https://tc39.es/ecma262/#sec-string.fromcodepoint
17
- $({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {
16
+ $({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {
18
17
  // eslint-disable-next-line no-unused-vars -- required for `.length`
19
18
  fromCodePoint: function fromCodePoint(x) {
20
19
  var elements = [];
@@ -23,7 +22,7 @@ $({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {
23
22
  var code;
24
23
  while (length > i) {
25
24
  code = +arguments[i++];
26
- if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');
25
+ if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw $RangeError(code + ' is not a valid code point');
27
26
  elements[i] = code < 0x10000
28
27
  ? fromCharCode(code)
29
28
  : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00);
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
  /* eslint-disable es-x/no-string-prototype-matchall -- safe */
3
3
  var $ = require('../internals/export');
4
- var global = require('../internals/global');
5
4
  var call = require('../internals/function-call');
6
5
  var uncurryThis = require('../internals/function-uncurry-this');
7
6
  var createIteratorConstructor = require('../internals/create-iterator-constructor');
@@ -13,7 +12,7 @@ var classof = require('../internals/classof-raw');
13
12
  var isRegExp = require('../internals/is-regexp');
14
13
  var getRegExpFlags = require('../internals/regexp-get-flags');
15
14
  var getMethod = require('../internals/get-method');
16
- var redefine = require('../internals/redefine');
15
+ var defineBuiltIn = require('../internals/define-built-in');
17
16
  var fails = require('../internals/fails');
18
17
  var wellKnownSymbol = require('../internals/well-known-symbol');
19
18
  var speciesConstructor = require('../internals/species-constructor');
@@ -28,7 +27,7 @@ var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
28
27
  var setInternalState = InternalStateModule.set;
29
28
  var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
30
29
  var RegExpPrototype = RegExp.prototype;
31
- var TypeError = global.TypeError;
30
+ var $TypeError = TypeError;
32
31
  var stringIndexOf = uncurryThis(''.indexOf);
33
32
  var un$MatchAll = uncurryThis(''.matchAll);
34
33
 
@@ -82,7 +81,7 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
82
81
  if (regexp != null) {
83
82
  if (isRegExp(regexp)) {
84
83
  flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));
85
- if (!~stringIndexOf(flags, 'g')) throw TypeError('`.matchAll` does not allow non-global regexes');
84
+ if (!~stringIndexOf(flags, 'g')) throw $TypeError('`.matchAll` does not allow non-global regexes');
86
85
  }
87
86
  if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
88
87
  matcher = getMethod(regexp, MATCH_ALL);
@@ -95,4 +94,4 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
95
94
  }
96
95
  });
97
96
 
98
- IS_PURE || MATCH_ALL in RegExpPrototype || redefine(RegExpPrototype, MATCH_ALL, $matchAll);
97
+ IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var global = require('../internals/global');
4
3
  var call = require('../internals/function-call');
5
4
  var uncurryThis = require('../internals/function-uncurry-this');
6
5
  var requireObjectCoercible = require('../internals/require-object-coercible');
@@ -14,7 +13,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
14
13
  var IS_PURE = require('../internals/is-pure');
15
14
 
16
15
  var REPLACE = wellKnownSymbol('replace');
17
- var TypeError = global.TypeError;
16
+ var $TypeError = TypeError;
18
17
  var indexOf = uncurryThis(''.indexOf);
19
18
  var replace = uncurryThis(''.replace);
20
19
  var stringSlice = uncurryThis(''.slice);
@@ -39,7 +38,7 @@ $({ target: 'String', proto: true }, {
39
38
  IS_REG_EXP = isRegExp(searchValue);
40
39
  if (IS_REG_EXP) {
41
40
  flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));
42
- if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
41
+ if (!~indexOf(flags, 'g')) throw $TypeError('`.replaceAll` does not allow non-global regexes');
43
42
  }
44
43
  replacer = getMethod(searchValue, REPLACE);
45
44
  if (replacer) {