core-js 3.24.0 → 3.25.1

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 (131) hide show
  1. package/README.md +2 -2
  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 +3 -2
  15. package/internals/async-iterator-create-proxy.js +20 -11
  16. package/internals/async-iterator-indexed.js +3 -2
  17. package/internals/collection-from.js +2 -1
  18. package/internals/collection-strong.js +8 -6
  19. package/internals/collection-weak.js +3 -2
  20. package/internals/collection.js +2 -1
  21. package/internals/create-iter-result-object.js +5 -0
  22. package/internals/date-to-iso-string.js +7 -6
  23. package/internals/engine-is-browser.js +6 -1
  24. package/internals/{clear-error-stack.js → error-stack-clear.js} +0 -0
  25. package/internals/get-iterator-method.js +2 -1
  26. package/internals/get-method.js +2 -1
  27. package/internals/internal-state.js +3 -3
  28. package/internals/is-iterable.js +2 -0
  29. package/internals/is-null-or-undefined.js +5 -0
  30. package/internals/is-object.js +8 -1
  31. package/internals/{create-iterator-constructor.js → iterator-create-constructor.js} +0 -0
  32. package/internals/iterator-create-proxy.js +9 -5
  33. package/internals/{define-iterator.js → iterator-define.js} +1 -1
  34. package/internals/iterators-core.js +2 -1
  35. package/internals/new-promise-capability.js +3 -1
  36. package/internals/number-parse-float.js +5 -5
  37. package/internals/numeric-range-iterator.js +13 -10
  38. package/internals/object-iterator.js +6 -5
  39. package/internals/promise-constructor-detection.js +1 -1
  40. package/internals/require-object-coercible.js +3 -1
  41. package/internals/shared.js +2 -2
  42. package/internals/species-constructor.js +2 -1
  43. package/internals/{native-symbol.js → symbol-constructor-detection.js} +0 -0
  44. package/internals/{native-symbol-registry.js → symbol-registry-detection.js} +1 -1
  45. package/internals/typed-array-from.js +7 -2
  46. package/internals/{native-url.js → url-constructor-detection.js} +0 -0
  47. package/internals/use-symbol-as-uid.js +1 -1
  48. package/internals/weak-map-basic-detection.js +6 -0
  49. package/internals/{define-well-known-symbol.js → well-known-symbol-define.js} +0 -0
  50. package/internals/well-known-symbol.js +1 -1
  51. package/internals/wrap-error-constructor-with-cause.js +1 -1
  52. package/modules/es.aggregate-error.cause.js +1 -0
  53. package/modules/es.aggregate-error.constructor.js +2 -2
  54. package/modules/es.array-buffer.slice.js +3 -3
  55. package/modules/es.array.index-of.js +5 -5
  56. package/modules/es.array.iterator.js +6 -5
  57. package/modules/es.array.join.js +2 -2
  58. package/modules/es.array.push.js +2 -1
  59. package/modules/es.array.reverse.js +2 -2
  60. package/modules/es.array.slice.js +2 -2
  61. package/modules/es.array.sort.js +3 -3
  62. package/modules/es.array.splice.js +2 -1
  63. package/modules/es.array.unshift.js +2 -1
  64. package/modules/es.data-view.constructor.js +1 -1
  65. package/modules/es.date.now.js +2 -2
  66. package/modules/es.date.set-year.js +2 -2
  67. package/modules/es.date.to-string.js +4 -4
  68. package/modules/es.global-this.js +1 -1
  69. package/modules/es.json.stringify.js +1 -1
  70. package/modules/es.number.to-exponential.js +11 -11
  71. package/modules/es.number.to-fixed.js +6 -6
  72. package/modules/es.number.to-precision.js +5 -5
  73. package/modules/es.object.get-own-property-symbols.js +1 -1
  74. package/modules/es.object.proto.js +29 -0
  75. package/modules/es.regexp.test.js +12 -12
  76. package/modules/es.regexp.to-string.js +3 -3
  77. package/modules/es.string.ends-with.js +3 -3
  78. package/modules/es.string.iterator.js +4 -3
  79. package/modules/es.string.match-all.js +16 -11
  80. package/modules/es.string.match.js +2 -1
  81. package/modules/es.string.replace-all.js +2 -1
  82. package/modules/es.string.replace.js +2 -1
  83. package/modules/es.string.search.js +2 -1
  84. package/modules/es.string.split.js +3 -2
  85. package/modules/es.string.starts-with.js +3 -3
  86. package/modules/es.symbol.async-iterator.js +1 -1
  87. package/modules/es.symbol.constructor.js +2 -2
  88. package/modules/es.symbol.description.js +4 -4
  89. package/modules/es.symbol.for.js +1 -1
  90. package/modules/es.symbol.has-instance.js +1 -1
  91. package/modules/es.symbol.is-concat-spreadable.js +1 -1
  92. package/modules/es.symbol.iterator.js +1 -1
  93. package/modules/es.symbol.key-for.js +1 -1
  94. package/modules/es.symbol.match-all.js +1 -1
  95. package/modules/es.symbol.match.js +1 -1
  96. package/modules/es.symbol.replace.js +1 -1
  97. package/modules/es.symbol.search.js +1 -1
  98. package/modules/es.symbol.species.js +1 -1
  99. package/modules/es.symbol.split.js +1 -1
  100. package/modules/es.symbol.to-primitive.js +1 -1
  101. package/modules/es.symbol.to-string-tag.js +1 -1
  102. package/modules/es.symbol.unscopables.js +1 -1
  103. package/modules/es.typed-array.sort.js +7 -7
  104. package/modules/es.weak-map.constructor.js +1 -1
  105. package/modules/esnext.array.is-template-object.js +1 -1
  106. package/modules/esnext.async-iterator.drop.js +3 -2
  107. package/modules/esnext.async-iterator.filter.js +3 -2
  108. package/modules/esnext.async-iterator.flat-map.js +3 -2
  109. package/modules/esnext.async-iterator.map.js +3 -2
  110. package/modules/esnext.async-iterator.take.js +4 -3
  111. package/modules/esnext.math.seeded-prng.js +3 -2
  112. package/modules/esnext.observable.constructor.js +4 -3
  113. package/modules/esnext.string.code-points.js +4 -3
  114. package/modules/esnext.symbol.async-dispose.js +1 -1
  115. package/modules/esnext.symbol.dispose.js +1 -1
  116. package/modules/esnext.symbol.matcher.js +1 -1
  117. package/modules/esnext.symbol.metadata-key.js +1 -1
  118. package/modules/esnext.symbol.metadata.js +1 -1
  119. package/modules/esnext.symbol.observable.js +1 -1
  120. package/modules/esnext.symbol.pattern-match.js +1 -1
  121. package/modules/esnext.symbol.replace-all.js +1 -1
  122. package/modules/esnext.typed-array.to-spliced.js +7 -2
  123. package/modules/web.dom-exception.constructor.js +1 -1
  124. package/modules/web.dom-exception.stack.js +1 -1
  125. package/modules/web.structured-clone.js +26 -14
  126. package/modules/web.url-search-params.constructor.js +2 -2
  127. package/modules/web.url.constructor.js +1 -1
  128. package/package.json +1 -1
  129. package/stable/index.js +1 -0
  130. package/stable/object/proto.js +3 -0
  131. package/internals/native-weak-map.js +0 -7
@@ -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,8 @@
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
+ var createIterResultObject = require('../internals/create-iter-result-object');
6
7
 
7
8
  var STRING_ITERATOR = 'String Iterator';
8
9
  var setInternalState = InternalStateModule.set;
@@ -23,8 +24,8 @@ defineIterator(String, 'String', function (iterated) {
23
24
  var string = state.string;
24
25
  var index = state.index;
25
26
  var point;
26
- if (index >= string.length) return { value: undefined, done: true };
27
+ if (index >= string.length) return createIterResultObject(undefined, true);
27
28
  point = charAt(string, index);
28
29
  state.index += point.length;
29
- return { value: point, done: false };
30
+ return createIterResultObject(point, false);
30
31
  });
@@ -3,11 +3,13 @@
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
+ var createIterResultObject = require('../internals/create-iter-result-object');
7
8
  var requireObjectCoercible = require('../internals/require-object-coercible');
8
9
  var toLength = require('../internals/to-length');
9
10
  var toString = require('../internals/to-string');
10
11
  var anObject = require('../internals/an-object');
12
+ var isNullOrUndefined = require('../internals/is-null-or-undefined');
11
13
  var classof = require('../internals/classof-raw');
12
14
  var isRegExp = require('../internals/is-regexp');
13
15
  var getRegExpFlags = require('../internals/regexp-get-flags');
@@ -29,10 +31,10 @@ var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
29
31
  var RegExpPrototype = RegExp.prototype;
30
32
  var $TypeError = TypeError;
31
33
  var stringIndexOf = uncurryThis(''.indexOf);
32
- var un$MatchAll = uncurryThis(''.matchAll);
34
+ var nativeMatchAll = uncurryThis(''.matchAll);
33
35
 
34
- var WORKS_WITH_NON_GLOBAL_REGEX = !!un$MatchAll && !fails(function () {
35
- un$MatchAll('a', /./);
36
+ var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
37
+ nativeMatchAll('a', /./);
36
38
  });
37
39
 
38
40
  var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {
@@ -46,17 +48,20 @@ var $RegExpStringIterator = createIteratorConstructor(function RegExpStringItera
46
48
  });
47
49
  }, REGEXP_STRING, function next() {
48
50
  var state = getInternalState(this);
49
- if (state.done) return { value: undefined, done: true };
51
+ if (state.done) return createIterResultObject(undefined, true);
50
52
  var R = state.regexp;
51
53
  var S = state.string;
52
54
  var match = regExpExec(R, S);
53
- if (match === null) return { value: undefined, done: state.done = true };
55
+ if (match === null) {
56
+ state.done = true;
57
+ return createIterResultObject(undefined, true);
58
+ }
54
59
  if (state.global) {
55
60
  if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);
56
- return { value: match, done: false };
61
+ return createIterResultObject(match, false);
57
62
  }
58
63
  state.done = true;
59
- return { value: match, done: false };
64
+ return createIterResultObject(match, false);
60
65
  });
61
66
 
62
67
  var $matchAll = function (string) {
@@ -78,16 +83,16 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
78
83
  matchAll: function matchAll(regexp) {
79
84
  var O = requireObjectCoercible(this);
80
85
  var flags, S, matcher, rx;
81
- if (regexp != null) {
86
+ if (!isNullOrUndefined(regexp)) {
82
87
  if (isRegExp(regexp)) {
83
88
  flags = toString(requireObjectCoercible(getRegExpFlags(regexp)));
84
89
  if (!~stringIndexOf(flags, 'g')) throw $TypeError('`.matchAll` does not allow non-global regexes');
85
90
  }
86
- if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
91
+ if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
87
92
  matcher = getMethod(regexp, MATCH_ALL);
88
93
  if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
89
94
  if (matcher) return call(matcher, regexp, O);
90
- } else if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
95
+ } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp);
91
96
  S = toString(O);
92
97
  rx = new RegExp(regexp, 'g');
93
98
  return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);
@@ -2,6 +2,7 @@
2
2
  var call = require('../internals/function-call');
3
3
  var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');
4
4
  var anObject = require('../internals/an-object');
5
+ var isNullOrUndefined = require('../internals/is-null-or-undefined');
5
6
  var toLength = require('../internals/to-length');
6
7
  var toString = require('../internals/to-string');
7
8
  var requireObjectCoercible = require('../internals/require-object-coercible');
@@ -16,7 +17,7 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa
16
17
  // https://tc39.es/ecma262/#sec-string.prototype.match
17
18
  function match(regexp) {
18
19
  var O = requireObjectCoercible(this);
19
- var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);
20
+ var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);
20
21
  return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));
21
22
  },
22
23
  // `RegExp.prototype[@@match]` method
@@ -4,6 +4,7 @@ var call = require('../internals/function-call');
4
4
  var uncurryThis = require('../internals/function-uncurry-this');
5
5
  var requireObjectCoercible = require('../internals/require-object-coercible');
6
6
  var isCallable = require('../internals/is-callable');
7
+ var isNullOrUndefined = require('../internals/is-null-or-undefined');
7
8
  var isRegExp = require('../internals/is-regexp');
8
9
  var toString = require('../internals/to-string');
9
10
  var getMethod = require('../internals/get-method');
@@ -34,7 +35,7 @@ $({ target: 'String', proto: true }, {
34
35
  var position = 0;
35
36
  var endOfLastMatch = 0;
36
37
  var result = '';
37
- if (searchValue != null) {
38
+ if (!isNullOrUndefined(searchValue)) {
38
39
  IS_REG_EXP = isRegExp(searchValue);
39
40
  if (IS_REG_EXP) {
40
41
  flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));
@@ -6,6 +6,7 @@ var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-
6
6
  var fails = require('../internals/fails');
7
7
  var anObject = require('../internals/an-object');
8
8
  var isCallable = require('../internals/is-callable');
9
+ var isNullOrUndefined = require('../internals/is-null-or-undefined');
9
10
  var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
10
11
  var toLength = require('../internals/to-length');
11
12
  var toString = require('../internals/to-string');
@@ -63,7 +64,7 @@ fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNa
63
64
  // https://tc39.es/ecma262/#sec-string.prototype.replace
64
65
  function replace(searchValue, replaceValue) {
65
66
  var O = requireObjectCoercible(this);
66
- var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);
67
+ var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);
67
68
  return replacer
68
69
  ? call(replacer, searchValue, O, replaceValue)
69
70
  : call(nativeReplace, toString(O), searchValue, replaceValue);
@@ -2,6 +2,7 @@
2
2
  var call = require('../internals/function-call');
3
3
  var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');
4
4
  var anObject = require('../internals/an-object');
5
+ var isNullOrUndefined = require('../internals/is-null-or-undefined');
5
6
  var requireObjectCoercible = require('../internals/require-object-coercible');
6
7
  var sameValue = require('../internals/same-value');
7
8
  var toString = require('../internals/to-string');
@@ -15,7 +16,7 @@ fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCal
15
16
  // https://tc39.es/ecma262/#sec-string.prototype.search
16
17
  function search(regexp) {
17
18
  var O = requireObjectCoercible(this);
18
- var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);
19
+ var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);
19
20
  return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));
20
21
  },
21
22
  // `RegExp.prototype[@@search]` method
@@ -3,8 +3,9 @@ var apply = require('../internals/function-apply');
3
3
  var call = require('../internals/function-call');
4
4
  var uncurryThis = require('../internals/function-uncurry-this');
5
5
  var fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');
6
- var isRegExp = require('../internals/is-regexp');
7
6
  var anObject = require('../internals/an-object');
7
+ var isNullOrUndefined = require('../internals/is-null-or-undefined');
8
+ var isRegExp = require('../internals/is-regexp');
8
9
  var requireObjectCoercible = require('../internals/require-object-coercible');
9
10
  var speciesConstructor = require('../internals/species-constructor');
10
11
  var advanceStringIndex = require('../internals/advance-string-index');
@@ -96,7 +97,7 @@ fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNa
96
97
  // https://tc39.es/ecma262/#sec-string.prototype.split
97
98
  function split(separator, limit) {
98
99
  var O = requireObjectCoercible(this);
99
- var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);
100
+ var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);
100
101
  return splitter
101
102
  ? call(splitter, separator, O, limit)
102
103
  : call(internalSplit, toString(O), separator, limit);
@@ -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-startswith -- safe
13
- var un$StartsWith = uncurryThis(''.startsWith);
13
+ var nativeStartsWith = uncurryThis(''.startsWith);
14
14
  var stringSlice = uncurryThis(''.slice);
15
15
  var min = Math.min;
16
16
 
@@ -29,8 +29,8 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
29
29
  notARegExp(searchString);
30
30
  var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
31
31
  var search = toString(searchString);
32
- return un$StartsWith
33
- ? un$StartsWith(that, search, index)
32
+ return nativeStartsWith
33
+ ? nativeStartsWith(that, search, index)
34
34
  : stringSlice(that, index, index + search.length) === search;
35
35
  }
36
36
  });
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.asyncIterator` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.asynciterator
@@ -5,7 +5,7 @@ var call = require('../internals/function-call');
5
5
  var uncurryThis = require('../internals/function-uncurry-this');
6
6
  var IS_PURE = require('../internals/is-pure');
7
7
  var DESCRIPTORS = require('../internals/descriptors');
8
- var NATIVE_SYMBOL = require('../internals/native-symbol');
8
+ var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
9
9
  var fails = require('../internals/fails');
10
10
  var hasOwn = require('../internals/has-own-property');
11
11
  var isPrototypeOf = require('../internals/object-is-prototype-of');
@@ -30,7 +30,7 @@ var hiddenKeys = require('../internals/hidden-keys');
30
30
  var uid = require('../internals/uid');
31
31
  var wellKnownSymbol = require('../internals/well-known-symbol');
32
32
  var wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');
33
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
33
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
34
34
  var defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');
35
35
  var setToStringTag = require('../internals/set-to-string-tag');
36
36
  var InternalStateModule = require('../internals/internal-state');
@@ -36,8 +36,8 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy
36
36
  SymbolPrototype.constructor = SymbolWrapper;
37
37
 
38
38
  var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';
39
- var symbolToString = uncurryThis(SymbolPrototype.toString);
40
- var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);
39
+ var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);
40
+ var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);
41
41
  var regexp = /^Symbol\((.*)\)[^)]+$/;
42
42
  var replace = uncurryThis(''.replace);
43
43
  var stringSlice = uncurryThis(''.slice);
@@ -45,9 +45,9 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy
45
45
  defineProperty(SymbolPrototype, 'description', {
46
46
  configurable: true,
47
47
  get: function description() {
48
- var symbol = symbolValueOf(this);
49
- var string = symbolToString(symbol);
48
+ var symbol = thisSymbolValue(this);
50
49
  if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';
50
+ var string = symbolDescriptiveString(symbol);
51
51
  var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');
52
52
  return desc === '' ? undefined : desc;
53
53
  }
@@ -3,7 +3,7 @@ var getBuiltIn = require('../internals/get-built-in');
3
3
  var hasOwn = require('../internals/has-own-property');
4
4
  var toString = require('../internals/to-string');
5
5
  var shared = require('../internals/shared');
6
- var NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');
6
+ var NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');
7
7
 
8
8
  var StringToSymbolRegistry = shared('string-to-symbol-registry');
9
9
  var SymbolToStringRegistry = shared('symbol-to-string-registry');
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.hasInstance` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.hasinstance
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.isConcatSpreadable` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.isconcatspreadable
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.iterator` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.iterator
@@ -3,7 +3,7 @@ var hasOwn = require('../internals/has-own-property');
3
3
  var isSymbol = require('../internals/is-symbol');
4
4
  var tryToString = require('../internals/try-to-string');
5
5
  var shared = require('../internals/shared');
6
- var NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');
6
+ var NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');
7
7
 
8
8
  var SymbolToStringRegistry = shared('symbol-to-string-registry');
9
9
 
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.matchAll` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.matchall
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.match` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.match
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.replace` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.replace
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.search` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.search
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.species` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.species
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.split` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.split
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
  var defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');
3
3
 
4
4
  // `Symbol.toPrimitive` well-known symbol
@@ -1,5 +1,5 @@
1
1
  var getBuiltIn = require('../internals/get-built-in');
2
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
2
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
3
3
  var setToStringTag = require('../internals/set-to-string-tag');
4
4
 
5
5
  // `Symbol.toStringTag` well-known symbol
@@ -1,4 +1,4 @@
1
- var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
1
+ var defineWellKnownSymbol = require('../internals/well-known-symbol-define');
2
2
 
3
3
  // `Symbol.unscopables` well-known symbol
4
4
  // https://tc39.es/ecma262/#sec-symbol.unscopables
@@ -13,16 +13,16 @@ var WEBKIT = require('../internals/engine-webkit-version');
13
13
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
14
14
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
15
15
  var Uint16Array = global.Uint16Array;
16
- var un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);
16
+ var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);
17
17
 
18
18
  // WebKit
19
- var ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {
20
- un$Sort(new Uint16Array(2), null);
19
+ var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {
20
+ nativeSort(new Uint16Array(2), null);
21
21
  }) && fails(function () {
22
- un$Sort(new Uint16Array(2), {});
22
+ nativeSort(new Uint16Array(2), {});
23
23
  }));
24
24
 
25
- var STABLE_SORT = !!un$Sort && !fails(function () {
25
+ var STABLE_SORT = !!nativeSort && !fails(function () {
26
26
  // feature detection can be too slow, so check engines versions
27
27
  if (V8) return V8 < 74;
28
28
  if (FF) return FF < 67;
@@ -39,7 +39,7 @@ var STABLE_SORT = !!un$Sort && !fails(function () {
39
39
  expected[index] = index - 2 * mod + 3;
40
40
  }
41
41
 
42
- un$Sort(array, function (a, b) {
42
+ nativeSort(array, function (a, b) {
43
43
  return (a / 4 | 0) - (b / 4 | 0);
44
44
  });
45
45
 
@@ -64,7 +64,7 @@ var getSortCompare = function (comparefn) {
64
64
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort
65
65
  exportTypedArrayMethod('sort', function sort(comparefn) {
66
66
  if (comparefn !== undefined) aCallable(comparefn);
67
- if (STABLE_SORT) return un$Sort(this, comparefn);
67
+ if (STABLE_SORT) return nativeSort(this, comparefn);
68
68
 
69
69
  return internalSort(aTypedArray(this), getSortCompare(comparefn));
70
70
  }, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);
@@ -8,7 +8,7 @@ var collectionWeak = require('../internals/collection-weak');
8
8
  var isObject = require('../internals/is-object');
9
9
  var isExtensible = require('../internals/object-is-extensible');
10
10
  var enforceInternalState = require('../internals/internal-state').enforce;
11
- var NATIVE_WEAK_MAP = require('../internals/native-weak-map');
11
+ var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');
12
12
 
13
13
  var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
14
14
  var InternalWeakMap;
@@ -11,7 +11,7 @@ var isFrozenStringArray = function (array, allowUndefined) {
11
11
  var element;
12
12
  while (index < length) {
13
13
  element = array[index++];
14
- if (!(typeof element == 'string' || (allowUndefined && typeof element == 'undefined'))) {
14
+ if (!(typeof element == 'string' || (allowUndefined && element === undefined))) {
15
15
  return false;
16
16
  }
17
17
  } return length !== 0;
@@ -7,6 +7,7 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
7
7
  var notANaN = require('../internals/not-a-nan');
8
8
  var toPositiveInteger = require('../internals/to-positive-integer');
9
9
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
10
+ var createIterResultObject = require('../internals/create-iter-result-object');
10
11
 
11
12
  var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
12
13
  var state = this;
@@ -23,11 +24,11 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
23
24
  try {
24
25
  if (anObject(step).done) {
25
26
  state.done = true;
26
- resolve({ done: true, value: undefined });
27
+ resolve(createIterResultObject(undefined, true));
27
28
  } else if (state.remaining) {
28
29
  state.remaining--;
29
30
  loop();
30
- } else resolve({ done: false, value: step.value });
31
+ } else resolve(createIterResultObject(step.value, false));
31
32
  } catch (err) { doneAndReject(err); }
32
33
  }, doneAndReject);
33
34
  } catch (error) { doneAndReject(error); }
@@ -6,6 +6,7 @@ var aCallable = require('../internals/a-callable');
6
6
  var anObject = require('../internals/an-object');
7
7
  var getIteratorDirect = require('../internals/get-iterator-direct');
8
8
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
9
+ var createIterResultObject = require('../internals/create-iter-result-object');
9
10
  var closeAsyncIteration = require('../internals/async-iterator-close');
10
11
 
11
12
  var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
@@ -29,12 +30,12 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
29
30
  try {
30
31
  if (anObject(step).done) {
31
32
  state.done = true;
32
- resolve({ done: true, value: undefined });
33
+ resolve(createIterResultObject(undefined, true));
33
34
  } else {
34
35
  var value = step.value;
35
36
  try {
36
37
  Promise.resolve(filterer(value)).then(function (selected) {
37
- selected ? resolve({ done: false, value: value }) : loop();
38
+ selected ? resolve(createIterResultObject(value, false)) : loop();
38
39
  }, ifAbruptCloseAsyncIterator);
39
40
  } catch (error3) { ifAbruptCloseAsyncIterator(error3); }
40
41
  }