core-js 3.38.1 → 3.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/LICENSE +1 -1
  2. package/actual/error/index.js +2 -0
  3. package/actual/error/is-error.js +6 -0
  4. package/actual/iterator/drop.js +2 -4
  5. package/actual/iterator/every.js +2 -4
  6. package/actual/iterator/filter.js +2 -4
  7. package/actual/iterator/find.js +2 -4
  8. package/actual/iterator/flat-map.js +2 -4
  9. package/actual/iterator/for-each.js +2 -4
  10. package/actual/iterator/from.js +2 -7
  11. package/actual/iterator/index.js +2 -7
  12. package/actual/iterator/map.js +2 -4
  13. package/actual/iterator/reduce.js +2 -4
  14. package/actual/iterator/some.js +2 -4
  15. package/actual/iterator/take.js +2 -4
  16. package/actual/iterator/to-array.js +2 -4
  17. package/actual/iterator/to-async.js +2 -0
  18. package/actual/math/index.js +2 -0
  19. package/actual/math/sum-precise.js +6 -0
  20. package/actual/promise/index.js +1 -0
  21. package/actual/promise/try.js +3 -10
  22. package/es/index.js +14 -0
  23. package/es/iterator/drop.js +8 -0
  24. package/es/iterator/every.js +8 -0
  25. package/es/iterator/filter.js +8 -0
  26. package/es/iterator/find.js +8 -0
  27. package/es/iterator/flat-map.js +8 -0
  28. package/es/iterator/for-each.js +8 -0
  29. package/es/iterator/from.js +21 -0
  30. package/es/iterator/index.js +21 -0
  31. package/es/iterator/map.js +8 -0
  32. package/es/iterator/reduce.js +8 -0
  33. package/es/iterator/some.js +8 -0
  34. package/es/iterator/take.js +8 -0
  35. package/es/iterator/to-array.js +8 -0
  36. package/es/promise/index.js +1 -0
  37. package/es/promise/try.js +15 -0
  38. package/features/error/is-error.js +2 -0
  39. package/features/iterator/concat.js +2 -0
  40. package/features/map/get-or-insert-computed.js +2 -0
  41. package/features/map/get-or-insert.js +2 -0
  42. package/features/weak-map/get-or-insert-computed.js +2 -0
  43. package/features/weak-map/get-or-insert.js +2 -0
  44. package/full/error/is-error.js +4 -0
  45. package/full/index.js +20 -0
  46. package/full/iterator/concat.js +20 -0
  47. package/full/iterator/index.js +1 -0
  48. package/full/map/from.js +2 -0
  49. package/full/map/get-or-insert-computed.js +6 -0
  50. package/full/map/get-or-insert.js +6 -0
  51. package/full/map/group-by.js +2 -0
  52. package/full/map/index.js +3 -1
  53. package/full/map/key-by.js +2 -0
  54. package/full/map/of.js +2 -0
  55. package/full/math/index.js +0 -2
  56. package/full/math/sum-precise.js +2 -4
  57. package/full/weak-map/from.js +2 -0
  58. package/full/weak-map/get-or-insert-computed.js +6 -0
  59. package/full/weak-map/get-or-insert.js +6 -0
  60. package/full/weak-map/index.js +3 -1
  61. package/full/weak-map/of.js +2 -0
  62. package/internals/add-disposable-resource.js +7 -1
  63. package/internals/array-buffer-is-detached.js +5 -7
  64. package/internals/array-buffer.js +2 -2
  65. package/internals/error-stack-clear.js +1 -1
  66. package/internals/function-apply.js +1 -1
  67. package/internals/function-call.js +1 -1
  68. package/internals/function-uncurry-this.js +1 -0
  69. package/internals/iterator-create-proxy.js +7 -5
  70. package/internals/math-float-round.js +1 -5
  71. package/internals/math-log2.js +10 -0
  72. package/internals/math-round-ties-to-even.js +7 -0
  73. package/internals/math-scale.js +1 -1
  74. package/internals/native-raw-json.js +2 -0
  75. package/internals/object-assign.js +1 -0
  76. package/internals/object-prototype-accessors-forced.js +1 -1
  77. package/internals/set-method-accept-set-like.js +25 -2
  78. package/internals/shared-store.js +3 -3
  79. package/internals/typed-array-constructors-require-wrappers.js +1 -1
  80. package/internals/typed-array-from-same-type-and-list.js +7 -0
  81. package/internals/use-symbol-as-uid.js +3 -3
  82. package/modules/es.array-buffer.detached.js +2 -0
  83. package/modules/es.array-buffer.slice.js +1 -2
  84. package/modules/es.iterator.constructor.js +65 -0
  85. package/modules/es.iterator.drop.js +36 -0
  86. package/modules/es.iterator.every.js +20 -0
  87. package/modules/es.iterator.filter.js +35 -0
  88. package/modules/es.iterator.find.js +20 -0
  89. package/modules/es.iterator.flat-map.js +45 -0
  90. package/modules/es.iterator.for-each.js +20 -0
  91. package/modules/es.iterator.from.js +24 -0
  92. package/modules/es.iterator.map.js +10 -0
  93. package/modules/es.iterator.reduce.js +32 -0
  94. package/modules/es.iterator.some.js +20 -0
  95. package/modules/es.iterator.take.js +33 -0
  96. package/modules/es.iterator.to-array.js +17 -0
  97. package/modules/es.map.group-by.js +1 -1
  98. package/modules/es.math.log2.js +2 -6
  99. package/modules/es.object.from-entries.js +1 -1
  100. package/modules/es.object.group-by.js +1 -1
  101. package/modules/es.promise.constructor.js +2 -0
  102. package/modules/es.promise.try.js +33 -0
  103. package/modules/es.promise.with-resolvers.js +1 -1
  104. package/modules/es.regexp.constructor.js +1 -1
  105. package/modules/es.set.difference.v2.js +6 -2
  106. package/modules/es.set.intersection.v2.js +5 -3
  107. package/modules/es.set.is-disjoint-from.v2.js +6 -2
  108. package/modules/es.set.is-subset-of.v2.js +6 -2
  109. package/modules/es.set.is-superset-of.v2.js +6 -2
  110. package/modules/es.set.symmetric-difference.v2.js +1 -1
  111. package/modules/es.set.union.v2.js +1 -1
  112. package/modules/es.string.is-well-formed.js +1 -1
  113. package/modules/es.string.to-well-formed.js +1 -1
  114. package/modules/es.symbol.description.js +1 -1
  115. package/modules/es.typed-array.filter.js +2 -2
  116. package/modules/es.typed-array.map.js +2 -2
  117. package/modules/es.typed-array.slice.js +2 -2
  118. package/modules/es.typed-array.subarray.js +2 -2
  119. package/modules/esnext.array.from-async.js +1 -0
  120. package/modules/esnext.data-view.get-float16.js +17 -2
  121. package/modules/esnext.data-view.set-float16.js +37 -4
  122. package/modules/esnext.error.is-error.js +36 -0
  123. package/modules/esnext.iterator.concat.js +57 -0
  124. package/modules/esnext.iterator.constructor.js +2 -64
  125. package/modules/esnext.iterator.drop.js +2 -35
  126. package/modules/esnext.iterator.every.js +2 -19
  127. package/modules/esnext.iterator.filter.js +2 -34
  128. package/modules/esnext.iterator.find.js +2 -19
  129. package/modules/esnext.iterator.flat-map.js +2 -44
  130. package/modules/esnext.iterator.for-each.js +2 -19
  131. package/modules/esnext.iterator.from.js +2 -23
  132. package/modules/esnext.iterator.map.js +2 -9
  133. package/modules/esnext.iterator.reduce.js +2 -31
  134. package/modules/esnext.iterator.some.js +2 -19
  135. package/modules/esnext.iterator.take.js +2 -32
  136. package/modules/esnext.iterator.to-array.js +2 -16
  137. package/modules/esnext.map.get-or-insert-computed.js +24 -0
  138. package/modules/esnext.map.get-or-insert.js +18 -0
  139. package/modules/esnext.math.f16round.js +10 -2
  140. package/modules/esnext.math.sum-precise.js +1 -1
  141. package/modules/esnext.promise.try.js +2 -32
  142. package/modules/esnext.regexp.escape.js +1 -0
  143. package/modules/esnext.string.dedent.js +1 -1
  144. package/modules/esnext.typed-array.filter-out.js +2 -2
  145. package/modules/esnext.typed-array.filter-reject.js +2 -2
  146. package/modules/esnext.typed-array.group-by.js +2 -2
  147. package/modules/esnext.typed-array.to-spliced.js +1 -17
  148. package/modules/esnext.weak-map.get-or-insert-computed.js +23 -0
  149. package/modules/esnext.weak-map.get-or-insert.js +18 -0
  150. package/modules/web.structured-clone.js +4 -0
  151. package/package.json +1 -1
  152. package/proposals/is-error.js +3 -0
  153. package/proposals/iterator-sequencing.js +3 -0
  154. package/proposals/map-upsert-v4.js +6 -0
  155. package/stable/index.js +14 -0
  156. package/stable/iterator/drop.js +4 -0
  157. package/stable/iterator/every.js +4 -0
  158. package/stable/iterator/filter.js +4 -0
  159. package/stable/iterator/find.js +4 -0
  160. package/stable/iterator/flat-map.js +4 -0
  161. package/stable/iterator/for-each.js +4 -0
  162. package/stable/iterator/from.js +5 -0
  163. package/stable/iterator/index.js +5 -0
  164. package/stable/iterator/map.js +4 -0
  165. package/stable/iterator/reduce.js +4 -0
  166. package/stable/iterator/some.js +4 -0
  167. package/stable/iterator/take.js +4 -0
  168. package/stable/iterator/to-array.js +4 -0
  169. package/stable/promise/try.js +4 -0
  170. package/stage/1.js +0 -1
  171. package/stage/2.7.js +1 -1
  172. package/stage/2.js +3 -1
  173. package/stage/3.js +2 -2
  174. package/stage/4.js +2 -0
  175. package/internals/math-f16round.js +0 -12
  176. package/internals/typed-array-from-species-and-list.js +0 -7
  177. package/internals/typed-array-species-constructor.js +0 -12
package/full/map/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  var parent = require('../../actual/map');
3
3
  require('../../modules/esnext.map.from');
4
4
  require('../../modules/esnext.map.of');
5
+ require('../../modules/esnext.map.key-by');
5
6
  require('../../modules/esnext.map.delete-all');
6
7
  require('../../modules/esnext.map.emplace');
7
8
  require('../../modules/esnext.map.every');
@@ -9,7 +10,8 @@ require('../../modules/esnext.map.filter');
9
10
  require('../../modules/esnext.map.find');
10
11
  require('../../modules/esnext.map.find-key');
11
12
  require('../../modules/esnext.map.includes');
12
- require('../../modules/esnext.map.key-by');
13
+ require('../../modules/esnext.map.get-or-insert');
14
+ require('../../modules/esnext.map.get-or-insert-computed');
13
15
  require('../../modules/esnext.map.key-of');
14
16
  require('../../modules/esnext.map.map-keys');
15
17
  require('../../modules/esnext.map.map-values');
@@ -8,6 +8,8 @@ require('../../modules/esnext.map.every');
8
8
  require('../../modules/esnext.map.filter');
9
9
  require('../../modules/esnext.map.find');
10
10
  require('../../modules/esnext.map.find-key');
11
+ require('../../modules/esnext.map.get-or-insert');
12
+ require('../../modules/esnext.map.get-or-insert-computed');
11
13
  require('../../modules/esnext.map.includes');
12
14
  require('../../modules/esnext.map.key-of');
13
15
  require('../../modules/esnext.map.map-keys');
package/full/map/of.js CHANGED
@@ -9,6 +9,8 @@ require('../../modules/esnext.map.every');
9
9
  require('../../modules/esnext.map.filter');
10
10
  require('../../modules/esnext.map.find');
11
11
  require('../../modules/esnext.map.find-key');
12
+ require('../../modules/esnext.map.get-or-insert');
13
+ require('../../modules/esnext.map.get-or-insert-computed');
12
14
  require('../../modules/esnext.map.includes');
13
15
  require('../../modules/esnext.map.key-of');
14
16
  require('../../modules/esnext.map.map-keys');
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
2
  var parent = require('../../actual/math');
3
- require('../../modules/es.array.iterator');
4
3
  require('../../modules/esnext.math.clamp');
5
4
  require('../../modules/esnext.math.deg-per-rad');
6
5
  require('../../modules/esnext.math.degrees');
@@ -10,7 +9,6 @@ require('../../modules/esnext.math.radians');
10
9
  require('../../modules/esnext.math.scale');
11
10
  require('../../modules/esnext.math.seeded-prng');
12
11
  require('../../modules/esnext.math.signbit');
13
- require('../../modules/esnext.math.sum-precise');
14
12
  // TODO: Remove from `core-js@4`
15
13
  require('../../modules/esnext.math.iaddh');
16
14
  require('../../modules/esnext.math.isubh');
@@ -1,6 +1,4 @@
1
1
  'use strict';
2
- require('../../modules/es.array.iterator');
3
- require('../../modules/esnext.math.sum-precise');
4
- var path = require('../../internals/path');
2
+ var parent = require('../../actual/math/sum-precise');
5
3
 
6
- module.exports = path.Math.sumPrecise;
4
+ module.exports = parent;
@@ -6,6 +6,8 @@ require('../../modules/es.weak-map');
6
6
  require('../../modules/esnext.weak-map.from');
7
7
  require('../../modules/esnext.weak-map.delete-all');
8
8
  require('../../modules/esnext.weak-map.emplace');
9
+ require('../../modules/esnext.weak-map.get-or-insert');
10
+ require('../../modules/esnext.weak-map.get-or-insert-computed');
9
11
  require('../../modules/web.dom-collections.iterator');
10
12
  var path = require('../../internals/path');
11
13
 
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ require('../../modules/es.weak-map');
3
+ require('../../modules/esnext.weak-map.get-or-insert-computed');
4
+ var entryUnbind = require('../../internals/entry-unbind');
5
+
6
+ module.exports = entryUnbind('WeakMap', 'getOrInsertComputed');
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ require('../../modules/es.weak-map');
3
+ require('../../modules/esnext.weak-map.get-or-insert');
4
+ var entryUnbind = require('../../internals/entry-unbind');
5
+
6
+ module.exports = entryUnbind('WeakMap', 'getOrInsert');
@@ -1,9 +1,11 @@
1
1
  'use strict';
2
2
  var parent = require('../../actual/weak-map');
3
3
  require('../../modules/es.string.iterator');
4
- require('../../modules/esnext.weak-map.emplace');
5
4
  require('../../modules/esnext.weak-map.from');
6
5
  require('../../modules/esnext.weak-map.of');
6
+ require('../../modules/esnext.weak-map.emplace');
7
+ require('../../modules/esnext.weak-map.get-or-insert');
8
+ require('../../modules/esnext.weak-map.get-or-insert-computed');
7
9
  require('../../modules/esnext.weak-map.delete-all');
8
10
  // TODO: remove from `core-js@4`
9
11
  require('../../modules/esnext.weak-map.upsert');
@@ -5,6 +5,8 @@ require('../../modules/es.weak-map');
5
5
  require('../../modules/esnext.weak-map.of');
6
6
  require('../../modules/esnext.weak-map.delete-all');
7
7
  require('../../modules/esnext.weak-map.emplace');
8
+ require('../../modules/esnext.weak-map.get-or-insert');
9
+ require('../../modules/esnext.weak-map.get-or-insert-computed');
8
10
  var path = require('../../internals/path');
9
11
 
10
12
  module.exports = path.WeakMap.of;
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ var getBuiltIn = require('../internals/get-built-in');
2
3
  var call = require('../internals/function-call');
3
4
  var uncurryThis = require('../internals/function-uncurry-this');
4
5
  var bind = require('../internals/function-bind-context');
@@ -22,7 +23,12 @@ var getDisposeMethod = function (V, hint) {
22
23
  method = getMethod(V, DISPOSE);
23
24
  if (method === undefined) return method;
24
25
  return function () {
25
- call(method, this);
26
+ var O = this;
27
+ var Promise = getBuiltIn('Promise');
28
+ return new Promise(function (resolve) {
29
+ call(method, O);
30
+ resolve(undefined);
31
+ });
26
32
  };
27
33
  } return getMethod(V, DISPOSE);
28
34
  };
@@ -1,17 +1,15 @@
1
1
  'use strict';
2
2
  var globalThis = require('../internals/global-this');
3
- var uncurryThis = require('../internals/function-uncurry-this-clause');
3
+ var NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');
4
4
  var arrayBufferByteLength = require('../internals/array-buffer-byte-length');
5
5
 
6
- var ArrayBuffer = globalThis.ArrayBuffer;
7
- var ArrayBufferPrototype = ArrayBuffer && ArrayBuffer.prototype;
8
- var slice = ArrayBufferPrototype && uncurryThis(ArrayBufferPrototype.slice);
6
+ var DataView = globalThis.DataView;
9
7
 
10
8
  module.exports = function (O) {
11
- if (arrayBufferByteLength(O) !== 0) return false;
12
- if (!slice) return false;
9
+ if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;
13
10
  try {
14
- slice(O, 0, 0);
11
+ // eslint-disable-next-line no-new -- thrower
12
+ new DataView(O);
15
13
  return false;
16
14
  } catch (error) {
17
15
  return true;
@@ -205,7 +205,7 @@ if (!NATIVE_ARRAY_BUFFER) {
205
205
  });
206
206
  } else {
207
207
  var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;
208
- /* eslint-disable no-new, sonar/inconsistent-function-call -- required for testing */
208
+ /* eslint-disable no-new, sonarjs/inconsistent-function-call -- required for testing */
209
209
  if (!fails(function () {
210
210
  NativeArrayBuffer(1);
211
211
  }) || !fails(function () {
@@ -216,7 +216,7 @@ if (!NATIVE_ARRAY_BUFFER) {
216
216
  new NativeArrayBuffer(NaN);
217
217
  return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;
218
218
  })) {
219
- /* eslint-enable no-new, sonar/inconsistent-function-call -- required for testing */
219
+ /* eslint-enable no-new, sonarjs/inconsistent-function-call -- required for testing */
220
220
  $ArrayBuffer = function ArrayBuffer(length) {
221
221
  anInstance(this, ArrayBufferPrototype);
222
222
  return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer);
@@ -5,7 +5,7 @@ var $Error = Error;
5
5
  var replace = uncurryThis(''.replace);
6
6
 
7
7
  var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');
8
- // eslint-disable-next-line redos/no-vulnerable -- safe
8
+ // eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- safe
9
9
  var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/;
10
10
  var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);
11
11
 
@@ -5,7 +5,7 @@ var FunctionPrototype = Function.prototype;
5
5
  var apply = FunctionPrototype.apply;
6
6
  var call = FunctionPrototype.call;
7
7
 
8
- // eslint-disable-next-line es/no-reflect -- safe
8
+ // eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe
9
9
  module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {
10
10
  return call.apply(apply, arguments);
11
11
  });
@@ -2,7 +2,7 @@
2
2
  var NATIVE_BIND = require('../internals/function-bind-native');
3
3
 
4
4
  var call = Function.prototype.call;
5
-
5
+ // eslint-disable-next-line es/no-function-prototype-bind -- safe
6
6
  module.exports = NATIVE_BIND ? call.bind(call) : function () {
7
7
  return call.apply(call, arguments);
8
8
  };
@@ -3,6 +3,7 @@ var NATIVE_BIND = require('../internals/function-bind-native');
3
3
 
4
4
  var FunctionPrototype = Function.prototype;
5
5
  var call = FunctionPrototype.call;
6
+ // eslint-disable-next-line es/no-function-prototype-bind -- safe
6
7
  var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);
7
8
 
8
9
  module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
@@ -22,12 +22,13 @@ var createIteratorProxyPrototype = function (IS_ITERATOR) {
22
22
  next: function next() {
23
23
  var state = getInternalState(this);
24
24
  // for simplification:
25
- // for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`
25
+ // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`
26
26
  // for `%IteratorHelperPrototype%.next` - just a value
27
27
  if (IS_ITERATOR) return state.nextHandler();
28
+ if (state.done) return createIterResultObject(undefined, true);
28
29
  try {
29
- var result = state.done ? undefined : state.nextHandler();
30
- return createIterResultObject(result, state.done);
30
+ var result = state.nextHandler();
31
+ return state.returnHandlerResult ? result : createIterResultObject(result, state.done);
31
32
  } catch (error) {
32
33
  state.done = true;
33
34
  throw error;
@@ -46,7 +47,7 @@ var createIteratorProxyPrototype = function (IS_ITERATOR) {
46
47
  } catch (error) {
47
48
  return iteratorClose(iterator, 'throw', error);
48
49
  }
49
- iteratorClose(iterator, 'normal');
50
+ if (iterator) iteratorClose(iterator, 'normal');
50
51
  return createIterResultObject(undefined, true);
51
52
  }
52
53
  });
@@ -57,13 +58,14 @@ var IteratorHelperPrototype = createIteratorProxyPrototype(false);
57
58
 
58
59
  createNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');
59
60
 
60
- module.exports = function (nextHandler, IS_ITERATOR) {
61
+ module.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {
61
62
  var IteratorProxy = function Iterator(record, state) {
62
63
  if (state) {
63
64
  state.iterator = record.iterator;
64
65
  state.next = record.next;
65
66
  } else state = record;
66
67
  state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;
68
+ state.returnHandlerResult = !!RETURN_HANDLER_RESULT;
67
69
  state.nextHandler = nextHandler;
68
70
  state.counter = 0;
69
71
  state.done = false;
@@ -1,14 +1,10 @@
1
1
  'use strict';
2
2
  var sign = require('../internals/math-sign');
3
+ var roundTiesToEven = require('../internals/math-round-ties-to-even');
3
4
 
4
5
  var abs = Math.abs;
5
6
 
6
7
  var EPSILON = 2.220446049250313e-16; // Number.EPSILON
7
- var INVERSE_EPSILON = 1 / EPSILON;
8
-
9
- var roundTiesToEven = function (n) {
10
- return n + INVERSE_EPSILON - INVERSE_EPSILON;
11
- };
12
8
 
13
9
  module.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) {
14
10
  var n = +x;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ var log = Math.log;
3
+ var LN2 = Math.LN2;
4
+
5
+ // `Math.log2` method
6
+ // https://tc39.es/ecma262/#sec-math.log2
7
+ // eslint-disable-next-line es/no-math-log2 -- safe
8
+ module.exports = Math.log2 || function log2(x) {
9
+ return log(x) / LN2;
10
+ };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ var EPSILON = 2.220446049250313e-16; // Number.EPSILON
3
+ var INVERSE_EPSILON = 1 / EPSILON;
4
+
5
+ module.exports = function (n) {
6
+ return n + INVERSE_EPSILON - INVERSE_EPSILON;
7
+ };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  // `Math.scale` method implementation
3
3
  // https://rwaldron.github.io/proposal-math-extensions/
4
- module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
4
+ module.exports = function scale(x, inLow, inHigh, outLow, outHigh) {
5
5
  var nx = +x;
6
6
  var nInLow = +inLow;
7
7
  var nInHigh = +inHigh;
@@ -4,6 +4,8 @@ var fails = require('../internals/fails');
4
4
 
5
5
  module.exports = !fails(function () {
6
6
  var unsafeInt = '9007199254740993';
7
+ // eslint-disable-next-line es/no-nonstandard-json-properties -- feature detection
7
8
  var raw = JSON.rawJSON(unsafeInt);
9
+ // eslint-disable-next-line es/no-nonstandard-json-properties -- feature detection
8
10
  return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;
9
11
  });
@@ -35,6 +35,7 @@ module.exports = !$assign || fails(function () {
35
35
  var symbol = Symbol('assign detection');
36
36
  var alphabet = 'abcdefghijklmnopqrst';
37
37
  A[symbol] = 7;
38
+ // eslint-disable-next-line es/no-array-prototype-foreach -- safe
38
39
  alphabet.split('').forEach(function (chr) { B[chr] = chr; });
39
40
  return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;
40
41
  }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- /* eslint-disable no-undef, no-useless-call, sonar/no-reference-error -- required for testing */
2
+ /* eslint-disable no-undef, no-useless-call, sonarjs/no-reference-error -- required for testing */
3
3
  /* eslint-disable es/no-legacy-object-prototype-accessor-methods -- required for testing */
4
4
  var IS_PURE = require('../internals/is-pure');
5
5
  var globalThis = require('../internals/global-this');
@@ -17,7 +17,19 @@ var createSetLike = function (size) {
17
17
  };
18
18
  };
19
19
 
20
- module.exports = function (name) {
20
+ var createSetLikeWithInfinitySize = function (size) {
21
+ return {
22
+ size: size,
23
+ has: function () {
24
+ return true;
25
+ },
26
+ keys: function () {
27
+ throw new Error('e');
28
+ }
29
+ };
30
+ };
31
+
32
+ module.exports = function (name, callback) {
21
33
  var Set = getBuiltIn('Set');
22
34
  try {
23
35
  new Set()[name](createSetLike(0));
@@ -27,7 +39,18 @@ module.exports = function (name) {
27
39
  new Set()[name](createSetLike(-1));
28
40
  return false;
29
41
  } catch (error2) {
30
- return true;
42
+ if (!callback) return true;
43
+ // early V8 implementation bug
44
+ // https://issues.chromium.org/issues/351332634
45
+ try {
46
+ new Set()[name](createSetLikeWithInfinitySize(-Infinity));
47
+ return false;
48
+ } catch (error) {
49
+ var set = new Set();
50
+ set.add(1);
51
+ set.add(2);
52
+ return callback(set[name](createSetLikeWithInfinitySize(Infinity)));
53
+ }
31
54
  }
32
55
  } catch (error) {
33
56
  return false;
@@ -7,9 +7,9 @@ var SHARED = '__core-js_shared__';
7
7
  var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
8
8
 
9
9
  (store.versions || (store.versions = [])).push({
10
- version: '3.38.1',
10
+ version: '3.40.0',
11
11
  mode: IS_PURE ? 'pure' : 'global',
12
- copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',
13
- license: 'https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE',
12
+ copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',
13
+ license: 'https://github.com/zloirock/core-js/blob/v3.40.0/LICENSE',
14
14
  source: 'https://github.com/zloirock/core-js'
15
15
  });
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- /* eslint-disable no-new, sonar/inconsistent-function-call -- required for testing */
2
+ /* eslint-disable no-new, sonarjs/inconsistent-function-call -- required for testing */
3
3
  var globalThis = require('../internals/global-this');
4
4
  var fails = require('../internals/fails');
5
5
  var checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
3
+ var getTypedArrayConstructor = require('../internals/array-buffer-view-core').getTypedArrayConstructor;
4
+
5
+ module.exports = function (instance, list) {
6
+ return arrayFromConstructorAndList(getTypedArrayConstructor(instance), list);
7
+ };
@@ -2,6 +2,6 @@
2
2
  /* eslint-disable es/no-symbol -- required for testing */
3
3
  var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');
4
4
 
5
- module.exports = NATIVE_SYMBOL
6
- && !Symbol.sham
7
- && typeof Symbol.iterator == 'symbol';
5
+ module.exports = NATIVE_SYMBOL &&
6
+ !Symbol.sham &&
7
+ typeof Symbol.iterator == 'symbol';
@@ -5,6 +5,8 @@ var isDetached = require('../internals/array-buffer-is-detached');
5
5
 
6
6
  var ArrayBufferPrototype = ArrayBuffer.prototype;
7
7
 
8
+ // `ArrayBuffer.prototype.detached` getter
9
+ // https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached
8
10
  if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {
9
11
  defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {
10
12
  configurable: true,
@@ -6,7 +6,6 @@ var ArrayBufferModule = require('../internals/array-buffer');
6
6
  var anObject = require('../internals/an-object');
7
7
  var toAbsoluteIndex = require('../internals/to-absolute-index');
8
8
  var toLength = require('../internals/to-length');
9
- var speciesConstructor = require('../internals/species-constructor');
10
9
 
11
10
  var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
12
11
  var DataView = ArrayBufferModule.DataView;
@@ -29,7 +28,7 @@ $({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE },
29
28
  var length = anObject(this).byteLength;
30
29
  var first = toAbsoluteIndex(start, length);
31
30
  var fin = toAbsoluteIndex(end === undefined ? length : end, length);
32
- var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));
31
+ var result = new ArrayBuffer(toLength(fin - first));
33
32
  var viewSource = new DataView(this);
34
33
  var viewTarget = new DataView(result);
35
34
  var index = 0;
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var globalThis = require('../internals/global-this');
4
+ var anInstance = require('../internals/an-instance');
5
+ var anObject = require('../internals/an-object');
6
+ var isCallable = require('../internals/is-callable');
7
+ var getPrototypeOf = require('../internals/object-get-prototype-of');
8
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
9
+ var createProperty = require('../internals/create-property');
10
+ var fails = require('../internals/fails');
11
+ var hasOwn = require('../internals/has-own-property');
12
+ var wellKnownSymbol = require('../internals/well-known-symbol');
13
+ var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
14
+ var DESCRIPTORS = require('../internals/descriptors');
15
+ var IS_PURE = require('../internals/is-pure');
16
+
17
+ var CONSTRUCTOR = 'constructor';
18
+ var ITERATOR = 'Iterator';
19
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
20
+
21
+ var $TypeError = TypeError;
22
+ var NativeIterator = globalThis[ITERATOR];
23
+
24
+ // FF56- have non-standard global helper `Iterator`
25
+ var FORCED = IS_PURE
26
+ || !isCallable(NativeIterator)
27
+ || NativeIterator.prototype !== IteratorPrototype
28
+ // FF44- non-standard `Iterator` passes previous tests
29
+ || !fails(function () { NativeIterator({}); });
30
+
31
+ var IteratorConstructor = function Iterator() {
32
+ anInstance(this, IteratorPrototype);
33
+ if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');
34
+ };
35
+
36
+ var defineIteratorPrototypeAccessor = function (key, value) {
37
+ if (DESCRIPTORS) {
38
+ defineBuiltInAccessor(IteratorPrototype, key, {
39
+ configurable: true,
40
+ get: function () {
41
+ return value;
42
+ },
43
+ set: function (replacement) {
44
+ anObject(this);
45
+ if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property");
46
+ if (hasOwn(this, key)) this[key] = replacement;
47
+ else createProperty(this, key, replacement);
48
+ }
49
+ });
50
+ } else IteratorPrototype[key] = value;
51
+ };
52
+
53
+ if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);
54
+
55
+ if (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {
56
+ defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);
57
+ }
58
+
59
+ IteratorConstructor.prototype = IteratorPrototype;
60
+
61
+ // `Iterator` constructor
62
+ // https://tc39.es/ecma262/#sec-iterator
63
+ $({ global: true, constructor: true, forced: FORCED }, {
64
+ Iterator: IteratorConstructor
65
+ });
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var call = require('../internals/function-call');
4
+ var anObject = require('../internals/an-object');
5
+ var getIteratorDirect = require('../internals/get-iterator-direct');
6
+ var notANaN = require('../internals/not-a-nan');
7
+ var toPositiveInteger = require('../internals/to-positive-integer');
8
+ var createIteratorProxy = require('../internals/iterator-create-proxy');
9
+ var IS_PURE = require('../internals/is-pure');
10
+
11
+ var IteratorProxy = createIteratorProxy(function () {
12
+ var iterator = this.iterator;
13
+ var next = this.next;
14
+ var result, done;
15
+ while (this.remaining) {
16
+ this.remaining--;
17
+ result = anObject(call(next, iterator));
18
+ done = this.done = !!result.done;
19
+ if (done) return;
20
+ }
21
+ result = anObject(call(next, iterator));
22
+ done = this.done = !!result.done;
23
+ if (!done) return result.value;
24
+ });
25
+
26
+ // `Iterator.prototype.drop` method
27
+ // https://tc39.es/ecma262/#sec-iterator.prototype.drop
28
+ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
29
+ drop: function drop(limit) {
30
+ anObject(this);
31
+ var remaining = toPositiveInteger(notANaN(+limit));
32
+ return new IteratorProxy(getIteratorDirect(this), {
33
+ remaining: remaining
34
+ });
35
+ }
36
+ });
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var iterate = require('../internals/iterate');
4
+ var aCallable = require('../internals/a-callable');
5
+ var anObject = require('../internals/an-object');
6
+ var getIteratorDirect = require('../internals/get-iterator-direct');
7
+
8
+ // `Iterator.prototype.every` method
9
+ // https://tc39.es/ecma262/#sec-iterator.prototype.every
10
+ $({ target: 'Iterator', proto: true, real: true }, {
11
+ every: function every(predicate) {
12
+ anObject(this);
13
+ aCallable(predicate);
14
+ var record = getIteratorDirect(this);
15
+ var counter = 0;
16
+ return !iterate(record, function (value, stop) {
17
+ if (!predicate(value, counter++)) return stop();
18
+ }, { IS_RECORD: true, INTERRUPTED: true }).stopped;
19
+ }
20
+ });
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var call = require('../internals/function-call');
4
+ var aCallable = require('../internals/a-callable');
5
+ var anObject = require('../internals/an-object');
6
+ var getIteratorDirect = require('../internals/get-iterator-direct');
7
+ var createIteratorProxy = require('../internals/iterator-create-proxy');
8
+ var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
9
+ var IS_PURE = require('../internals/is-pure');
10
+
11
+ var IteratorProxy = createIteratorProxy(function () {
12
+ var iterator = this.iterator;
13
+ var predicate = this.predicate;
14
+ var next = this.next;
15
+ var result, done, value;
16
+ while (true) {
17
+ result = anObject(call(next, iterator));
18
+ done = this.done = !!result.done;
19
+ if (done) return;
20
+ value = result.value;
21
+ if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;
22
+ }
23
+ });
24
+
25
+ // `Iterator.prototype.filter` method
26
+ // https://tc39.es/ecma262/#sec-iterator.prototype.filter
27
+ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
28
+ filter: function filter(predicate) {
29
+ anObject(this);
30
+ aCallable(predicate);
31
+ return new IteratorProxy(getIteratorDirect(this), {
32
+ predicate: predicate
33
+ });
34
+ }
35
+ });
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var iterate = require('../internals/iterate');
4
+ var aCallable = require('../internals/a-callable');
5
+ var anObject = require('../internals/an-object');
6
+ var getIteratorDirect = require('../internals/get-iterator-direct');
7
+
8
+ // `Iterator.prototype.find` method
9
+ // https://tc39.es/ecma262/#sec-iterator.prototype.find
10
+ $({ target: 'Iterator', proto: true, real: true }, {
11
+ find: function find(predicate) {
12
+ anObject(this);
13
+ aCallable(predicate);
14
+ var record = getIteratorDirect(this);
15
+ var counter = 0;
16
+ return iterate(record, function (value, stop) {
17
+ if (predicate(value, counter++)) return stop(value);
18
+ }, { IS_RECORD: true, INTERRUPTED: true }).result;
19
+ }
20
+ });