core-js 3.22.3 → 3.22.7

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 (84) hide show
  1. package/internals/add-to-unscopables.js +2 -2
  2. package/internals/array-buffer-view-core.js +4 -4
  3. package/internals/array-buffer.js +3 -3
  4. package/internals/async-from-sync-iterator.js +2 -2
  5. package/internals/async-iterator-create-proxy.js +2 -2
  6. package/internals/async-iterator-prototype.js +2 -2
  7. package/internals/collection-strong.js +3 -3
  8. package/internals/collection-weak.js +3 -3
  9. package/internals/collection.js +3 -3
  10. package/internals/define-built-in-accessor.js +8 -0
  11. package/internals/define-built-in.js +20 -0
  12. package/internals/define-built-ins.js +6 -0
  13. package/internals/{set-global.js → define-global-property.js} +0 -0
  14. package/internals/define-iterator.js +4 -4
  15. package/internals/export.js +18 -19
  16. package/internals/fix-regexp-well-known-symbol-logic.js +3 -3
  17. package/internals/iterator-create-proxy.js +2 -2
  18. package/internals/iterators-core.js +2 -2
  19. package/internals/make-built-in.js +48 -0
  20. package/internals/math-expm1.js +2 -1
  21. package/internals/math-fround.js +3 -2
  22. package/internals/math-log1p.js +2 -1
  23. package/internals/math-sign.js +2 -1
  24. package/internals/math-trunc.js +10 -0
  25. package/internals/shared-store.js +2 -2
  26. package/internals/shared.js +2 -2
  27. package/internals/symbol-define-to-primitive.js +3 -3
  28. package/internals/to-integer-or-infinity.js +3 -4
  29. package/internals/typed-array-constructor.js +3 -3
  30. package/modules/es.aggregate-error.cause.js +1 -1
  31. package/modules/es.aggregate-error.constructor.js +1 -1
  32. package/modules/es.array-buffer.constructor.js +1 -1
  33. package/modules/es.array.concat.js +1 -1
  34. package/modules/es.data-view.constructor.js +1 -1
  35. package/modules/es.date.to-json.js +1 -1
  36. package/modules/es.date.to-primitive.js +2 -2
  37. package/modules/es.date.to-string.js +2 -2
  38. package/modules/es.error.cause.js +2 -2
  39. package/modules/es.error.to-string.js +2 -2
  40. package/modules/es.function.has-instance.js +3 -2
  41. package/modules/es.json.stringify.js +1 -1
  42. package/modules/es.math.acosh.js +4 -3
  43. package/modules/es.math.asinh.js +2 -1
  44. package/modules/es.math.atanh.js +2 -1
  45. package/modules/es.math.cbrt.js +2 -1
  46. package/modules/es.math.clz32.js +2 -1
  47. package/modules/es.math.hypot.js +1 -1
  48. package/modules/es.math.sinh.js +2 -1
  49. package/modules/es.math.tanh.js +4 -3
  50. package/modules/es.math.trunc.js +2 -6
  51. package/modules/es.number.constructor.js +2 -2
  52. package/modules/es.object.assign.js +1 -1
  53. package/modules/es.object.to-string.js +2 -2
  54. package/modules/es.promise.catch.js +2 -2
  55. package/modules/es.promise.constructor.js +17 -21
  56. package/modules/es.promise.finally.js +2 -2
  57. package/modules/es.regexp.constructor.js +2 -2
  58. package/modules/es.regexp.dot-all.js +3 -3
  59. package/modules/es.regexp.flags.js +2 -2
  60. package/modules/es.regexp.sticky.js +3 -3
  61. package/modules/es.regexp.to-string.js +2 -2
  62. package/modules/es.string.from-code-point.js +1 -1
  63. package/modules/es.string.match-all.js +2 -2
  64. package/modules/es.symbol.constructor.js +5 -5
  65. package/modules/es.symbol.description.js +1 -1
  66. package/modules/es.weak-map.constructor.js +2 -2
  67. package/modules/esnext.array.last-index.js +2 -2
  68. package/modules/esnext.array.last-item.js +2 -2
  69. package/modules/esnext.array.to-spliced.js +1 -1
  70. package/modules/esnext.async-iterator.constructor.js +1 -1
  71. package/modules/esnext.iterator.constructor.js +1 -1
  72. package/modules/esnext.map.merge.js +1 -1
  73. package/modules/esnext.math.signbit.js +3 -1
  74. package/modules/esnext.observable.constructor.js +12 -12
  75. package/modules/esnext.typed-array.to-spliced.js +1 -1
  76. package/modules/web.dom-exception.constructor.js +10 -10
  77. package/modules/web.dom-exception.stack.js +1 -1
  78. package/modules/web.queue-microtask.js +1 -1
  79. package/modules/web.structured-clone.js +21 -9
  80. package/modules/web.url-search-params.constructor.js +8 -8
  81. package/modules/web.url.constructor.js +43 -45
  82. package/package.json +2 -3
  83. package/internals/redefine-all.js +0 -6
  84. package/internals/redefine.js +0 -46
@@ -39,7 +39,7 @@ var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
39
39
  // `Array.prototype.concat` method
40
40
  // https://tc39.es/ecma262/#sec-array.prototype.concat
41
41
  // with adding support of @@isConcatSpreadable and @@species
42
- $({ target: 'Array', proto: true, forced: FORCED }, {
42
+ $({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {
43
43
  // eslint-disable-next-line no-unused-vars -- required for `.length`
44
44
  concat: function concat(arg) {
45
45
  var O = toObject(this);
@@ -4,6 +4,6 @@ var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');
4
4
 
5
5
  // `DataView` constructor
6
6
  // https://tc39.es/ecma262/#sec-dataview-constructor
7
- $({ global: true, forced: !NATIVE_ARRAY_BUFFER }, {
7
+ $({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, {
8
8
  DataView: ArrayBufferModule.DataView
9
9
  });
@@ -11,7 +11,7 @@ var FORCED = fails(function () {
11
11
 
12
12
  // `Date.prototype.toJSON` method
13
13
  // https://tc39.es/ecma262/#sec-date.prototype.tojson
14
- $({ target: 'Date', proto: true, forced: FORCED }, {
14
+ $({ target: 'Date', proto: true, arity: 1, forced: FORCED }, {
15
15
  // eslint-disable-next-line no-unused-vars -- required for `.length`
16
16
  toJSON: function toJSON(key) {
17
17
  var O = toObject(this);
@@ -1,5 +1,5 @@
1
1
  var hasOwn = require('../internals/has-own-property');
2
- var redefine = require('../internals/redefine');
2
+ var defineBuiltIn = require('../internals/define-built-in');
3
3
  var dateToPrimitive = require('../internals/date-to-primitive');
4
4
  var wellKnownSymbol = require('../internals/well-known-symbol');
5
5
 
@@ -9,5 +9,5 @@ var DatePrototype = Date.prototype;
9
9
  // `Date.prototype[@@toPrimitive]` method
10
10
  // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
11
11
  if (!hasOwn(DatePrototype, TO_PRIMITIVE)) {
12
- redefine(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
12
+ defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
13
13
  }
@@ -1,6 +1,6 @@
1
1
  // TODO: Remove from `core-js@4`
2
2
  var uncurryThis = require('../internals/function-uncurry-this');
3
- var redefine = require('../internals/redefine');
3
+ var defineBuiltIn = require('../internals/define-built-in');
4
4
 
5
5
  var DatePrototype = Date.prototype;
6
6
  var INVALID_DATE = 'Invalid Date';
@@ -11,7 +11,7 @@ var getTime = uncurryThis(DatePrototype.getTime);
11
11
  // `Date.prototype.toString` method
12
12
  // https://tc39.es/ecma262/#sec-date.prototype.tostring
13
13
  if (String(new Date(NaN)) != INVALID_DATE) {
14
- redefine(DatePrototype, TO_STRING, function toString() {
14
+ defineBuiltIn(DatePrototype, TO_STRING, function toString() {
15
15
  var value = getTime(this);
16
16
  // eslint-disable-next-line no-self-compare -- NaN check
17
17
  return value === value ? un$DateToString(this) : INVALID_DATE;
@@ -12,14 +12,14 @@ var FORCED = Error('e', { cause: 7 }).cause !== 7;
12
12
  var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {
13
13
  var O = {};
14
14
  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);
15
- $({ global: true, forced: FORCED }, O);
15
+ $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);
16
16
  };
17
17
 
18
18
  var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {
19
19
  if (WebAssembly && WebAssembly[ERROR_NAME]) {
20
20
  var O = {};
21
21
  O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);
22
- $({ target: WEB_ASSEMBLY, stat: true, forced: FORCED }, O);
22
+ $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);
23
23
  }
24
24
  };
25
25
 
@@ -1,4 +1,4 @@
1
- var redefine = require('../internals/redefine');
1
+ var defineBuiltIn = require('../internals/define-built-in');
2
2
  var errorToString = require('../internals/error-to-string');
3
3
 
4
4
  var ErrorPrototype = Error.prototype;
@@ -6,5 +6,5 @@ var ErrorPrototype = Error.prototype;
6
6
  // `Error.prototype.toString` method fix
7
7
  // https://tc39.es/ecma262/#sec-error.prototype.tostring
8
8
  if (ErrorPrototype.toString !== errorToString) {
9
- redefine(ErrorPrototype, 'toString', errorToString);
9
+ defineBuiltIn(ErrorPrototype, 'toString', errorToString);
10
10
  }
@@ -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
  }
@@ -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
@@ -2,7 +2,7 @@ var global = require('../internals/global');
2
2
  var DESCRIPTORS = require('../internals/descriptors');
3
3
  var UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');
4
4
  var classof = require('../internals/classof-raw');
5
- var defineProperty = require('../internals/object-define-property').f;
5
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
6
6
  var getInternalState = require('../internals/internal-state').get;
7
7
 
8
8
  var RegExpPrototype = RegExp.prototype;
@@ -11,9 +11,9 @@ var TypeError = global.TypeError;
11
11
  // `RegExp.prototype.dotAll` getter
12
12
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall
13
13
  if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {
14
- defineProperty(RegExpPrototype, 'dotAll', {
14
+ defineBuiltInAccessor(RegExpPrototype, 'dotAll', {
15
15
  configurable: true,
16
- get: function () {
16
+ get: function dotAll() {
17
17
  if (this === RegExpPrototype) return undefined;
18
18
  // We can't use InternalStateModule.getterFor because
19
19
  // we don't add metadata for regexps created by a literal.
@@ -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
  });
@@ -2,7 +2,7 @@ var global = require('../internals/global');
2
2
  var DESCRIPTORS = require('../internals/descriptors');
3
3
  var MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;
4
4
  var classof = require('../internals/classof-raw');
5
- var defineProperty = require('../internals/object-define-property').f;
5
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
6
6
  var getInternalState = require('../internals/internal-state').get;
7
7
 
8
8
  var RegExpPrototype = RegExp.prototype;
@@ -11,9 +11,9 @@ var TypeError = global.TypeError;
11
11
  // `RegExp.prototype.sticky` getter
12
12
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky
13
13
  if (DESCRIPTORS && MISSED_STICKY) {
14
- defineProperty(RegExpPrototype, 'sticky', {
14
+ defineBuiltInAccessor(RegExpPrototype, 'sticky', {
15
15
  configurable: true,
16
- get: function () {
16
+ get: function sticky() {
17
17
  if (this === RegExpPrototype) return undefined;
18
18
  // We can't use InternalStateModule.getterFor because
19
19
  // we don't add metadata for regexps created by a literal.
@@ -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));
@@ -14,7 +14,7 @@ var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;
14
14
 
15
15
  // `String.fromCodePoint` method
16
16
  // https://tc39.es/ecma262/#sec-string.fromcodepoint
17
- $({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {
17
+ $({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, {
18
18
  // eslint-disable-next-line no-unused-vars -- required for `.length`
19
19
  fromCodePoint: function fromCodePoint(x) {
20
20
  var elements = [];
@@ -13,7 +13,7 @@ var classof = require('../internals/classof-raw');
13
13
  var isRegExp = require('../internals/is-regexp');
14
14
  var getRegExpFlags = require('../internals/regexp-get-flags');
15
15
  var getMethod = require('../internals/get-method');
16
- var redefine = require('../internals/redefine');
16
+ var defineBuiltIn = require('../internals/define-built-in');
17
17
  var fails = require('../internals/fails');
18
18
  var wellKnownSymbol = require('../internals/well-known-symbol');
19
19
  var speciesConstructor = require('../internals/species-constructor');
@@ -95,4 +95,4 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
95
95
  }
96
96
  });
97
97
 
98
- IS_PURE || MATCH_ALL in RegExpPrototype || redefine(RegExpPrototype, MATCH_ALL, $matchAll);
98
+ IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll);
@@ -23,7 +23,7 @@ var getOwnPropertyDescriptorModule = require('../internals/object-get-own-proper
23
23
  var definePropertyModule = require('../internals/object-define-property');
24
24
  var definePropertiesModule = require('../internals/object-define-properties');
25
25
  var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
26
- var redefine = require('../internals/redefine');
26
+ var defineBuiltIn = require('../internals/define-built-in');
27
27
  var shared = require('../internals/shared');
28
28
  var sharedKey = require('../internals/shared-key');
29
29
  var hiddenKeys = require('../internals/hidden-keys');
@@ -174,11 +174,11 @@ if (!NATIVE_SYMBOL) {
174
174
 
175
175
  SymbolPrototype = $Symbol[PROTOTYPE];
176
176
 
177
- redefine(SymbolPrototype, 'toString', function toString() {
177
+ defineBuiltIn(SymbolPrototype, 'toString', function toString() {
178
178
  return getInternalState(this).tag;
179
179
  });
180
180
 
181
- redefine($Symbol, 'withoutSetter', function (description) {
181
+ defineBuiltIn($Symbol, 'withoutSetter', function (description) {
182
182
  return wrap(uid(description), description);
183
183
  });
184
184
 
@@ -202,12 +202,12 @@ if (!NATIVE_SYMBOL) {
202
202
  }
203
203
  });
204
204
  if (!IS_PURE) {
205
- redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
205
+ defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
206
206
  }
207
207
  }
208
208
  }
209
209
 
210
- $({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
210
+ $({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
211
211
  Symbol: $Symbol
212
212
  });
213
213
 
@@ -53,7 +53,7 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy
53
53
  }
54
54
  });
55
55
 
56
- $({ global: true, forced: true }, {
56
+ $({ global: true, constructor: true, forced: true }, {
57
57
  Symbol: SymbolWrapper
58
58
  });
59
59
  }
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
3
  var uncurryThis = require('../internals/function-uncurry-this');
4
- var redefineAll = require('../internals/redefine-all');
4
+ var defineBuiltIns = require('../internals/define-built-ins');
5
5
  var InternalMetadataModule = require('../internals/internal-metadata');
6
6
  var collection = require('../internals/collection');
7
7
  var collectionWeak = require('../internals/collection-weak');
@@ -34,7 +34,7 @@ if (NATIVE_WEAK_MAP && IS_IE11) {
34
34
  var nativeHas = uncurryThis(WeakMapPrototype.has);
35
35
  var nativeGet = uncurryThis(WeakMapPrototype.get);
36
36
  var nativeSet = uncurryThis(WeakMapPrototype.set);
37
- redefineAll(WeakMapPrototype, {
37
+ defineBuiltIns(WeakMapPrototype, {
38
38
  'delete': function (key) {
39
39
  if (isObject(key) && !isExtensible(key)) {
40
40
  var state = enforceInternalState(this);
@@ -4,12 +4,12 @@ var DESCRIPTORS = require('../internals/descriptors');
4
4
  var addToUnscopables = require('../internals/add-to-unscopables');
5
5
  var toObject = require('../internals/to-object');
6
6
  var lengthOfArrayLike = require('../internals/length-of-array-like');
7
- var defineProperty = require('../internals/object-define-property').f;
7
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
8
8
 
9
9
  // `Array.prototype.lastIndex` getter
10
10
  // https://github.com/keithamus/proposal-array-last
11
11
  if (DESCRIPTORS) {
12
- defineProperty(Array.prototype, 'lastIndex', {
12
+ defineBuiltInAccessor(Array.prototype, 'lastIndex', {
13
13
  configurable: true,
14
14
  get: function lastIndex() {
15
15
  var O = toObject(this);
@@ -4,12 +4,12 @@ var DESCRIPTORS = require('../internals/descriptors');
4
4
  var addToUnscopables = require('../internals/add-to-unscopables');
5
5
  var toObject = require('../internals/to-object');
6
6
  var lengthOfArrayLike = require('../internals/length-of-array-like');
7
- var defineProperty = require('../internals/object-define-property').f;
7
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
8
8
 
9
9
  // `Array.prototype.lastIndex` accessor
10
10
  // https://github.com/keithamus/proposal-array-last
11
11
  if (DESCRIPTORS) {
12
- defineProperty(Array.prototype, 'lastItem', {
12
+ defineBuiltInAccessor(Array.prototype, 'lastItem', {
13
13
  configurable: true,
14
14
  get: function lastItem() {
15
15
  var O = toObject(this);
@@ -10,7 +10,7 @@ var Array = global.Array;
10
10
 
11
11
  // `Array.prototype.toSpliced` method
12
12
  // https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSpliced
13
- $({ target: 'Array', proto: true }, {
13
+ $({ target: 'Array', proto: true, arity: 2 }, {
14
14
  // eslint-disable-next-line no-unused-vars -- required for .length
15
15
  toSpliced: function toSpliced(start, deleteCount /* , ...items */) {
16
16
  return arrayToSpliced(toIndexedObject(this), Array, arraySlice(arguments));
@@ -24,6 +24,6 @@ if (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPr
24
24
  createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);
25
25
  }
26
26
 
27
- $({ global: true, forced: IS_PURE }, {
27
+ $({ global: true, constructor: true, forced: IS_PURE }, {
28
28
  AsyncIterator: AsyncIteratorConstructor
29
29
  });
@@ -36,6 +36,6 @@ if (FORCED || !hasOwn(IteratorPrototype, 'constructor') || IteratorPrototype.con
36
36
 
37
37
  IteratorConstructor.prototype = IteratorPrototype;
38
38
 
39
- $({ global: true, forced: FORCED }, {
39
+ $({ global: true, constructor: true, forced: FORCED }, {
40
40
  Iterator: IteratorConstructor
41
41
  });