core-js 3.17.2 → 3.18.2

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 (225) hide show
  1. package/configurator.js +7 -3
  2. package/es/promise/all-settled.js +2 -1
  3. package/es/promise/any.js +2 -1
  4. package/features/array/from-async.js +8 -0
  5. package/features/array/index.js +2 -0
  6. package/features/index.js +2 -0
  7. package/features/map/from.js +2 -1
  8. package/features/map/group-by.js +2 -1
  9. package/features/map/key-by.js +2 -1
  10. package/features/map/of.js +2 -1
  11. package/features/promise/try.js +2 -1
  12. package/features/set/from.js +2 -1
  13. package/features/set/of.js +2 -1
  14. package/features/typed-array/from-async.js +1 -0
  15. package/features/typed-array/index.js +2 -0
  16. package/features/typed-array/methods.js +2 -0
  17. package/features/weak-map/from.js +2 -1
  18. package/features/weak-map/of.js +2 -1
  19. package/features/weak-set/from.js +2 -1
  20. package/features/weak-set/of.js +2 -1
  21. package/internals/a-callable.js +8 -0
  22. package/internals/a-constructor.js +8 -0
  23. package/internals/a-possible-prototype.js +4 -5
  24. package/internals/an-instance.js +2 -3
  25. package/internals/an-object.js +4 -4
  26. package/internals/array-buffer-view-core.js +13 -12
  27. package/internals/array-buffer.js +9 -3
  28. package/internals/array-copy-within.js +2 -2
  29. package/internals/array-fill.js +2 -2
  30. package/internals/array-from-async.js +36 -0
  31. package/internals/array-from.js +8 -7
  32. package/internals/array-group-by.js +2 -2
  33. package/internals/array-includes.js +2 -2
  34. package/internals/array-iteration-from-last.js +2 -2
  35. package/internals/array-iteration.js +2 -2
  36. package/internals/array-last-index-of.js +4 -4
  37. package/internals/array-reduce.js +4 -4
  38. package/internals/array-species-constructor.js +3 -2
  39. package/internals/array-unique-by.js +5 -5
  40. package/internals/async-from-sync-iterator.js +4 -4
  41. package/internals/async-iterator-create-proxy.js +7 -6
  42. package/internals/async-iterator-iteration.js +27 -15
  43. package/internals/async-iterator-prototype.js +16 -16
  44. package/internals/classof.js +2 -1
  45. package/internals/collection-add-all.js +2 -2
  46. package/internals/collection-delete-all.js +2 -2
  47. package/internals/collection-from.js +4 -3
  48. package/internals/collection-weak.js +3 -3
  49. package/internals/collection.js +2 -1
  50. package/internals/copy-constructor-properties.js +2 -2
  51. package/internals/define-iterator.js +21 -13
  52. package/internals/define-well-known-symbol.js +2 -2
  53. package/internals/dom-token-list-prototype.js +7 -0
  54. package/internals/export.js +1 -0
  55. package/internals/flatten-into-array.js +4 -3
  56. package/internals/function-bind-context.js +2 -2
  57. package/internals/function-bind.js +2 -2
  58. package/internals/function-name.js +17 -0
  59. package/internals/get-async-iterator.js +2 -5
  60. package/internals/get-built-in.js +3 -2
  61. package/internals/get-iterator-method.js +3 -2
  62. package/internals/get-iterator.js +5 -5
  63. package/internals/get-method.js +4 -3
  64. package/internals/{has.js → has-own-property.js} +2 -0
  65. package/internals/inherit-if-required.js +2 -1
  66. package/internals/inspect-source.js +2 -1
  67. package/internals/install-error-cause.js +10 -0
  68. package/internals/internal-metadata.js +4 -4
  69. package/internals/internal-state.js +4 -4
  70. package/internals/is-array.js +2 -2
  71. package/internals/is-callable.js +5 -0
  72. package/internals/is-constructor.js +41 -0
  73. package/internals/is-data-descriptor.js +2 -2
  74. package/internals/is-forced.js +2 -1
  75. package/internals/is-integral-number.js +10 -0
  76. package/internals/is-object.js +3 -1
  77. package/internals/is-symbol.js +2 -1
  78. package/internals/iterate.js +3 -3
  79. package/internals/iterator-close.js +3 -2
  80. package/internals/iterator-create-proxy.js +10 -9
  81. package/internals/iterators-core.js +8 -6
  82. package/internals/length-of-array-like.js +7 -0
  83. package/internals/map-upsert.js +4 -3
  84. package/internals/native-weak-map.js +2 -1
  85. package/internals/new-promise-capability.js +3 -3
  86. package/internals/number-parse-float.js +6 -1
  87. package/internals/number-parse-int.js +6 -1
  88. package/internals/object-get-own-property-descriptor.js +2 -2
  89. package/internals/object-get-prototype-of.js +8 -6
  90. package/internals/object-iterator.js +2 -2
  91. package/internals/object-keys-internal.js +3 -3
  92. package/internals/ordinary-to-primitive.js +4 -3
  93. package/internals/redefine.js +12 -6
  94. package/internals/regexp-exec-abstract.js +8 -13
  95. package/internals/regexp-unsupported-dot-all.js +1 -1
  96. package/internals/regexp-unsupported-ncg.js +1 -1
  97. package/internals/set-to-string-tag.js +2 -2
  98. package/internals/shared.js +1 -1
  99. package/internals/species-constructor.js +2 -2
  100. package/internals/string-multibyte.js +2 -3
  101. package/internals/string-pad-webkit-bug.js +0 -1
  102. package/internals/string-pad.js +1 -1
  103. package/internals/string-repeat.js +2 -2
  104. package/internals/string-trim-forced.js +4 -1
  105. package/internals/task.js +3 -2
  106. package/internals/to-absolute-index.js +2 -2
  107. package/internals/to-index.js +2 -2
  108. package/internals/to-integer-or-infinity.js +10 -0
  109. package/internals/to-length.js +2 -2
  110. package/internals/to-positive-integer.js +2 -2
  111. package/internals/to-primitive.js +3 -2
  112. package/internals/to-string.js +2 -2
  113. package/internals/try-to-string.js +7 -0
  114. package/internals/typed-array-constructor.js +8 -8
  115. package/internals/typed-array-from.js +6 -4
  116. package/internals/well-known-symbol.js +3 -3
  117. package/modules/es.aggregate-error.js +5 -2
  118. package/modules/es.array.at.js +4 -4
  119. package/modules/es.array.concat.js +2 -2
  120. package/modules/es.array.flat-map.js +4 -4
  121. package/modules/es.array.flat.js +4 -4
  122. package/modules/es.array.of.js +2 -1
  123. package/modules/es.array.slice.js +5 -4
  124. package/modules/es.array.sort.js +4 -4
  125. package/modules/es.array.splice.js +4 -4
  126. package/modules/es.date.set-year.js +2 -2
  127. package/modules/es.date.to-primitive.js +2 -2
  128. package/modules/es.function.has-instance.js +2 -1
  129. package/modules/es.function.name.js +2 -1
  130. package/modules/es.number.constructor.js +15 -14
  131. package/modules/es.number.is-integer.js +2 -2
  132. package/modules/es.number.is-safe-integer.js +2 -2
  133. package/modules/es.number.to-fixed.js +2 -2
  134. package/modules/es.object.define-getter.js +2 -2
  135. package/modules/es.object.define-setter.js +2 -2
  136. package/modules/es.object.has-own.js +1 -1
  137. package/modules/es.parse-float.js +3 -3
  138. package/modules/es.parse-int.js +3 -3
  139. package/modules/es.promise.all-settled.js +2 -2
  140. package/modules/es.promise.any.js +2 -2
  141. package/modules/es.promise.finally.js +3 -2
  142. package/modules/es.promise.js +10 -9
  143. package/modules/es.reflect.apply.js +2 -2
  144. package/modules/es.reflect.construct.js +3 -3
  145. package/modules/es.regexp.constructor.js +2 -2
  146. package/modules/es.regexp.test.js +4 -4
  147. package/modules/es.regexp.to-string.js +2 -1
  148. package/modules/es.string.at-alternative.js +3 -4
  149. package/modules/es.string.ends-with.js +1 -1
  150. package/modules/es.string.match-all.js +6 -16
  151. package/modules/es.string.match.js +3 -2
  152. package/modules/es.string.raw.js +12 -6
  153. package/modules/es.string.replace-all.js +5 -3
  154. package/modules/es.string.replace.js +7 -5
  155. package/modules/es.string.search.js +3 -2
  156. package/modules/es.string.split.js +3 -2
  157. package/modules/es.string.substr.js +7 -4
  158. package/modules/es.string.trim-end.js +1 -1
  159. package/modules/es.string.trim-start.js +1 -1
  160. package/modules/es.symbol.description.js +4 -3
  161. package/modules/es.symbol.js +20 -16
  162. package/modules/es.typed-array.at.js +4 -4
  163. package/modules/es.typed-array.iterator.js +4 -4
  164. package/modules/es.typed-array.set.js +2 -2
  165. package/modules/es.typed-array.sort.js +4 -4
  166. package/modules/esnext.aggregate-error.js +1 -1
  167. package/modules/esnext.array.from-async.js +8 -0
  168. package/modules/esnext.array.last-index.js +2 -2
  169. package/modules/esnext.array.last-item.js +3 -3
  170. package/modules/esnext.async-iterator.constructor.js +3 -3
  171. package/modules/esnext.async-iterator.filter.js +2 -2
  172. package/modules/esnext.async-iterator.flat-map.js +3 -3
  173. package/modules/esnext.async-iterator.from.js +7 -9
  174. package/modules/esnext.async-iterator.map.js +2 -2
  175. package/modules/esnext.async-iterator.reduce.js +3 -3
  176. package/modules/esnext.async-iterator.to-array.js +1 -1
  177. package/modules/esnext.global-this.js +1 -1
  178. package/modules/esnext.iterator.constructor.js +5 -12
  179. package/modules/esnext.iterator.every.js +2 -2
  180. package/modules/esnext.iterator.filter.js +2 -2
  181. package/modules/esnext.iterator.find.js +2 -2
  182. package/modules/esnext.iterator.flat-map.js +4 -4
  183. package/modules/esnext.iterator.from.js +5 -7
  184. package/modules/esnext.iterator.map.js +2 -2
  185. package/modules/esnext.iterator.reduce.js +2 -2
  186. package/modules/esnext.iterator.some.js +2 -2
  187. package/modules/esnext.map.filter.js +2 -2
  188. package/modules/esnext.map.group-by.js +9 -7
  189. package/modules/esnext.map.key-by.js +3 -3
  190. package/modules/esnext.map.key-of.js +1 -1
  191. package/modules/esnext.map.map-keys.js +2 -2
  192. package/modules/esnext.map.map-values.js +2 -2
  193. package/modules/esnext.map.merge.js +2 -2
  194. package/modules/esnext.map.reduce.js +2 -2
  195. package/modules/esnext.map.update-or-insert.js +1 -1
  196. package/modules/esnext.map.update.js +3 -3
  197. package/modules/esnext.number.from-string.js +2 -2
  198. package/modules/esnext.observable.js +16 -14
  199. package/modules/esnext.promise.all-settled.js +1 -1
  200. package/modules/esnext.promise.any.js +1 -1
  201. package/modules/esnext.set.difference.js +2 -2
  202. package/modules/esnext.set.filter.js +2 -2
  203. package/modules/esnext.set.intersection.js +3 -3
  204. package/modules/esnext.set.is-disjoint-from.js +2 -2
  205. package/modules/esnext.set.is-subset-of.js +4 -3
  206. package/modules/esnext.set.is-superset-of.js +2 -2
  207. package/modules/esnext.set.map.js +2 -2
  208. package/modules/esnext.set.reduce.js +2 -2
  209. package/modules/esnext.set.symmetric-difference.js +3 -3
  210. package/modules/esnext.set.union.js +2 -2
  211. package/modules/esnext.string.match-all.js +1 -1
  212. package/modules/esnext.string.replace-all.js +1 -1
  213. package/modules/esnext.typed-array.from-async.js +26 -0
  214. package/modules/web.dom-collections.for-each.js +10 -3
  215. package/modules/web.dom-collections.iterator.js +8 -3
  216. package/modules/web.timers.js +2 -1
  217. package/modules/web.url-search-params.js +7 -6
  218. package/modules/web.url.js +6 -6
  219. package/package.json +2 -2
  220. package/postinstall.js +1 -1
  221. package/proposals/array-from-async.js +3 -0
  222. package/stage/1.js +1 -0
  223. package/internals/a-function.js +0 -5
  224. package/internals/is-integer.js +0 -9
  225. package/internals/to-integer.js +0 -8
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var toAbsoluteIndex = require('../internals/to-absolute-index');
4
- var toInteger = require('../internals/to-integer');
5
- var toLength = require('../internals/to-length');
4
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
5
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
6
6
  var toObject = require('../internals/to-object');
7
7
  var arraySpeciesCreate = require('../internals/array-species-create');
8
8
  var createProperty = require('../internals/create-property');
@@ -21,7 +21,7 @@ var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
21
21
  $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
22
22
  splice: function splice(start, deleteCount /* , ...items */) {
23
23
  var O = toObject(this);
24
- var len = toLength(O.length);
24
+ var len = lengthOfArrayLike(O);
25
25
  var actualStart = toAbsoluteIndex(start, len);
26
26
  var argumentsLength = arguments.length;
27
27
  var insertCount, actualDeleteCount, A, k, from, to;
@@ -32,7 +32,7 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
32
32
  actualDeleteCount = len - actualStart;
33
33
  } else {
34
34
  insertCount = argumentsLength - 2;
35
- actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);
35
+ actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);
36
36
  }
37
37
  if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {
38
38
  throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var toInteger = require('../internals/to-integer');
3
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
4
4
 
5
5
  var getTime = Date.prototype.getTime;
6
6
  var setFullYear = Date.prototype.setFullYear;
@@ -11,7 +11,7 @@ $({ target: 'Date', proto: true }, {
11
11
  setYear: function setYear(year) {
12
12
  // validate
13
13
  getTime.call(this);
14
- var yi = toInteger(year);
14
+ var yi = toIntegerOrInfinity(year);
15
15
  var yyyy = 0 <= yi && yi <= 99 ? yi + 1900 : yi;
16
16
  return setFullYear.call(this, yyyy);
17
17
  }
@@ -1,4 +1,4 @@
1
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
1
+ var redefine = require('../internals/redefine');
2
2
  var dateToPrimitive = require('../internals/date-to-primitive');
3
3
  var wellKnownSymbol = require('../internals/well-known-symbol');
4
4
 
@@ -8,5 +8,5 @@ var DatePrototype = Date.prototype;
8
8
  // `Date.prototype[@@toPrimitive]` method
9
9
  // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive
10
10
  if (!(TO_PRIMITIVE in DatePrototype)) {
11
- createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
11
+ redefine(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
12
12
  }
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ var isCallable = require('../internals/is-callable');
2
3
  var isObject = require('../internals/is-object');
3
4
  var definePropertyModule = require('../internals/object-define-property');
4
5
  var getPrototypeOf = require('../internals/object-get-prototype-of');
@@ -11,7 +12,7 @@ var FunctionPrototype = Function.prototype;
11
12
  // https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance
12
13
  if (!(HAS_INSTANCE in FunctionPrototype)) {
13
14
  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {
14
- if (typeof this != 'function' || !isObject(O)) return false;
15
+ if (!isCallable(this) || !isObject(O)) return false;
15
16
  if (!isObject(this.prototype)) return O instanceof this;
16
17
  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
17
18
  while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
@@ -1,4 +1,5 @@
1
1
  var DESCRIPTORS = require('../internals/descriptors');
2
+ var FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;
2
3
  var defineProperty = require('../internals/object-define-property').f;
3
4
 
4
5
  var FunctionPrototype = Function.prototype;
@@ -8,7 +9,7 @@ var NAME = 'name';
8
9
 
9
10
  // Function instances `.name` property
10
11
  // https://tc39.es/ecma262/#sec-function-instances-name
11
- if (DESCRIPTORS && !(NAME in FunctionPrototype)) {
12
+ if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {
12
13
  defineProperty(FunctionPrototype, NAME, {
13
14
  configurable: true,
14
15
  get: function () {
@@ -3,31 +3,34 @@ var DESCRIPTORS = require('../internals/descriptors');
3
3
  var global = require('../internals/global');
4
4
  var isForced = require('../internals/is-forced');
5
5
  var redefine = require('../internals/redefine');
6
- var has = require('../internals/has');
7
- var classof = require('../internals/classof-raw');
6
+ var hasOwn = require('../internals/has-own-property');
8
7
  var inheritIfRequired = require('../internals/inherit-if-required');
9
8
  var isSymbol = require('../internals/is-symbol');
10
9
  var toPrimitive = require('../internals/to-primitive');
11
10
  var fails = require('../internals/fails');
12
- var create = require('../internals/object-create');
13
11
  var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
14
12
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
15
13
  var defineProperty = require('../internals/object-define-property').f;
14
+ var thisNumberValue = require('../internals/this-number-value');
16
15
  var trim = require('../internals/string-trim').trim;
17
16
 
18
17
  var NUMBER = 'Number';
19
18
  var NativeNumber = global[NUMBER];
20
19
  var NumberPrototype = NativeNumber.prototype;
21
20
 
22
- // Opera ~12 has broken Object#toString
23
- var BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;
21
+ // `ToNumeric` abstract operation
22
+ // https://tc39.es/ecma262/#sec-tonumeric
23
+ var toNumeric = function (value) {
24
+ var primValue = toPrimitive(value, 'number');
25
+ return typeof primValue === 'bigint' ? primValue : toNumber(primValue);
26
+ };
24
27
 
25
28
  // `ToNumber` abstract operation
26
29
  // https://tc39.es/ecma262/#sec-tonumber
27
30
  var toNumber = function (argument) {
28
- if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a number');
29
31
  var it = toPrimitive(argument, 'number');
30
32
  var first, third, radix, maxCode, digits, length, index, code;
33
+ if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');
31
34
  if (typeof it == 'string' && it.length > 2) {
32
35
  it = trim(it);
33
36
  first = it.charCodeAt(0);
@@ -56,23 +59,21 @@ var toNumber = function (argument) {
56
59
  // https://tc39.es/ecma262/#sec-number-constructor
57
60
  if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {
58
61
  var NumberWrapper = function Number(value) {
59
- var it = arguments.length < 1 ? 0 : value;
62
+ var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));
60
63
  var dummy = this;
61
- return dummy instanceof NumberWrapper
62
- // check on 1..constructor(foo) case
63
- && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)
64
- ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);
64
+ // check on 1..constructor(foo) case
65
+ return dummy instanceof NumberWrapper && fails(function () { thisNumberValue(dummy); })
66
+ ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;
65
67
  };
66
68
  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (
67
69
  // ES3:
68
70
  'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
69
71
  // ES2015 (in case, if modules with ES2015 Number statics required before):
70
- 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
71
- 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +
72
+ 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +
72
73
  // ESNext
73
74
  'fromString,range'
74
75
  ).split(','), j = 0, key; keys.length > j; j++) {
75
- if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {
76
+ if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {
76
77
  defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));
77
78
  }
78
79
  }
@@ -1,8 +1,8 @@
1
1
  var $ = require('../internals/export');
2
- var isInteger = require('../internals/is-integer');
2
+ var isIntegralNumber = require('../internals/is-integral-number');
3
3
 
4
4
  // `Number.isInteger` method
5
5
  // https://tc39.es/ecma262/#sec-number.isinteger
6
6
  $({ target: 'Number', stat: true }, {
7
- isInteger: isInteger
7
+ isInteger: isIntegralNumber
8
8
  });
@@ -1,5 +1,5 @@
1
1
  var $ = require('../internals/export');
2
- var isInteger = require('../internals/is-integer');
2
+ var isIntegralNumber = require('../internals/is-integral-number');
3
3
 
4
4
  var abs = Math.abs;
5
5
 
@@ -7,6 +7,6 @@ var abs = Math.abs;
7
7
  // https://tc39.es/ecma262/#sec-number.issafeinteger
8
8
  $({ target: 'Number', stat: true }, {
9
9
  isSafeInteger: function isSafeInteger(number) {
10
- return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;
10
+ return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF;
11
11
  }
12
12
  });
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var toInteger = require('../internals/to-integer');
3
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
4
4
  var thisNumberValue = require('../internals/this-number-value');
5
5
  var repeat = require('../internals/string-repeat');
6
6
  var fails = require('../internals/fails');
@@ -71,7 +71,7 @@ var FORCED = nativeToFixed && (
71
71
  $({ target: 'Number', proto: true, forced: FORCED }, {
72
72
  toFixed: function toFixed(fractionDigits) {
73
73
  var number = thisNumberValue(this);
74
- var fractDigits = toInteger(fractionDigits);
74
+ var fractDigits = toIntegerOrInfinity(fractionDigits);
75
75
  var data = [0, 0, 0, 0, 0, 0];
76
76
  var sign = '';
77
77
  var result = '0';
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var DESCRIPTORS = require('../internals/descriptors');
4
4
  var FORCED = require('../internals/object-prototype-accessors-forced');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var toObject = require('../internals/to-object');
6
- var aFunction = require('../internals/a-function');
7
7
  var definePropertyModule = require('../internals/object-define-property');
8
8
 
9
9
  // `Object.prototype.__defineGetter__` method
@@ -11,7 +11,7 @@ var definePropertyModule = require('../internals/object-define-property');
11
11
  if (DESCRIPTORS) {
12
12
  $({ target: 'Object', proto: true, forced: FORCED }, {
13
13
  __defineGetter__: function __defineGetter__(P, getter) {
14
- definePropertyModule.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });
14
+ definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true });
15
15
  }
16
16
  });
17
17
  }
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var DESCRIPTORS = require('../internals/descriptors');
4
4
  var FORCED = require('../internals/object-prototype-accessors-forced');
5
+ var aCallable = require('../internals/a-callable');
5
6
  var toObject = require('../internals/to-object');
6
- var aFunction = require('../internals/a-function');
7
7
  var definePropertyModule = require('../internals/object-define-property');
8
8
 
9
9
  // `Object.prototype.__defineSetter__` method
@@ -11,7 +11,7 @@ var definePropertyModule = require('../internals/object-define-property');
11
11
  if (DESCRIPTORS) {
12
12
  $({ target: 'Object', proto: true, forced: FORCED }, {
13
13
  __defineSetter__: function __defineSetter__(P, setter) {
14
- definePropertyModule.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });
14
+ definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true });
15
15
  }
16
16
  });
17
17
  }
@@ -1,5 +1,5 @@
1
1
  var $ = require('../internals/export');
2
- var hasOwn = require('../internals/has');
2
+ var hasOwn = require('../internals/has-own-property');
3
3
 
4
4
  // `Object.hasOwn` method
5
5
  // https://github.com/tc39/proposal-accessible-object-hasownproperty
@@ -1,8 +1,8 @@
1
1
  var $ = require('../internals/export');
2
- var parseFloatImplementation = require('../internals/number-parse-float');
2
+ var $parseFloat = require('../internals/number-parse-float');
3
3
 
4
4
  // `parseFloat` method
5
5
  // https://tc39.es/ecma262/#sec-parsefloat-string
6
- $({ global: true, forced: parseFloat != parseFloatImplementation }, {
7
- parseFloat: parseFloatImplementation
6
+ $({ global: true, forced: parseFloat != $parseFloat }, {
7
+ parseFloat: $parseFloat
8
8
  });
@@ -1,8 +1,8 @@
1
1
  var $ = require('../internals/export');
2
- var parseIntImplementation = require('../internals/number-parse-int');
2
+ var $parseInt = require('../internals/number-parse-int');
3
3
 
4
4
  // `parseInt` method
5
5
  // https://tc39.es/ecma262/#sec-parseint-string-radix
6
- $({ global: true, forced: parseInt != parseIntImplementation }, {
7
- parseInt: parseIntImplementation
6
+ $({ global: true, forced: parseInt != $parseInt }, {
7
+ parseInt: $parseInt
8
8
  });
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var aFunction = require('../internals/a-function');
3
+ var aCallable = require('../internals/a-callable');
4
4
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
5
5
  var perform = require('../internals/perform');
6
6
  var iterate = require('../internals/iterate');
@@ -14,7 +14,7 @@ $({ target: 'Promise', stat: true }, {
14
14
  var resolve = capability.resolve;
15
15
  var reject = capability.reject;
16
16
  var result = perform(function () {
17
- var promiseResolve = aFunction(C.resolve);
17
+ var promiseResolve = aCallable(C.resolve);
18
18
  var values = [];
19
19
  var counter = 0;
20
20
  var remaining = 1;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var aFunction = require('../internals/a-function');
3
+ var aCallable = require('../internals/a-callable');
4
4
  var getBuiltIn = require('../internals/get-built-in');
5
5
  var newPromiseCapabilityModule = require('../internals/new-promise-capability');
6
6
  var perform = require('../internals/perform');
@@ -17,7 +17,7 @@ $({ target: 'Promise', stat: true }, {
17
17
  var resolve = capability.resolve;
18
18
  var reject = capability.reject;
19
19
  var result = perform(function () {
20
- var promiseResolve = aFunction(C.resolve);
20
+ var promiseResolve = aCallable(C.resolve);
21
21
  var errors = [];
22
22
  var counter = 0;
23
23
  var remaining = 1;
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
4
4
  var NativePromise = require('../internals/native-promise-constructor');
5
5
  var fails = require('../internals/fails');
6
6
  var getBuiltIn = require('../internals/get-built-in');
7
+ var isCallable = require('../internals/is-callable');
7
8
  var speciesConstructor = require('../internals/species-constructor');
8
9
  var promiseResolve = require('../internals/promise-resolve');
9
10
  var redefine = require('../internals/redefine');
@@ -18,7 +19,7 @@ var NON_GENERIC = !!NativePromise && fails(function () {
18
19
  $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
19
20
  'finally': function (onFinally) {
20
21
  var C = speciesConstructor(this, getBuiltIn('Promise'));
21
- var isFunction = typeof onFinally == 'function';
22
+ var isFunction = isCallable(onFinally);
22
23
  return this.then(
23
24
  isFunction ? function (x) {
24
25
  return promiseResolve(C, onFinally()).then(function () { return x; });
@@ -31,7 +32,7 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
31
32
  });
32
33
 
33
34
  // makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`
34
- if (!IS_PURE && typeof NativePromise == 'function') {
35
+ if (!IS_PURE && isCallable(NativePromise)) {
35
36
  var method = getBuiltIn('Promise').prototype['finally'];
36
37
  if (NativePromise.prototype['finally'] !== method) {
37
38
  redefine(NativePromise.prototype, 'finally', method, { unsafe: true });
@@ -9,8 +9,9 @@ var redefineAll = require('../internals/redefine-all');
9
9
  var setPrototypeOf = require('../internals/object-set-prototype-of');
10
10
  var setToStringTag = require('../internals/set-to-string-tag');
11
11
  var setSpecies = require('../internals/set-species');
12
+ var aCallable = require('../internals/a-callable');
13
+ var isCallable = require('../internals/is-callable');
12
14
  var isObject = require('../internals/is-object');
13
- var aFunction = require('../internals/a-function');
14
15
  var anInstance = require('../internals/an-instance');
15
16
  var inspectSource = require('../internals/inspect-source');
16
17
  var iterate = require('../internals/iterate');
@@ -43,7 +44,7 @@ var process = global.process;
43
44
  var newPromiseCapability = newPromiseCapabilityModule.f;
44
45
  var newGenericPromiseCapability = newPromiseCapability;
45
46
  var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
46
- var NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';
47
+ var NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);
47
48
  var UNHANDLED_REJECTION = 'unhandledrejection';
48
49
  var REJECTION_HANDLED = 'rejectionhandled';
49
50
  var PENDING = 0;
@@ -87,7 +88,7 @@ var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (itera
87
88
  // helpers
88
89
  var isThenable = function (it) {
89
90
  var then;
90
- return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
91
+ return isObject(it) && isCallable(then = it.then) ? then : false;
91
92
  };
92
93
 
93
94
  var notify = function (state, isReject) {
@@ -232,7 +233,7 @@ if (FORCED) {
232
233
  // 25.4.3.1 Promise(executor)
233
234
  PromiseConstructor = function Promise(executor) {
234
235
  anInstance(this, PromiseConstructor, PROMISE);
235
- aFunction(executor);
236
+ aCallable(executor);
236
237
  Internal.call(this);
237
238
  var state = getInternalState(this);
238
239
  try {
@@ -261,8 +262,8 @@ if (FORCED) {
261
262
  then: function then(onFulfilled, onRejected) {
262
263
  var state = getInternalPromiseState(this);
263
264
  var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
264
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
265
- reaction.fail = typeof onRejected == 'function' && onRejected;
265
+ reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
266
+ reaction.fail = isCallable(onRejected) && onRejected;
266
267
  reaction.domain = IS_NODE ? process.domain : undefined;
267
268
  state.parent = true;
268
269
  state.reactions.push(reaction);
@@ -288,7 +289,7 @@ if (FORCED) {
288
289
  : newGenericPromiseCapability(C);
289
290
  };
290
291
 
291
- if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {
292
+ if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {
292
293
  nativeThen = NativePromisePrototype.then;
293
294
 
294
295
  if (!SUBCLASSING) {
@@ -354,7 +355,7 @@ $({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
354
355
  var resolve = capability.resolve;
355
356
  var reject = capability.reject;
356
357
  var result = perform(function () {
357
- var $promiseResolve = aFunction(C.resolve);
358
+ var $promiseResolve = aCallable(C.resolve);
358
359
  var values = [];
359
360
  var counter = 0;
360
361
  var remaining = 1;
@@ -382,7 +383,7 @@ $({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
382
383
  var capability = newPromiseCapability(C);
383
384
  var reject = capability.reject;
384
385
  var result = perform(function () {
385
- var $promiseResolve = aFunction(C.resolve);
386
+ var $promiseResolve = aCallable(C.resolve);
386
387
  iterate(iterable, function (promise) {
387
388
  $promiseResolve.call(C, promise).then(capability.resolve, reject);
388
389
  });
@@ -1,6 +1,6 @@
1
1
  var $ = require('../internals/export');
2
2
  var getBuiltIn = require('../internals/get-built-in');
3
- var aFunction = require('../internals/a-function');
3
+ var aCallable = require('../internals/a-callable');
4
4
  var anObject = require('../internals/an-object');
5
5
  var fails = require('../internals/fails');
6
6
 
@@ -16,7 +16,7 @@ var OPTIONAL_ARGUMENTS_LIST = !fails(function () {
16
16
  // https://tc39.es/ecma262/#sec-reflect.apply
17
17
  $({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {
18
18
  apply: function apply(target, thisArgument, argumentsList) {
19
- aFunction(target);
19
+ aCallable(target);
20
20
  anObject(argumentsList);
21
21
  return nativeApply
22
22
  ? nativeApply(target, thisArgument, argumentsList)
@@ -1,6 +1,6 @@
1
1
  var $ = require('../internals/export');
2
2
  var getBuiltIn = require('../internals/get-built-in');
3
- var aFunction = require('../internals/a-function');
3
+ var aConstructor = require('../internals/a-constructor');
4
4
  var anObject = require('../internals/an-object');
5
5
  var isObject = require('../internals/is-object');
6
6
  var create = require('../internals/object-create');
@@ -24,9 +24,9 @@ var FORCED = NEW_TARGET_BUG || ARGS_BUG;
24
24
 
25
25
  $({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {
26
26
  construct: function construct(Target, args /* , newTarget */) {
27
- aFunction(Target);
27
+ aConstructor(Target);
28
28
  anObject(args);
29
- var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
29
+ var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);
30
30
  if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);
31
31
  if (Target == newTarget) {
32
32
  // w/o altered newTarget, optimization for 0-4 arguments
@@ -11,7 +11,7 @@ var getFlags = require('../internals/regexp-flags');
11
11
  var stickyHelpers = require('../internals/regexp-sticky-helpers');
12
12
  var redefine = require('../internals/redefine');
13
13
  var fails = require('../internals/fails');
14
- var has = require('../internals/has');
14
+ var hasOwn = require('../internals/has-own-property');
15
15
  var enforceInternalState = require('../internals/internal-state').enforce;
16
16
  var setSpecies = require('../internals/set-species');
17
17
  var wellKnownSymbol = require('../internals/well-known-symbol');
@@ -92,7 +92,7 @@ var handleNCG = function (string) {
92
92
  groupid++;
93
93
  continue;
94
94
  case chr === '>' && ncg:
95
- if (groupname === '' || has(names, groupname)) {
95
+ if (groupname === '' || hasOwn(names, groupname)) {
96
96
  throw new SyntaxError('Invalid capture group name');
97
97
  }
98
98
  names[groupname] = true;
@@ -2,6 +2,7 @@
2
2
  // TODO: Remove from `core-js@4` since it's moved to entry points
3
3
  require('../modules/es.regexp.exec');
4
4
  var $ = require('../internals/export');
5
+ var isCallable = require('../internals/is-callable');
5
6
  var isObject = require('../internals/is-object');
6
7
 
7
8
  var DELEGATES_TO_EXEC = function () {
@@ -20,10 +21,9 @@ var nativeTest = /./.test;
20
21
  // https://tc39.es/ecma262/#sec-regexp.prototype.test
21
22
  $({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
22
23
  test: function (str) {
23
- if (typeof this.exec !== 'function') {
24
- return nativeTest.call(this, str);
25
- }
26
- var result = this.exec(str);
24
+ var exec = this.exec;
25
+ if (!isCallable(exec)) return nativeTest.call(this, str);
26
+ var result = exec.call(this, str);
27
27
  if (result !== null && !isObject(result)) {
28
28
  throw new Error('RegExp exec method returned something other than an Object or null');
29
29
  }
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;
2
3
  var redefine = require('../internals/redefine');
3
4
  var anObject = require('../internals/an-object');
4
5
  var $toString = require('../internals/to-string');
@@ -11,7 +12,7 @@ var nativeToString = RegExpPrototype[TO_STRING];
11
12
 
12
13
  var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
13
14
  // FF44- RegExp#toString has a wrong name
14
- var INCORRECT_NAME = nativeToString.name != TO_STRING;
15
+ var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;
15
16
 
16
17
  // `RegExp.prototype.toString` method
17
18
  // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
@@ -1,8 +1,7 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var requireObjectCoercible = require('../internals/require-object-coercible');
4
- var toInteger = require('../internals/to-integer');
5
- var toLength = require('../internals/to-length');
4
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
6
5
  var toString = require('../internals/to-string');
7
6
  var fails = require('../internals/fails');
8
7
 
@@ -15,8 +14,8 @@ var FORCED = fails(function () {
15
14
  $({ target: 'String', proto: true, forced: FORCED }, {
16
15
  at: function at(index) {
17
16
  var S = toString(requireObjectCoercible(this));
18
- var len = toLength(S.length);
19
- var relativeIndex = toInteger(index);
17
+ var len = S.length;
18
+ var relativeIndex = toIntegerOrInfinity(index);
20
19
  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
21
20
  return (k < 0 || k >= len) ? undefined : S.charAt(k);
22
21
  }
@@ -26,7 +26,7 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
26
26
  var that = toString(requireObjectCoercible(this));
27
27
  notARegExp(searchString);
28
28
  var endPosition = arguments.length > 1 ? arguments[1] : undefined;
29
- var len = toLength(that.length);
29
+ var len = that.length;
30
30
  var end = endPosition === undefined ? len : min(toLength(endPosition), len);
31
31
  var search = toString(searchString);
32
32
  return $endsWith
@@ -5,16 +5,17 @@ var createIteratorConstructor = require('../internals/create-iterator-constructo
5
5
  var requireObjectCoercible = require('../internals/require-object-coercible');
6
6
  var toLength = require('../internals/to-length');
7
7
  var toString = require('../internals/to-string');
8
- var aFunction = require('../internals/a-function');
9
8
  var anObject = require('../internals/an-object');
10
9
  var classof = require('../internals/classof-raw');
11
10
  var isRegExp = require('../internals/is-regexp');
12
11
  var getRegExpFlags = require('../internals/regexp-flags');
13
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
12
+ var getMethod = require('../internals/get-method');
13
+ var redefine = require('../internals/redefine');
14
14
  var fails = require('../internals/fails');
15
15
  var wellKnownSymbol = require('../internals/well-known-symbol');
16
16
  var speciesConstructor = require('../internals/species-constructor');
17
17
  var advanceStringIndex = require('../internals/advance-string-index');
18
+ var regExpExec = require('../internals/regexp-exec-abstract');
18
19
  var InternalStateModule = require('../internals/internal-state');
19
20
  var IS_PURE = require('../internals/is-pure');
20
21
 
@@ -24,23 +25,12 @@ var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
24
25
  var setInternalState = InternalStateModule.set;
25
26
  var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
26
27
  var RegExpPrototype = RegExp.prototype;
27
- var regExpBuiltinExec = RegExpPrototype.exec;
28
28
  var nativeMatchAll = ''.matchAll;
29
29
 
30
30
  var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
31
31
  'a'.matchAll(/./);
32
32
  });
33
33
 
34
- var regExpExec = function (R, S) {
35
- var exec = R.exec;
36
- var result;
37
- if (typeof exec == 'function') {
38
- result = exec.call(R, S);
39
- if (typeof result != 'object') throw TypeError('Incorrect exec result');
40
- return result;
41
- } return regExpBuiltinExec.call(R, S);
42
- };
43
-
44
34
  // eslint-disable-next-line max-len -- ignore
45
35
  var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {
46
36
  setInternalState(this, {
@@ -98,9 +88,9 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
98
88
  if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');
99
89
  }
100
90
  if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
101
- matcher = regexp[MATCH_ALL];
91
+ matcher = getMethod(regexp, MATCH_ALL);
102
92
  if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
103
- if (matcher != null) return aFunction(matcher).call(regexp, O);
93
+ if (matcher) return matcher.call(regexp, O);
104
94
  } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
105
95
  S = toString(O);
106
96
  rx = new RegExp(regexp, 'g');
@@ -108,4 +98,4 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
108
98
  }
109
99
  });
110
100
 
111
- IS_PURE || MATCH_ALL in RegExpPrototype || createNonEnumerableProperty(RegExpPrototype, MATCH_ALL, $matchAll);
101
+ IS_PURE || MATCH_ALL in RegExpPrototype || redefine(RegExpPrototype, MATCH_ALL, $matchAll);
@@ -4,6 +4,7 @@ var anObject = require('../internals/an-object');
4
4
  var toLength = require('../internals/to-length');
5
5
  var toString = require('../internals/to-string');
6
6
  var requireObjectCoercible = require('../internals/require-object-coercible');
7
+ var getMethod = require('../internals/get-method');
7
8
  var advanceStringIndex = require('../internals/advance-string-index');
8
9
  var regExpExec = require('../internals/regexp-exec-abstract');
9
10
 
@@ -14,8 +15,8 @@ fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNa
14
15
  // https://tc39.es/ecma262/#sec-string.prototype.match
15
16
  function match(regexp) {
16
17
  var O = requireObjectCoercible(this);
17
- var matcher = regexp == undefined ? undefined : regexp[MATCH];
18
- return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](toString(O));
18
+ var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);
19
+ return matcher ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](toString(O));
19
20
  },
20
21
  // `RegExp.prototype[@@match]` method
21
22
  // https://tc39.es/ecma262/#sec-regexp.prototype-@@match