core-js 3.18.1 → 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 (81) hide show
  1. package/configurator.js +7 -3
  2. package/features/typed-array/methods.js +2 -0
  3. package/internals/array-buffer-view-core.js +8 -8
  4. package/internals/array-buffer.js +2 -2
  5. package/internals/array-copy-within.js +2 -2
  6. package/internals/array-fill.js +2 -2
  7. package/internals/array-from-async.js +14 -9
  8. package/internals/array-from.js +2 -2
  9. package/internals/array-group-by.js +2 -2
  10. package/internals/array-includes.js +2 -2
  11. package/internals/array-iteration-from-last.js +2 -2
  12. package/internals/array-iteration.js +2 -2
  13. package/internals/array-last-index-of.js +4 -4
  14. package/internals/array-reduce.js +2 -2
  15. package/internals/array-unique-by.js +2 -2
  16. package/internals/collection-weak.js +3 -3
  17. package/internals/copy-constructor-properties.js +2 -2
  18. package/internals/define-well-known-symbol.js +2 -2
  19. package/internals/flatten-into-array.js +4 -3
  20. package/internals/function-name.js +2 -2
  21. package/internals/{has.js → has-own-property.js} +2 -0
  22. package/internals/internal-metadata.js +4 -4
  23. package/internals/internal-state.js +4 -4
  24. package/internals/is-data-descriptor.js +2 -2
  25. package/internals/is-integral-number.js +10 -0
  26. package/internals/iterate.js +2 -2
  27. package/internals/length-of-array-like.js +7 -0
  28. package/internals/object-get-own-property-descriptor.js +2 -2
  29. package/internals/object-get-prototype-of.js +2 -2
  30. package/internals/object-iterator.js +2 -2
  31. package/internals/object-keys-internal.js +3 -3
  32. package/internals/redefine.js +2 -2
  33. package/internals/set-to-string-tag.js +2 -2
  34. package/internals/shared.js +1 -1
  35. package/internals/string-multibyte.js +2 -3
  36. package/internals/string-pad.js +1 -1
  37. package/internals/string-repeat.js +2 -2
  38. package/internals/to-absolute-index.js +2 -2
  39. package/internals/to-index.js +2 -2
  40. package/internals/to-integer-or-infinity.js +10 -0
  41. package/internals/to-length.js +2 -2
  42. package/internals/to-positive-integer.js +2 -2
  43. package/internals/typed-array-constructor.js +8 -8
  44. package/internals/typed-array-from.js +2 -2
  45. package/internals/well-known-symbol.js +3 -3
  46. package/modules/es.aggregate-error.js +3 -2
  47. package/modules/es.array.at.js +4 -4
  48. package/modules/es.array.concat.js +2 -2
  49. package/modules/es.array.flat-map.js +2 -2
  50. package/modules/es.array.flat.js +4 -4
  51. package/modules/es.array.slice.js +2 -2
  52. package/modules/es.array.sort.js +2 -2
  53. package/modules/es.array.splice.js +4 -4
  54. package/modules/es.date.set-year.js +2 -2
  55. package/modules/es.number.constructor.js +15 -14
  56. package/modules/es.number.is-integer.js +2 -2
  57. package/modules/es.number.is-safe-integer.js +2 -2
  58. package/modules/es.number.to-fixed.js +2 -2
  59. package/modules/es.object.has-own.js +1 -1
  60. package/modules/es.regexp.constructor.js +2 -2
  61. package/modules/es.string.at-alternative.js +3 -4
  62. package/modules/es.string.ends-with.js +1 -1
  63. package/modules/es.string.raw.js +4 -3
  64. package/modules/es.string.replace.js +2 -2
  65. package/modules/es.string.substr.js +3 -3
  66. package/modules/es.symbol.description.js +2 -2
  67. package/modules/es.symbol.js +14 -13
  68. package/modules/es.typed-array.at.js +4 -4
  69. package/modules/es.typed-array.set.js +2 -2
  70. package/modules/es.typed-array.sort.js +2 -2
  71. package/modules/esnext.array.last-index.js +2 -2
  72. package/modules/esnext.array.last-item.js +3 -3
  73. package/modules/esnext.async-iterator.constructor.js +3 -3
  74. package/modules/esnext.iterator.constructor.js +3 -3
  75. package/modules/esnext.number.from-string.js +2 -2
  76. package/modules/esnext.typed-array.from-async.js +9 -2
  77. package/modules/web.url-search-params.js +1 -1
  78. package/modules/web.url.js +4 -4
  79. package/package.json +2 -2
  80. package/internals/is-integer.js +0 -9
  81. package/internals/to-integer.js +0 -8
@@ -1,6 +1,6 @@
1
1
  var global = require('../internals/global');
2
2
  var isCallable = require('../internals/is-callable');
3
- var has = require('../internals/has');
3
+ var hasOwn = require('../internals/has-own-property');
4
4
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
5
5
  var setGlobal = require('../internals/set-global');
6
6
  var inspectSource = require('../internals/inspect-source');
@@ -21,7 +21,7 @@ var TEMPLATE = String(String).split('String');
21
21
  if (String(name).slice(0, 7) === 'Symbol(') {
22
22
  name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
23
23
  }
24
- if (!has(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
24
+ if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
25
25
  createNonEnumerableProperty(value, 'name', name);
26
26
  }
27
27
  state = enforceInternalState(value);
@@ -1,11 +1,11 @@
1
1
  var defineProperty = require('../internals/object-define-property').f;
2
- var has = require('../internals/has');
2
+ var hasOwn = require('../internals/has-own-property');
3
3
  var wellKnownSymbol = require('../internals/well-known-symbol');
4
4
 
5
5
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
6
6
 
7
7
  module.exports = function (it, TAG, STATIC) {
8
- if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
8
+ if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
9
9
  defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });
10
10
  }
11
11
  };
@@ -4,7 +4,7 @@ var store = require('../internals/shared-store');
4
4
  (module.exports = function (key, value) {
5
5
  return store[key] || (store[key] = value !== undefined ? value : {});
6
6
  })('versions', []).push({
7
- version: '3.18.1',
7
+ version: '3.18.2',
8
8
  mode: IS_PURE ? 'pure' : 'global',
9
9
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
10
10
  });
@@ -1,12 +1,11 @@
1
- var toInteger = require('../internals/to-integer');
1
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
2
2
  var toString = require('../internals/to-string');
3
3
  var requireObjectCoercible = require('../internals/require-object-coercible');
4
4
 
5
- // `String.prototype.codePointAt` methods implementation
6
5
  var createMethod = function (CONVERT_TO_STRING) {
7
6
  return function ($this, pos) {
8
7
  var S = toString(requireObjectCoercible($this));
9
- var position = toInteger(pos);
8
+ var position = toIntegerOrInfinity(pos);
10
9
  var size = S.length;
11
10
  var first, second;
12
11
  if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
@@ -10,9 +10,9 @@ var ceil = Math.ceil;
10
10
  var createMethod = function (IS_END) {
11
11
  return function ($this, maxLength, fillString) {
12
12
  var S = toString(requireObjectCoercible($this));
13
+ var intMaxLength = toLength(maxLength);
13
14
  var stringLength = S.length;
14
15
  var fillStr = fillString === undefined ? ' ' : toString(fillString);
15
- var intMaxLength = toLength(maxLength);
16
16
  var fillLen, stringFiller;
17
17
  if (intMaxLength <= stringLength || fillStr == '') return S;
18
18
  fillLen = intMaxLength - stringLength;
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- var toInteger = require('../internals/to-integer');
2
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
3
3
  var toString = require('../internals/to-string');
4
4
  var requireObjectCoercible = require('../internals/require-object-coercible');
5
5
 
@@ -8,7 +8,7 @@ var requireObjectCoercible = require('../internals/require-object-coercible');
8
8
  module.exports = function repeat(count) {
9
9
  var str = toString(requireObjectCoercible(this));
10
10
  var result = '';
11
- var n = toInteger(count);
11
+ var n = toIntegerOrInfinity(count);
12
12
  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');
13
13
  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
14
14
  return result;
@@ -1,4 +1,4 @@
1
- var toInteger = require('../internals/to-integer');
1
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
2
2
 
3
3
  var max = Math.max;
4
4
  var min = Math.min;
@@ -7,6 +7,6 @@ var min = Math.min;
7
7
  // Let integer be ? ToInteger(index).
8
8
  // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
9
9
  module.exports = function (index, length) {
10
- var integer = toInteger(index);
10
+ var integer = toIntegerOrInfinity(index);
11
11
  return integer < 0 ? max(integer + length, 0) : min(integer, length);
12
12
  };
@@ -1,11 +1,11 @@
1
- var toInteger = require('../internals/to-integer');
1
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
2
2
  var toLength = require('../internals/to-length');
3
3
 
4
4
  // `ToIndex` abstract operation
5
5
  // https://tc39.es/ecma262/#sec-toindex
6
6
  module.exports = function (it) {
7
7
  if (it === undefined) return 0;
8
- var number = toInteger(it);
8
+ var number = toIntegerOrInfinity(it);
9
9
  var length = toLength(number);
10
10
  if (number !== length) throw RangeError('Wrong length or index');
11
11
  return length;
@@ -0,0 +1,10 @@
1
+ var ceil = Math.ceil;
2
+ var floor = Math.floor;
3
+
4
+ // `ToIntegerOrInfinity` abstract operation
5
+ // https://tc39.es/ecma262/#sec-tointegerorinfinity
6
+ module.exports = function (argument) {
7
+ var number = +argument;
8
+ // eslint-disable-next-line no-self-compare -- safe
9
+ return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);
10
+ };
@@ -1,9 +1,9 @@
1
- var toInteger = require('../internals/to-integer');
1
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
2
2
 
3
3
  var min = Math.min;
4
4
 
5
5
  // `ToLength` abstract operation
6
6
  // https://tc39.es/ecma262/#sec-tolength
7
7
  module.exports = function (argument) {
8
- return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
8
+ return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
9
9
  };
@@ -1,7 +1,7 @@
1
- var toInteger = require('../internals/to-integer');
1
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
2
2
 
3
3
  module.exports = function (it) {
4
- var result = toInteger(it);
4
+ var result = toIntegerOrInfinity(it);
5
5
  if (result < 0) throw RangeError("The argument can't be less than 0");
6
6
  return result;
7
7
  };
@@ -8,12 +8,12 @@ var ArrayBufferModule = require('../internals/array-buffer');
8
8
  var anInstance = require('../internals/an-instance');
9
9
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
10
10
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
11
- var isInteger = require('../internals/is-integer');
11
+ var isIntegralNumber = require('../internals/is-integral-number');
12
12
  var toLength = require('../internals/to-length');
13
13
  var toIndex = require('../internals/to-index');
14
14
  var toOffset = require('../internals/to-offset');
15
15
  var toPropertyKey = require('../internals/to-property-key');
16
- var has = require('../internals/has');
16
+ var hasOwn = require('../internals/has-own-property');
17
17
  var classof = require('../internals/classof');
18
18
  var isObject = require('../internals/is-object');
19
19
  var isSymbol = require('../internals/is-symbol');
@@ -69,7 +69,7 @@ var isTypedArrayIndex = function (target, key) {
69
69
  return isTypedArray(target)
70
70
  && !isSymbol(key)
71
71
  && key in target
72
- && isInteger(+key)
72
+ && isIntegralNumber(+key)
73
73
  && key >= 0;
74
74
  };
75
75
 
@@ -84,13 +84,13 @@ var wrappedDefineProperty = function defineProperty(target, key, descriptor) {
84
84
  key = toPropertyKey(key);
85
85
  if (isTypedArrayIndex(target, key)
86
86
  && isObject(descriptor)
87
- && has(descriptor, 'value')
88
- && !has(descriptor, 'get')
89
- && !has(descriptor, 'set')
87
+ && hasOwn(descriptor, 'value')
88
+ && !hasOwn(descriptor, 'get')
89
+ && !hasOwn(descriptor, 'set')
90
90
  // TODO: add validation descriptor w/o calling accessors
91
91
  && !descriptor.configurable
92
- && (!has(descriptor, 'writable') || descriptor.writable)
93
- && (!has(descriptor, 'enumerable') || descriptor.enumerable)
92
+ && (!hasOwn(descriptor, 'writable') || descriptor.writable)
93
+ && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)
94
94
  ) {
95
95
  target[key] = descriptor.value;
96
96
  return target;
@@ -1,6 +1,6 @@
1
1
  var aConstructor = require('../internals/a-constructor');
2
2
  var toObject = require('../internals/to-object');
3
- var toLength = require('../internals/to-length');
3
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
4
4
  var getIterator = require('../internals/get-iterator');
5
5
  var getIteratorMethod = require('../internals/get-iterator-method');
6
6
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
@@ -26,7 +26,7 @@ module.exports = function from(source /* , mapfn, thisArg */) {
26
26
  if (mapping && argumentsLength > 2) {
27
27
  mapfn = bind(mapfn, arguments[2], 2);
28
28
  }
29
- length = toLength(O.length);
29
+ length = lengthOfArrayLike(O);
30
30
  result = new (aTypedArrayConstructor(C))(length);
31
31
  for (i = 0; length > i; i++) {
32
32
  result[i] = mapping ? mapfn(O[i], i) : O[i];
@@ -1,6 +1,6 @@
1
1
  var global = require('../internals/global');
2
2
  var shared = require('../internals/shared');
3
- var has = require('../internals/has');
3
+ var hasOwn = require('../internals/has-own-property');
4
4
  var uid = require('../internals/uid');
5
5
  var NATIVE_SYMBOL = require('../internals/native-symbol');
6
6
  var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
@@ -10,8 +10,8 @@ var Symbol = global.Symbol;
10
10
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
11
11
 
12
12
  module.exports = function (name) {
13
- if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
14
- if (NATIVE_SYMBOL && has(Symbol, name)) {
13
+ if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
14
+ if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {
15
15
  WellKnownSymbolsStore[name] = Symbol[name];
16
16
  } else {
17
17
  WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
@@ -11,13 +11,14 @@ var toString = require('../internals/to-string');
11
11
 
12
12
  var $AggregateError = function AggregateError(errors, message /* , options */) {
13
13
  var that = this;
14
- if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);
14
+ var options = arguments.length > 2 ? arguments[2] : undefined;
15
+ if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message, options);
15
16
  if (setPrototypeOf) {
16
17
  // eslint-disable-next-line unicorn/error-message -- expected
17
18
  that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));
18
19
  }
19
20
  if (message !== undefined) createNonEnumerableProperty(that, 'message', toString(message));
20
- if (arguments.length > 2) installErrorCause(that, arguments[2]);
21
+ installErrorCause(that, options);
21
22
  var errorsArray = [];
22
23
  iterate(errors, errorsArray.push, { that: errorsArray });
23
24
  createNonEnumerableProperty(that, 'errors', errorsArray);
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var toObject = require('../internals/to-object');
4
- var toLength = require('../internals/to-length');
5
- var toInteger = require('../internals/to-integer');
4
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
5
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
6
6
  var addToUnscopables = require('../internals/add-to-unscopables');
7
7
 
8
8
  // `Array.prototype.at` method
@@ -10,8 +10,8 @@ var addToUnscopables = require('../internals/add-to-unscopables');
10
10
  $({ target: 'Array', proto: true }, {
11
11
  at: function at(index) {
12
12
  var O = toObject(this);
13
- var len = toLength(O.length);
14
- var relativeIndex = toInteger(index);
13
+ var len = lengthOfArrayLike(O);
14
+ var relativeIndex = toIntegerOrInfinity(index);
15
15
  var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
16
16
  return (k < 0 || k >= len) ? undefined : O[k];
17
17
  }
@@ -4,7 +4,7 @@ var fails = require('../internals/fails');
4
4
  var isArray = require('../internals/is-array');
5
5
  var isObject = require('../internals/is-object');
6
6
  var toObject = require('../internals/to-object');
7
- var toLength = require('../internals/to-length');
7
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
8
8
  var createProperty = require('../internals/create-property');
9
9
  var arraySpeciesCreate = require('../internals/array-species-create');
10
10
  var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
@@ -47,7 +47,7 @@ $({ target: 'Array', proto: true, forced: FORCED }, {
47
47
  for (i = -1, length = arguments.length; i < length; i++) {
48
48
  E = i === -1 ? O : arguments[i];
49
49
  if (isConcatSpreadable(E)) {
50
- len = toLength(E.length);
50
+ len = lengthOfArrayLike(E);
51
51
  if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
52
52
  for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
53
53
  } else {
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
3
3
  var flattenIntoArray = require('../internals/flatten-into-array');
4
4
  var aCallable = require('../internals/a-callable');
5
5
  var toObject = require('../internals/to-object');
6
- var toLength = require('../internals/to-length');
6
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
7
7
  var arraySpeciesCreate = require('../internals/array-species-create');
8
8
 
9
9
  // `Array.prototype.flatMap` method
@@ -11,7 +11,7 @@ var arraySpeciesCreate = require('../internals/array-species-create');
11
11
  $({ target: 'Array', proto: true }, {
12
12
  flatMap: function flatMap(callbackfn /* , thisArg */) {
13
13
  var O = toObject(this);
14
- var sourceLen = toLength(O.length);
14
+ var sourceLen = lengthOfArrayLike(O);
15
15
  var A;
16
16
  aCallable(callbackfn);
17
17
  A = arraySpeciesCreate(O, 0);
@@ -2,8 +2,8 @@
2
2
  var $ = require('../internals/export');
3
3
  var flattenIntoArray = require('../internals/flatten-into-array');
4
4
  var toObject = require('../internals/to-object');
5
- var toLength = require('../internals/to-length');
6
- var toInteger = require('../internals/to-integer');
5
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
6
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
7
7
  var arraySpeciesCreate = require('../internals/array-species-create');
8
8
 
9
9
  // `Array.prototype.flat` method
@@ -12,9 +12,9 @@ $({ target: 'Array', proto: true }, {
12
12
  flat: function flat(/* depthArg = 1 */) {
13
13
  var depthArg = arguments.length ? arguments[0] : undefined;
14
14
  var O = toObject(this);
15
- var sourceLen = toLength(O.length);
15
+ var sourceLen = lengthOfArrayLike(O);
16
16
  var A = arraySpeciesCreate(O, 0);
17
- A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));
17
+ A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));
18
18
  return A;
19
19
  }
20
20
  });
@@ -4,7 +4,7 @@ var isArray = require('../internals/is-array');
4
4
  var isConstructor = require('../internals/is-constructor');
5
5
  var isObject = require('../internals/is-object');
6
6
  var toAbsoluteIndex = require('../internals/to-absolute-index');
7
- var toLength = require('../internals/to-length');
7
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
8
8
  var toIndexedObject = require('../internals/to-indexed-object');
9
9
  var createProperty = require('../internals/create-property');
10
10
  var wellKnownSymbol = require('../internals/well-known-symbol');
@@ -22,7 +22,7 @@ var max = Math.max;
22
22
  $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
23
23
  slice: function slice(start, end) {
24
24
  var O = toIndexedObject(this);
25
- var length = toLength(O.length);
25
+ var length = lengthOfArrayLike(O);
26
26
  var k = toAbsoluteIndex(start, length);
27
27
  var fin = toAbsoluteIndex(end === undefined ? length : end, length);
28
28
  // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
@@ -2,7 +2,7 @@
2
2
  var $ = require('../internals/export');
3
3
  var aCallable = require('../internals/a-callable');
4
4
  var toObject = require('../internals/to-object');
5
- var toLength = require('../internals/to-length');
5
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
6
6
  var toString = require('../internals/to-string');
7
7
  var fails = require('../internals/fails');
8
8
  var internalSort = require('../internals/array-sort');
@@ -83,7 +83,7 @@ $({ target: 'Array', proto: true, forced: FORCED }, {
83
83
  if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);
84
84
 
85
85
  var items = [];
86
- var arrayLength = toLength(array.length);
86
+ var arrayLength = lengthOfArrayLike(array);
87
87
  var itemsLength, index;
88
88
 
89
89
  for (index = 0; index < arrayLength; index++) {
@@ -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
  }
@@ -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';
@@ -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
@@ -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;
@@ -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
@@ -1,8 +1,8 @@
1
1
  var $ = require('../internals/export');
2
2
  var toIndexedObject = require('../internals/to-indexed-object');
3
3
  var toObject = require('../internals/to-object');
4
- var toLength = require('../internals/to-length');
5
4
  var toString = require('../internals/to-string');
5
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
6
6
 
7
7
  var ArrayPrototype = Array.prototype;
8
8
  var push = ArrayPrototype.push;
@@ -13,13 +13,14 @@ var join = ArrayPrototype.join;
13
13
  $({ target: 'String', stat: true }, {
14
14
  raw: function raw(template) {
15
15
  var rawTemplate = toIndexedObject(toObject(template).raw);
16
- var literalSegments = toLength(rawTemplate.length);
16
+ var literalSegments = lengthOfArrayLike(rawTemplate);
17
17
  var argumentsLength = arguments.length;
18
18
  var elements = [];
19
19
  var i = 0;
20
20
  while (literalSegments > i) {
21
21
  push.call(elements, toString(rawTemplate[i++]));
22
+ if (i === literalSegments) return join.call(elements, '');
22
23
  if (i < argumentsLength) push.call(elements, toString(arguments[i]));
23
- } return join.call(elements, '');
24
+ }
24
25
  }
25
26
  });