core-js 3.24.1 → 3.25.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 (125) hide show
  1. package/README.md +1 -1
  2. package/actual/object/proto.js +3 -0
  3. package/es/index.js +1 -0
  4. package/es/object/index.js +1 -0
  5. package/es/object/proto.js +1 -0
  6. package/features/object/proto.js +1 -0
  7. package/full/index.js +1 -0
  8. package/full/object/proto.js +3 -0
  9. package/internals/{array-buffer-native.js → array-buffer-basic-detection.js} +0 -0
  10. package/internals/array-buffer-view-core.js +1 -1
  11. package/internals/array-buffer.js +3 -3
  12. package/internals/array-set-length.js +27 -0
  13. package/internals/array-unique-by.js +2 -1
  14. package/internals/async-from-sync-iterator.js +2 -2
  15. package/internals/async-iterator-create-proxy.js +19 -11
  16. package/internals/async-iterator-indexed.js +2 -2
  17. package/internals/collection-from.js +2 -1
  18. package/internals/collection-strong.js +3 -2
  19. package/internals/collection-weak.js +3 -2
  20. package/internals/collection.js +2 -1
  21. package/internals/date-to-iso-string.js +7 -6
  22. package/internals/{clear-error-stack.js → error-stack-clear.js} +0 -0
  23. package/internals/get-iterator-method.js +2 -1
  24. package/internals/get-method.js +2 -1
  25. package/internals/internal-state.js +3 -3
  26. package/internals/is-iterable.js +2 -0
  27. package/internals/is-null-or-undefined.js +5 -0
  28. package/internals/is-object.js +8 -1
  29. package/internals/{create-iterator-constructor.js → iterator-create-constructor.js} +0 -0
  30. package/internals/iterator-create-proxy.js +8 -5
  31. package/internals/{define-iterator.js → iterator-define.js} +1 -1
  32. package/internals/iterators-core.js +2 -1
  33. package/internals/new-promise-capability.js +3 -1
  34. package/internals/number-parse-float.js +5 -5
  35. package/internals/numeric-range-iterator.js +8 -7
  36. package/internals/object-iterator.js +1 -1
  37. package/internals/require-object-coercible.js +3 -1
  38. package/internals/shared.js +2 -2
  39. package/internals/species-constructor.js +2 -1
  40. package/internals/{native-symbol.js → symbol-constructor-detection.js} +0 -0
  41. package/internals/{native-symbol-registry.js → symbol-registry-detection.js} +1 -1
  42. package/internals/{native-url.js → url-constructor-detection.js} +0 -0
  43. package/internals/use-symbol-as-uid.js +1 -1
  44. package/internals/weak-map-basic-detection.js +6 -0
  45. package/internals/{define-well-known-symbol.js → well-known-symbol-define.js} +0 -0
  46. package/internals/well-known-symbol.js +1 -1
  47. package/internals/wrap-error-constructor-with-cause.js +1 -1
  48. package/modules/es.aggregate-error.cause.js +1 -0
  49. package/modules/es.aggregate-error.constructor.js +2 -2
  50. package/modules/es.array-buffer.slice.js +3 -3
  51. package/modules/es.array.index-of.js +5 -5
  52. package/modules/es.array.iterator.js +1 -1
  53. package/modules/es.array.join.js +2 -2
  54. package/modules/es.array.push.js +2 -1
  55. package/modules/es.array.reverse.js +2 -2
  56. package/modules/es.array.slice.js +2 -2
  57. package/modules/es.array.sort.js +3 -3
  58. package/modules/es.array.splice.js +2 -1
  59. package/modules/es.array.unshift.js +2 -1
  60. package/modules/es.data-view.constructor.js +1 -1
  61. package/modules/es.date.now.js +2 -2
  62. package/modules/es.date.set-year.js +2 -2
  63. package/modules/es.date.to-string.js +4 -4
  64. package/modules/es.json.stringify.js +1 -1
  65. package/modules/es.number.to-exponential.js +11 -11
  66. package/modules/es.number.to-fixed.js +6 -6
  67. package/modules/es.number.to-precision.js +5 -5
  68. package/modules/es.object.get-own-property-symbols.js +1 -1
  69. package/modules/es.object.proto.js +29 -0
  70. package/modules/es.regexp.test.js +12 -12
  71. package/modules/es.regexp.to-string.js +3 -3
  72. package/modules/es.string.ends-with.js +3 -3
  73. package/modules/es.string.iterator.js +1 -1
  74. package/modules/es.string.match-all.js +8 -7
  75. package/modules/es.string.match.js +2 -1
  76. package/modules/es.string.replace-all.js +2 -1
  77. package/modules/es.string.replace.js +2 -1
  78. package/modules/es.string.search.js +2 -1
  79. package/modules/es.string.split.js +3 -2
  80. package/modules/es.string.starts-with.js +3 -3
  81. package/modules/es.symbol.async-iterator.js +1 -1
  82. package/modules/es.symbol.constructor.js +2 -2
  83. package/modules/es.symbol.description.js +4 -4
  84. package/modules/es.symbol.for.js +1 -1
  85. package/modules/es.symbol.has-instance.js +1 -1
  86. package/modules/es.symbol.is-concat-spreadable.js +1 -1
  87. package/modules/es.symbol.iterator.js +1 -1
  88. package/modules/es.symbol.key-for.js +1 -1
  89. package/modules/es.symbol.match-all.js +1 -1
  90. package/modules/es.symbol.match.js +1 -1
  91. package/modules/es.symbol.replace.js +1 -1
  92. package/modules/es.symbol.search.js +1 -1
  93. package/modules/es.symbol.species.js +1 -1
  94. package/modules/es.symbol.split.js +1 -1
  95. package/modules/es.symbol.to-primitive.js +1 -1
  96. package/modules/es.symbol.to-string-tag.js +1 -1
  97. package/modules/es.symbol.unscopables.js +1 -1
  98. package/modules/es.typed-array.sort.js +7 -7
  99. package/modules/es.weak-map.constructor.js +1 -1
  100. package/modules/esnext.array.is-template-object.js +1 -1
  101. package/modules/esnext.async-iterator.drop.js +2 -2
  102. package/modules/esnext.async-iterator.filter.js +2 -2
  103. package/modules/esnext.async-iterator.flat-map.js +2 -2
  104. package/modules/esnext.async-iterator.map.js +2 -2
  105. package/modules/esnext.async-iterator.take.js +3 -3
  106. package/modules/esnext.math.seeded-prng.js +1 -1
  107. package/modules/esnext.observable.constructor.js +4 -3
  108. package/modules/esnext.string.code-points.js +1 -1
  109. package/modules/esnext.symbol.async-dispose.js +1 -1
  110. package/modules/esnext.symbol.dispose.js +1 -1
  111. package/modules/esnext.symbol.matcher.js +1 -1
  112. package/modules/esnext.symbol.metadata-key.js +1 -1
  113. package/modules/esnext.symbol.metadata.js +1 -1
  114. package/modules/esnext.symbol.observable.js +1 -1
  115. package/modules/esnext.symbol.pattern-match.js +1 -1
  116. package/modules/esnext.symbol.replace-all.js +1 -1
  117. package/modules/web.dom-exception.constructor.js +1 -1
  118. package/modules/web.dom-exception.stack.js +1 -1
  119. package/modules/web.structured-clone.js +26 -14
  120. package/modules/web.url-search-params.constructor.js +2 -2
  121. package/modules/web.url.constructor.js +1 -1
  122. package/package.json +1 -1
  123. package/stable/index.js +1 -0
  124. package/stable/object/proto.js +3 -0
  125. package/internals/native-weak-map.js +0 -7
@@ -1,4 +1,4 @@
1
- var NATIVE_SYMBOL = require('../internals/native-symbol');
1
+ var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
2
2
 
3
3
  /* eslint-disable es-x/no-symbol -- safe */
4
4
  module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable es-x/no-symbol -- required for testing */
2
- var NATIVE_SYMBOL = require('../internals/native-symbol');
2
+ var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
3
3
 
4
4
  module.exports = NATIVE_SYMBOL
5
5
  && !Symbol.sham
@@ -0,0 +1,6 @@
1
+ var global = require('../internals/global');
2
+ var isCallable = require('../internals/is-callable');
3
+
4
+ var WeakMap = global.WeakMap;
5
+
6
+ module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
@@ -2,7 +2,7 @@ var global = require('../internals/global');
2
2
  var shared = require('../internals/shared');
3
3
  var hasOwn = require('../internals/has-own-property');
4
4
  var uid = require('../internals/uid');
5
- var NATIVE_SYMBOL = require('../internals/native-symbol');
5
+ var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
6
6
  var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
7
7
 
8
8
  var WellKnownSymbolsStore = shared('wks');
@@ -9,7 +9,7 @@ var proxyAccessor = require('../internals/proxy-accessor');
9
9
  var inheritIfRequired = require('../internals/inherit-if-required');
10
10
  var normalizeStringArgument = require('../internals/normalize-string-argument');
11
11
  var installErrorCause = require('../internals/install-error-cause');
12
- var clearErrorStack = require('../internals/clear-error-stack');
12
+ var clearErrorStack = require('../internals/error-stack-clear');
13
13
  var ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');
14
14
  var DESCRIPTORS = require('../internals/descriptors');
15
15
  var IS_PURE = require('../internals/is-pure');
@@ -6,6 +6,7 @@ var wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor
6
6
 
7
7
  var AGGREGATE_ERROR = 'AggregateError';
8
8
  var $AggregateError = getBuiltIn(AGGREGATE_ERROR);
9
+
9
10
  var FORCED = !fails(function () {
10
11
  return $AggregateError([1]).errors[0] !== 1;
11
12
  }) && fails(function () {
@@ -7,7 +7,7 @@ var copyConstructorProperties = require('../internals/copy-constructor-propertie
7
7
  var create = require('../internals/object-create');
8
8
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
9
9
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
10
- var clearErrorStack = require('../internals/clear-error-stack');
10
+ var clearErrorStack = require('../internals/error-stack-clear');
11
11
  var installErrorCause = require('../internals/install-error-cause');
12
12
  var iterate = require('../internals/iterate');
13
13
  var normalizeStringArgument = require('../internals/normalize-string-argument');
@@ -23,7 +23,7 @@ var $AggregateError = function AggregateError(errors, message /* , options */) {
23
23
  var isInstance = isPrototypeOf(AggregateErrorPrototype, this);
24
24
  var that;
25
25
  if (setPrototypeOf) {
26
- that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);
26
+ that = setPrototypeOf($Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);
27
27
  } else {
28
28
  that = isInstance ? this : create(AggregateErrorPrototype);
29
29
  createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');
@@ -11,7 +11,7 @@ var speciesConstructor = require('../internals/species-constructor');
11
11
  var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
12
12
  var DataView = ArrayBufferModule.DataView;
13
13
  var DataViewPrototype = DataView.prototype;
14
- var un$ArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);
14
+ var nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);
15
15
  var getUint8 = uncurryThis(DataViewPrototype.getUint8);
16
16
  var setUint8 = uncurryThis(DataViewPrototype.setUint8);
17
17
 
@@ -23,8 +23,8 @@ var INCORRECT_SLICE = fails(function () {
23
23
  // https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice
24
24
  $({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {
25
25
  slice: function slice(start, end) {
26
- if (un$ArrayBufferSlice && end === undefined) {
27
- return un$ArrayBufferSlice(anObject(this), start); // FF fix
26
+ if (nativeArrayBufferSlice && end === undefined) {
27
+ return nativeArrayBufferSlice(anObject(this), start); // FF fix
28
28
  }
29
29
  var length = anObject(this).byteLength;
30
30
  var first = toAbsoluteIndex(start, length);
@@ -2,12 +2,12 @@
2
2
  /* eslint-disable es-x/no-array-prototype-indexof -- required for testing */
3
3
  var $ = require('../internals/export');
4
4
  var uncurryThis = require('../internals/function-uncurry-this');
5
- var $IndexOf = require('../internals/array-includes').indexOf;
5
+ var $indexOf = require('../internals/array-includes').indexOf;
6
6
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
7
7
 
8
- var un$IndexOf = uncurryThis([].indexOf);
8
+ var nativeIndexOf = uncurryThis([].indexOf);
9
9
 
10
- var NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;
10
+ var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;
11
11
  var STRICT_METHOD = arrayMethodIsStrict('indexOf');
12
12
 
13
13
  // `Array.prototype.indexOf` method
@@ -17,7 +17,7 @@ $({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {
17
17
  var fromIndex = arguments.length > 1 ? arguments[1] : undefined;
18
18
  return NEGATIVE_ZERO
19
19
  // convert -0 to +0
20
- ? un$IndexOf(this, searchElement, fromIndex) || 0
21
- : $IndexOf(this, searchElement, fromIndex);
20
+ ? nativeIndexOf(this, searchElement, fromIndex) || 0
21
+ : $indexOf(this, searchElement, fromIndex);
22
22
  }
23
23
  });
@@ -4,7 +4,7 @@ var addToUnscopables = require('../internals/add-to-unscopables');
4
4
  var Iterators = require('../internals/iterators');
5
5
  var InternalStateModule = require('../internals/internal-state');
6
6
  var defineProperty = require('../internals/object-define-property').f;
7
- var defineIterator = require('../internals/define-iterator');
7
+ var defineIterator = require('../internals/iterator-define');
8
8
  var IS_PURE = require('../internals/is-pure');
9
9
  var DESCRIPTORS = require('../internals/descriptors');
10
10
 
@@ -5,7 +5,7 @@ var IndexedObject = require('../internals/indexed-object');
5
5
  var toIndexedObject = require('../internals/to-indexed-object');
6
6
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
7
7
 
8
- var un$Join = uncurryThis([].join);
8
+ var nativeJoin = uncurryThis([].join);
9
9
 
10
10
  var ES3_STRINGS = IndexedObject != Object;
11
11
  var STRICT_METHOD = arrayMethodIsStrict('join', ',');
@@ -14,6 +14,6 @@ var STRICT_METHOD = arrayMethodIsStrict('join', ',');
14
14
  // https://tc39.es/ecma262/#sec-array.prototype.join
15
15
  $({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {
16
16
  join: function join(separator) {
17
- return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);
17
+ return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);
18
18
  }
19
19
  });
@@ -2,6 +2,7 @@
2
2
  var $ = require('../internals/export');
3
3
  var toObject = require('../internals/to-object');
4
4
  var lengthOfArrayLike = require('../internals/length-of-array-like');
5
+ var setArrayLength = require('../internals/array-set-length');
5
6
  var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
6
7
  var fails = require('../internals/fails');
7
8
 
@@ -33,7 +34,7 @@ $({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_TO_LENGTH || SILEN
33
34
  O[len] = arguments[i];
34
35
  len++;
35
36
  }
36
- O.length = len;
37
+ setArrayLength(O, len);
37
38
  return len;
38
39
  }
39
40
  });
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
3
3
  var uncurryThis = require('../internals/function-uncurry-this');
4
4
  var isArray = require('../internals/is-array');
5
5
 
6
- var un$Reverse = uncurryThis([].reverse);
6
+ var nativeReverse = uncurryThis([].reverse);
7
7
  var test = [1, 2];
8
8
 
9
9
  // `Array.prototype.reverse` method
@@ -14,6 +14,6 @@ $({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()
14
14
  reverse: function reverse() {
15
15
  // eslint-disable-next-line no-self-assign -- dirty hack
16
16
  if (isArray(this)) this.length = this.length;
17
- return un$Reverse(this);
17
+ return nativeReverse(this);
18
18
  }
19
19
  });
@@ -9,7 +9,7 @@ var toIndexedObject = require('../internals/to-indexed-object');
9
9
  var createProperty = require('../internals/create-property');
10
10
  var wellKnownSymbol = require('../internals/well-known-symbol');
11
11
  var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
12
- var un$Slice = require('../internals/array-slice');
12
+ var nativeSlice = require('../internals/array-slice');
13
13
 
14
14
  var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
15
15
 
@@ -38,7 +38,7 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
38
38
  if (Constructor === null) Constructor = undefined;
39
39
  }
40
40
  if (Constructor === $Array || Constructor === undefined) {
41
- return un$Slice(O, k, fin);
41
+ return nativeSlice(O, k, fin);
42
42
  }
43
43
  }
44
44
  result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));
@@ -15,7 +15,7 @@ var V8 = require('../internals/engine-v8-version');
15
15
  var WEBKIT = require('../internals/engine-webkit-version');
16
16
 
17
17
  var test = [];
18
- var un$Sort = uncurryThis(test.sort);
18
+ var nativeSort = uncurryThis(test.sort);
19
19
  var push = uncurryThis(test.push);
20
20
 
21
21
  // IE8-
@@ -83,7 +83,7 @@ $({ target: 'Array', proto: true, forced: FORCED }, {
83
83
 
84
84
  var array = toObject(this);
85
85
 
86
- if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);
86
+ if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);
87
87
 
88
88
  var items = [];
89
89
  var arrayLength = lengthOfArrayLike(array);
@@ -95,7 +95,7 @@ $({ target: 'Array', proto: true, forced: FORCED }, {
95
95
 
96
96
  internalSort(items, getSortCompare(comparefn));
97
97
 
98
- itemsLength = items.length;
98
+ itemsLength = lengthOfArrayLike(items);
99
99
  index = 0;
100
100
 
101
101
  while (index < itemsLength) array[index] = items[index++];
@@ -4,6 +4,7 @@ var toObject = require('../internals/to-object');
4
4
  var toAbsoluteIndex = require('../internals/to-absolute-index');
5
5
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
6
6
  var lengthOfArrayLike = require('../internals/length-of-array-like');
7
+ var setArrayLength = require('../internals/array-set-length');
7
8
  var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
8
9
  var arraySpeciesCreate = require('../internals/array-species-create');
9
10
  var createProperty = require('../internals/create-property');
@@ -60,7 +61,7 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
60
61
  for (k = 0; k < insertCount; k++) {
61
62
  O[k + actualStart] = arguments[k + 2];
62
63
  }
63
- O.length = len - actualDeleteCount + insertCount;
64
+ setArrayLength(O, len - actualDeleteCount + insertCount);
64
65
  return A;
65
66
  }
66
67
  });
@@ -2,6 +2,7 @@
2
2
  var $ = require('../internals/export');
3
3
  var toObject = require('../internals/to-object');
4
4
  var lengthOfArrayLike = require('../internals/length-of-array-like');
5
+ var setArrayLength = require('../internals/array-set-length');
5
6
  var deletePropertyOrThrow = require('../internals/delete-property-or-throw');
6
7
  var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
7
8
 
@@ -37,6 +38,6 @@ $({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_RESULT || SILENT_O
37
38
  for (var j = 0; j < argCount; j++) {
38
39
  O[j] = arguments[j];
39
40
  }
40
- } return O.length = len + argCount;
41
+ } return setArrayLength(O, len + argCount);
41
42
  }
42
43
  });
@@ -1,6 +1,6 @@
1
1
  var $ = require('../internals/export');
2
2
  var ArrayBufferModule = require('../internals/array-buffer');
3
- var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');
3
+ var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');
4
4
 
5
5
  // `DataView` constructor
6
6
  // https://tc39.es/ecma262/#sec-dataview-constructor
@@ -3,12 +3,12 @@ var $ = require('../internals/export');
3
3
  var uncurryThis = require('../internals/function-uncurry-this');
4
4
 
5
5
  var $Date = Date;
6
- var getTime = uncurryThis($Date.prototype.getTime);
6
+ var thisTimeValue = uncurryThis($Date.prototype.getTime);
7
7
 
8
8
  // `Date.now` method
9
9
  // https://tc39.es/ecma262/#sec-date.now
10
10
  $({ target: 'Date', stat: true }, {
11
11
  now: function now() {
12
- return getTime(new $Date());
12
+ return thisTimeValue(new $Date());
13
13
  }
14
14
  });
@@ -4,7 +4,7 @@ var uncurryThis = require('../internals/function-uncurry-this');
4
4
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
5
5
 
6
6
  var DatePrototype = Date.prototype;
7
- var getTime = uncurryThis(DatePrototype.getTime);
7
+ var thisTimeValue = uncurryThis(DatePrototype.getTime);
8
8
  var setFullYear = uncurryThis(DatePrototype.setFullYear);
9
9
 
10
10
  // `Date.prototype.setYear` method
@@ -12,7 +12,7 @@ var setFullYear = uncurryThis(DatePrototype.setFullYear);
12
12
  $({ target: 'Date', proto: true }, {
13
13
  setYear: function setYear(year) {
14
14
  // validate
15
- getTime(this);
15
+ thisTimeValue(this);
16
16
  var yi = toIntegerOrInfinity(year);
17
17
  var yyyy = 0 <= yi && yi <= 99 ? yi + 1900 : yi;
18
18
  return setFullYear(this, yyyy);
@@ -5,15 +5,15 @@ var defineBuiltIn = require('../internals/define-built-in');
5
5
  var DatePrototype = Date.prototype;
6
6
  var INVALID_DATE = 'Invalid Date';
7
7
  var TO_STRING = 'toString';
8
- var un$DateToString = uncurryThis(DatePrototype[TO_STRING]);
9
- var getTime = uncurryThis(DatePrototype.getTime);
8
+ var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);
9
+ var thisTimeValue = uncurryThis(DatePrototype.getTime);
10
10
 
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
14
  defineBuiltIn(DatePrototype, TO_STRING, function toString() {
15
- var value = getTime(this);
15
+ var value = thisTimeValue(this);
16
16
  // eslint-disable-next-line no-self-compare -- NaN check
17
- return value === value ? un$DateToString(this) : INVALID_DATE;
17
+ return value === value ? nativeDateToString(this) : INVALID_DATE;
18
18
  });
19
19
  }
@@ -9,7 +9,7 @@ var isCallable = require('../internals/is-callable');
9
9
  var isObject = require('../internals/is-object');
10
10
  var isSymbol = require('../internals/is-symbol');
11
11
  var arraySlice = require('../internals/array-slice');
12
- var NATIVE_SYMBOL = require('../internals/native-symbol');
12
+ var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
13
13
 
14
14
  var $stringify = getBuiltIn('JSON', 'stringify');
15
15
  var exec = uncurryThis(/./.exec);
@@ -14,31 +14,31 @@ var abs = Math.abs;
14
14
  var floor = Math.floor;
15
15
  var pow = Math.pow;
16
16
  var round = Math.round;
17
- var un$ToExponential = uncurryThis(1.0.toExponential);
17
+ var nativeToExponential = uncurryThis(1.0.toExponential);
18
18
  var repeat = uncurryThis($repeat);
19
19
  var stringSlice = uncurryThis(''.slice);
20
20
 
21
21
  // Edge 17-
22
- var ROUNDS_PROPERLY = un$ToExponential(-6.9e-11, 4) === '-6.9000e-11'
22
+ var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11'
23
23
  // IE11- && Edge 14-
24
- && un$ToExponential(1.255, 2) === '1.25e+0'
24
+ && nativeToExponential(1.255, 2) === '1.25e+0'
25
25
  // FF86-, V8 ~ Chrome 49-50
26
- && un$ToExponential(12345, 3) === '1.235e+4'
26
+ && nativeToExponential(12345, 3) === '1.235e+4'
27
27
  // FF86-, V8 ~ Chrome 49-50
28
- && un$ToExponential(25, 0) === '3e+1';
28
+ && nativeToExponential(25, 0) === '3e+1';
29
29
 
30
30
  // IE8-
31
31
  var THROWS_ON_INFINITY_FRACTION = fails(function () {
32
- un$ToExponential(1, Infinity);
32
+ nativeToExponential(1, Infinity);
33
33
  }) && fails(function () {
34
- un$ToExponential(1, -Infinity);
34
+ nativeToExponential(1, -Infinity);
35
35
  });
36
36
 
37
37
  // Safari <11 && FF <50
38
38
  var PROPER_NON_FINITE_THIS_CHECK = !fails(function () {
39
- un$ToExponential(Infinity, Infinity);
39
+ nativeToExponential(Infinity, Infinity);
40
40
  }) && !fails(function () {
41
- un$ToExponential(NaN, Infinity);
41
+ nativeToExponential(NaN, Infinity);
42
42
  });
43
43
 
44
44
  var FORCED = !ROUNDS_PROPERLY || !THROWS_ON_INFINITY_FRACTION || !PROPER_NON_FINITE_THIS_CHECK;
@@ -48,12 +48,12 @@ var FORCED = !ROUNDS_PROPERLY || !THROWS_ON_INFINITY_FRACTION || !PROPER_NON_FIN
48
48
  $({ target: 'Number', proto: true, forced: FORCED }, {
49
49
  toExponential: function toExponential(fractionDigits) {
50
50
  var x = thisNumberValue(this);
51
- if (fractionDigits === undefined) return un$ToExponential(x);
51
+ if (fractionDigits === undefined) return nativeToExponential(x);
52
52
  var f = toIntegerOrInfinity(fractionDigits);
53
53
  if (!$isFinite(x)) return String(x);
54
54
  // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation
55
55
  if (f < 0 || f > 20) throw $RangeError('Incorrect fraction digits');
56
- if (ROUNDS_PROPERLY) return un$ToExponential(x, f);
56
+ if (ROUNDS_PROPERLY) return nativeToExponential(x, f);
57
57
  var s = '';
58
58
  var m = '';
59
59
  var e = 0;
@@ -11,7 +11,7 @@ var $String = String;
11
11
  var floor = Math.floor;
12
12
  var repeat = uncurryThis($repeat);
13
13
  var stringSlice = uncurryThis(''.slice);
14
- var un$ToFixed = uncurryThis(1.0.toFixed);
14
+ var nativeToFixed = uncurryThis(1.0.toFixed);
15
15
 
16
16
  var pow = function (x, n, acc) {
17
17
  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
@@ -62,13 +62,13 @@ var dataToString = function (data) {
62
62
  };
63
63
 
64
64
  var FORCED = fails(function () {
65
- return un$ToFixed(0.00008, 3) !== '0.000' ||
66
- un$ToFixed(0.9, 0) !== '1' ||
67
- un$ToFixed(1.255, 2) !== '1.25' ||
68
- un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';
65
+ return nativeToFixed(0.00008, 3) !== '0.000' ||
66
+ nativeToFixed(0.9, 0) !== '1' ||
67
+ nativeToFixed(1.255, 2) !== '1.25' ||
68
+ nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';
69
69
  }) || !fails(function () {
70
70
  // V8 ~ Android 4.3-
71
- un$ToFixed({});
71
+ nativeToFixed({});
72
72
  });
73
73
 
74
74
  // `Number.prototype.toFixed` method
@@ -4,14 +4,14 @@ var uncurryThis = require('../internals/function-uncurry-this');
4
4
  var fails = require('../internals/fails');
5
5
  var thisNumberValue = require('../internals/this-number-value');
6
6
 
7
- var un$ToPrecision = uncurryThis(1.0.toPrecision);
7
+ var nativeToPrecision = uncurryThis(1.0.toPrecision);
8
8
 
9
9
  var FORCED = fails(function () {
10
10
  // IE7-
11
- return un$ToPrecision(1, undefined) !== '1';
11
+ return nativeToPrecision(1, undefined) !== '1';
12
12
  }) || !fails(function () {
13
13
  // V8 ~ Android 4.3-
14
- un$ToPrecision({});
14
+ nativeToPrecision({});
15
15
  });
16
16
 
17
17
  // `Number.prototype.toPrecision` method
@@ -19,7 +19,7 @@ var FORCED = fails(function () {
19
19
  $({ target: 'Number', proto: true, forced: FORCED }, {
20
20
  toPrecision: function toPrecision(precision) {
21
21
  return precision === undefined
22
- ? un$ToPrecision(thisNumberValue(this))
23
- : un$ToPrecision(thisNumberValue(this), precision);
22
+ ? nativeToPrecision(thisNumberValue(this))
23
+ : nativeToPrecision(thisNumberValue(this), precision);
24
24
  }
25
25
  });
@@ -1,5 +1,5 @@
1
1
  var $ = require('../internals/export');
2
- var NATIVE_SYMBOL = require('../internals/native-symbol');
2
+ var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
3
3
  var fails = require('../internals/fails');
4
4
  var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');
5
5
  var toObject = require('../internals/to-object');
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+ var DESCRIPTORS = require('../internals/descriptors');
3
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
4
+ var isObject = require('../internals/is-object');
5
+ var toObject = require('../internals/to-object');
6
+ var requireObjectCoercible = require('../internals/require-object-coercible');
7
+
8
+ // eslint-disable-next-line es-x/no-object-getprototypeof -- safe
9
+ var getPrototypeOf = Object.getPrototypeOf;
10
+ // eslint-disable-next-line es-x/no-object-setprototypeof -- safe
11
+ var setPrototypeOf = Object.setPrototypeOf;
12
+ var ObjectPrototype = Object.prototype;
13
+ var PROTO = '__proto__';
14
+
15
+ // `Object.prototype.__proto__` accessor
16
+ // https://tc39.es/ecma262/#sec-object.prototype.__proto__
17
+ if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {
18
+ defineBuiltInAccessor(ObjectPrototype, PROTO, {
19
+ configurable: true,
20
+ get: function __proto__() {
21
+ return getPrototypeOf(toObject(this));
22
+ },
23
+ set: function __proto__(proto) {
24
+ var O = requireObjectCoercible(this);
25
+ if (!isObject(proto) && proto !== null || !isObject(O)) return;
26
+ setPrototypeOf(O, proto);
27
+ }
28
+ });
29
+ } catch (error) { /* empty */ }
@@ -3,9 +3,9 @@
3
3
  require('../modules/es.regexp.exec');
4
4
  var $ = require('../internals/export');
5
5
  var call = require('../internals/function-call');
6
- var uncurryThis = require('../internals/function-uncurry-this');
7
6
  var isCallable = require('../internals/is-callable');
8
- var isObject = require('../internals/is-object');
7
+ var anObject = require('../internals/an-object');
8
+ var toString = require('../internals/to-string');
9
9
 
10
10
  var DELEGATES_TO_EXEC = function () {
11
11
  var execCalled = false;
@@ -17,19 +17,19 @@ var DELEGATES_TO_EXEC = function () {
17
17
  return re.test('abc') === true && execCalled;
18
18
  }();
19
19
 
20
- var $TypeError = TypeError;
21
- var un$Test = uncurryThis(/./.test);
20
+ var nativeTest = /./.test;
22
21
 
23
22
  // `RegExp.prototype.test` method
24
23
  // https://tc39.es/ecma262/#sec-regexp.prototype.test
25
24
  $({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
26
- test: function (str) {
27
- var exec = this.exec;
28
- if (!isCallable(exec)) return un$Test(this, str);
29
- var result = call(exec, this, str);
30
- if (result !== null && !isObject(result)) {
31
- throw new $TypeError('RegExp exec method returned something other than an Object or null');
32
- }
33
- return !!result;
25
+ test: function (S) {
26
+ var R = anObject(this);
27
+ var string = toString(S);
28
+ var exec = R.exec;
29
+ if (!isCallable(exec)) return call(nativeTest, R, string);
30
+ var result = call(exec, R, string);
31
+ if (result === null) return false;
32
+ anObject(result);
33
+ return true;
34
34
  }
35
35
  });
@@ -8,11 +8,11 @@ var getRegExpFlags = require('../internals/regexp-get-flags');
8
8
 
9
9
  var TO_STRING = 'toString';
10
10
  var RegExpPrototype = RegExp.prototype;
11
- var n$ToString = RegExpPrototype[TO_STRING];
11
+ var nativeToString = RegExpPrototype[TO_STRING];
12
12
 
13
- var NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
13
+ var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
14
14
  // FF44- RegExp#toString has a wrong name
15
- var INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;
15
+ var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;
16
16
 
17
17
  // `RegExp.prototype.toString` method
18
18
  // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
@@ -10,7 +10,7 @@ var correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');
10
10
  var IS_PURE = require('../internals/is-pure');
11
11
 
12
12
  // eslint-disable-next-line es-x/no-string-prototype-endswith -- safe
13
- var un$EndsWith = uncurryThis(''.endsWith);
13
+ var nativeEndsWith = uncurryThis(''.endsWith);
14
14
  var slice = uncurryThis(''.slice);
15
15
  var min = Math.min;
16
16
 
@@ -31,8 +31,8 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
31
31
  var len = that.length;
32
32
  var end = endPosition === undefined ? len : min(toLength(endPosition), len);
33
33
  var search = toString(searchString);
34
- return un$EndsWith
35
- ? un$EndsWith(that, search, end)
34
+ return nativeEndsWith
35
+ ? nativeEndsWith(that, search, end)
36
36
  : slice(that, end - search.length, end) === search;
37
37
  }
38
38
  });
@@ -2,7 +2,7 @@
2
2
  var charAt = require('../internals/string-multibyte').charAt;
3
3
  var toString = require('../internals/to-string');
4
4
  var InternalStateModule = require('../internals/internal-state');
5
- var defineIterator = require('../internals/define-iterator');
5
+ var defineIterator = require('../internals/iterator-define');
6
6
 
7
7
  var STRING_ITERATOR = 'String Iterator';
8
8
  var setInternalState = InternalStateModule.set;
@@ -3,11 +3,12 @@
3
3
  var $ = require('../internals/export');
4
4
  var call = require('../internals/function-call');
5
5
  var uncurryThis = require('../internals/function-uncurry-this');
6
- var createIteratorConstructor = require('../internals/create-iterator-constructor');
6
+ var createIteratorConstructor = require('../internals/iterator-create-constructor');
7
7
  var requireObjectCoercible = require('../internals/require-object-coercible');
8
8
  var toLength = require('../internals/to-length');
9
9
  var toString = require('../internals/to-string');
10
10
  var anObject = require('../internals/an-object');
11
+ var isNullOrUndefined = require('../internals/is-null-or-undefined');
11
12
  var classof = require('../internals/classof-raw');
12
13
  var isRegExp = require('../internals/is-regexp');
13
14
  var getRegExpFlags = require('../internals/regexp-get-flags');
@@ -29,10 +30,10 @@ var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
29
30
  var RegExpPrototype = RegExp.prototype;
30
31
  var $TypeError = TypeError;
31
32
  var stringIndexOf = uncurryThis(''.indexOf);
32
- var un$MatchAll = uncurryThis(''.matchAll);
33
+ var nativeMatchAll = uncurryThis(''.matchAll);
33
34
 
34
- var WORKS_WITH_NON_GLOBAL_REGEX = !!un$MatchAll && !fails(function () {
35
- un$MatchAll('a', /./);
35
+ var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
36
+ nativeMatchAll('a', /./);
36
37
  });
37
38
 
38
39
  var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {
@@ -78,16 +79,16 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
78
79
  matchAll: function matchAll(regexp) {
79
80
  var O = requireObjectCoercible(this);
80
81
  var flags, S, matcher, rx;
81
- if (regexp != null) {
82
+ if (!isNullOrUndefined(regexp)) {
82
83
  if (isRegExp(regexp)) {
83
84
  flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));
84
85
  if (!~stringIndexOf(flags, 'g')) throw $TypeError('`.matchAll` does not allow non-global regexes');
85
86
  }
86
- if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
87
+ if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
87
88
  matcher = getMethod(regexp, MATCH_ALL);
88
89
  if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
89
90
  if (matcher) return call(matcher, regexp, O);
90
- } else if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
91
+ } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
91
92
  S = toString(O);
92
93
  rx = new RegExp(regexp, 'g');
93
94
  return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);