core-js 3.42.0 → 3.46.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 (227) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +8 -8
  3. package/actual/array/from-async.js +2 -6
  4. package/actual/array/index.js +0 -2
  5. package/actual/async-disposable-stack/constructor.js +2 -6
  6. package/actual/async-disposable-stack/index.js +2 -6
  7. package/actual/async-iterator/async-dispose.js +1 -2
  8. package/actual/async-iterator/index.js +1 -2
  9. package/actual/disposable-stack/constructor.js +2 -5
  10. package/actual/disposable-stack/index.js +2 -5
  11. package/actual/error/is-error.js +2 -3
  12. package/actual/iterator/concat.js +21 -0
  13. package/actual/iterator/index.js +1 -0
  14. package/actual/map/get-or-insert-computed.js +6 -0
  15. package/actual/map/get-or-insert.js +6 -0
  16. package/actual/map/index.js +2 -0
  17. package/actual/math/index.js +0 -1
  18. package/actual/math/sum-precise.js +2 -3
  19. package/actual/suppressed-error.js +2 -4
  20. package/actual/symbol/async-dispose.js +2 -2
  21. package/actual/symbol/dispose.js +2 -2
  22. package/actual/typed-array/from-base64.js +3 -0
  23. package/actual/typed-array/from-hex.js +3 -0
  24. package/actual/typed-array/index.js +1 -1
  25. package/actual/typed-array/set-from-base64.js +3 -0
  26. package/actual/typed-array/set-from-hex.js +3 -0
  27. package/actual/typed-array/to-base64.js +3 -0
  28. package/actual/typed-array/to-hex.js +3 -0
  29. package/actual/weak-map/get-or-insert-computed.js +6 -0
  30. package/actual/weak-map/get-or-insert.js +6 -0
  31. package/actual/weak-map/index.js +2 -0
  32. package/es/array/from-async.js +9 -0
  33. package/es/array/index.js +2 -0
  34. package/es/async-disposable-stack/constructor.js +12 -0
  35. package/es/async-disposable-stack/index.js +12 -0
  36. package/es/async-iterator/async-dispose.js +4 -0
  37. package/es/async-iterator/index.js +4 -0
  38. package/es/disposable-stack/constructor.js +10 -0
  39. package/es/disposable-stack/index.js +10 -0
  40. package/es/error/index.js +1 -0
  41. package/es/error/is-error.js +6 -0
  42. package/es/index.js +16 -0
  43. package/es/iterator/dispose.js +2 -0
  44. package/es/iterator/flat-map.js +1 -0
  45. package/es/iterator/index.js +1 -0
  46. package/es/math/index.js +2 -0
  47. package/es/math/sum-precise.js +6 -0
  48. package/es/suppressed-error.js +7 -0
  49. package/es/symbol/async-dispose.js +5 -0
  50. package/es/symbol/dispose.js +5 -0
  51. package/es/symbol/index.js +2 -0
  52. package/es/typed-array/from-base64.js +2 -0
  53. package/es/typed-array/from-hex.js +2 -0
  54. package/es/typed-array/methods.js +6 -0
  55. package/es/typed-array/set-from-base64.js +2 -0
  56. package/es/typed-array/set-from-hex.js +2 -0
  57. package/es/typed-array/to-base64.js +2 -0
  58. package/es/typed-array/to-hex.js +2 -0
  59. package/features/instance/clamp.js +2 -0
  60. package/features/iterator/chunks.js +2 -0
  61. package/features/iterator/sliding.js +2 -0
  62. package/features/iterator/windows.js +2 -0
  63. package/features/iterator/zip-keyed.js +2 -0
  64. package/features/iterator/zip.js +2 -0
  65. package/features/number/clamp.js +2 -0
  66. package/features/number/virtual/clamp.js +2 -0
  67. package/full/index.js +22 -0
  68. package/full/instance/clamp.js +14 -0
  69. package/full/iterator/chunks.js +8 -0
  70. package/full/iterator/concat.js +5 -18
  71. package/full/iterator/from.js +3 -0
  72. package/full/iterator/index.js +5 -1
  73. package/full/iterator/range.js +19 -0
  74. package/full/iterator/sliding.js +8 -0
  75. package/full/iterator/windows.js +8 -0
  76. package/full/iterator/zip-keyed.js +27 -0
  77. package/full/iterator/zip.js +25 -0
  78. package/full/map/get-or-insert-computed.js +2 -4
  79. package/full/map/get-or-insert.js +2 -4
  80. package/full/math/clamp.js +1 -0
  81. package/full/math/index.js +1 -0
  82. package/full/number/clamp.js +5 -0
  83. package/full/number/index.js +1 -0
  84. package/full/number/virtual/clamp.js +5 -0
  85. package/full/weak-map/get-or-insert-computed.js +2 -4
  86. package/full/weak-map/get-or-insert.js +2 -4
  87. package/internals/array-to-reversed.js +2 -2
  88. package/internals/array-with.js +2 -2
  89. package/internals/async-iterator-iteration.js +6 -1
  90. package/internals/async-iterator-map.js +1 -1
  91. package/internals/error-stack-install.js +1 -0
  92. package/internals/flatten-into-array.js +1 -1
  93. package/internals/get-iterator-direct.js +1 -1
  94. package/internals/get-iterator-record.js +7 -0
  95. package/internals/get-mode-option.js +8 -0
  96. package/internals/install-error-cause.js +1 -1
  97. package/internals/iterate.js +1 -1
  98. package/internals/iterator-close-all.js +16 -0
  99. package/internals/iterator-create-proxy.js +11 -3
  100. package/internals/iterator-helper-throws-on-invalid-iterator.js +12 -0
  101. package/internals/iterator-window.js +50 -0
  102. package/internals/iterator-zip.js +100 -0
  103. package/internals/math-clamp.js +9 -0
  104. package/internals/regexp-flags-detection.js +47 -0
  105. package/internals/regexp-get-flags.js +8 -5
  106. package/internals/set-difference.js +2 -2
  107. package/internals/set-intersection.js +1 -1
  108. package/internals/set-is-disjoint-from.js +1 -1
  109. package/internals/set-is-subset-of.js +1 -1
  110. package/internals/set-is-superset-of.js +1 -1
  111. package/internals/set-method-get-keys-before-cloning-detection.js +30 -0
  112. package/internals/set-symmetric-difference.js +1 -1
  113. package/internals/set-union.js +1 -1
  114. package/internals/shared-store.js +3 -3
  115. package/internals/string-pad.js +0 -1
  116. package/internals/this-number-value.js +1 -1
  117. package/internals/uid.js +1 -1
  118. package/internals/uint8-from-base64.js +6 -5
  119. package/modules/es.array-buffer.transfer-to-fixed-length.js +1 -1
  120. package/modules/es.array-buffer.transfer.js +1 -1
  121. package/modules/es.array.from-async.js +22 -0
  122. package/modules/es.array.with.js +11 -1
  123. package/modules/es.async-disposable-stack.constructor.js +135 -0
  124. package/modules/es.async-iterator.async-dispose.js +26 -0
  125. package/modules/es.data-view.get-float16.js +1 -2
  126. package/modules/es.data-view.set-float16.js +6 -4
  127. package/modules/es.disposable-stack.constructor.js +114 -0
  128. package/modules/es.error.is-error.js +37 -0
  129. package/modules/es.escape.js +1 -1
  130. package/modules/es.iterator.dispose.js +17 -0
  131. package/modules/es.iterator.drop.js +7 -2
  132. package/modules/es.iterator.filter.js +7 -2
  133. package/modules/es.iterator.flat-map.js +8 -2
  134. package/modules/es.iterator.from.js +12 -1
  135. package/modules/es.iterator.map.js +7 -2
  136. package/modules/es.json.stringify.js +1 -1
  137. package/modules/es.math.sum-precise.js +151 -0
  138. package/modules/es.number.to-exponential.js +1 -1
  139. package/modules/es.number.to-fixed.js +1 -1
  140. package/modules/es.number.to-precision.js +1 -1
  141. package/modules/es.object.group-by.js +2 -1
  142. package/modules/es.promise.constructor.js +3 -0
  143. package/modules/es.regexp.flags.js +10 -50
  144. package/modules/es.set.difference.v2.js +25 -2
  145. package/modules/es.set.symmetric-difference.v2.js +4 -1
  146. package/modules/es.set.union.v2.js +4 -1
  147. package/modules/es.string.match.js +8 -2
  148. package/modules/es.string.replace.js +4 -2
  149. package/modules/es.suppressed-error.constructor.js +64 -0
  150. package/modules/es.symbol.async-dispose.js +21 -0
  151. package/modules/es.symbol.constructor.js +1 -1
  152. package/modules/es.symbol.dispose.js +21 -0
  153. package/modules/es.typed-array.with.js +12 -2
  154. package/modules/es.uint8-array.from-base64.js +29 -0
  155. package/modules/es.uint8-array.from-hex.js +13 -0
  156. package/modules/es.uint8-array.set-from-base64.js +37 -0
  157. package/modules/es.uint8-array.set-from-hex.js +19 -0
  158. package/modules/es.uint8-array.to-base64.js +60 -0
  159. package/modules/es.uint8-array.to-hex.js +34 -0
  160. package/modules/esnext.array.from-async.js +2 -21
  161. package/modules/esnext.array.last-index.js +1 -1
  162. package/modules/esnext.array.last-item.js +1 -1
  163. package/modules/esnext.async-disposable-stack.constructor.js +2 -134
  164. package/modules/esnext.async-iterator.async-dispose.js +2 -25
  165. package/modules/esnext.data-view.set-uint8-clamped.js +5 -3
  166. package/modules/esnext.disposable-stack.constructor.js +2 -113
  167. package/modules/esnext.error.is-error.js +2 -35
  168. package/modules/esnext.iterator.chunks.js +44 -0
  169. package/modules/esnext.iterator.concat.js +4 -5
  170. package/modules/esnext.iterator.dispose.js +2 -16
  171. package/modules/esnext.iterator.sliding.js +11 -0
  172. package/modules/esnext.iterator.windows.js +11 -0
  173. package/modules/esnext.iterator.zip-keyed.js +71 -0
  174. package/modules/esnext.iterator.zip.js +91 -0
  175. package/modules/esnext.map.get-or-insert-computed.js +2 -1
  176. package/modules/esnext.map.get-or-insert.js +2 -1
  177. package/modules/esnext.math.clamp.js +3 -14
  178. package/modules/esnext.math.sum-precise.js +2 -150
  179. package/modules/esnext.number.clamp.js +12 -0
  180. package/modules/esnext.number.from-string.js +1 -1
  181. package/modules/esnext.suppressed-error.constructor.js +2 -63
  182. package/modules/esnext.symbol.async-dispose.js +2 -20
  183. package/modules/esnext.symbol.dispose.js +2 -20
  184. package/modules/esnext.uint8-array.from-base64.js +2 -15
  185. package/modules/esnext.uint8-array.from-hex.js +2 -12
  186. package/modules/esnext.uint8-array.set-from-base64.js +2 -27
  187. package/modules/esnext.uint8-array.set-from-hex.js +2 -18
  188. package/modules/esnext.uint8-array.to-base64.js +2 -48
  189. package/modules/esnext.uint8-array.to-hex.js +2 -22
  190. package/modules/esnext.weak-map.get-or-insert-computed.js +13 -1
  191. package/modules/esnext.weak-map.get-or-insert.js +2 -1
  192. package/modules/web.structured-clone.js +1 -1
  193. package/modules/web.url.constructor.js +2 -1
  194. package/package.json +5 -1
  195. package/proposals/function-un-this.js +1 -1
  196. package/proposals/iterator-chunking-v2.js +4 -0
  197. package/proposals/iterator-chunking.js +5 -0
  198. package/proposals/joint-iteration.js +4 -0
  199. package/proposals/math-clamp-v2.js +3 -0
  200. package/proposals/math-clamp.js +1 -1
  201. package/proposals/string-cooked.js +1 -1
  202. package/stable/array/from-async.js +4 -0
  203. package/stable/async-disposable-stack/constructor.js +4 -0
  204. package/stable/async-disposable-stack/index.js +4 -0
  205. package/stable/async-iterator/async-dispose.js +2 -0
  206. package/stable/async-iterator/index.js +2 -0
  207. package/stable/disposable-stack/constructor.js +4 -0
  208. package/stable/disposable-stack/index.js +4 -0
  209. package/stable/error/is-error.js +4 -0
  210. package/stable/index.js +16 -0
  211. package/stable/iterator/dispose.js +4 -0
  212. package/stable/iterator/flat-map.js +1 -0
  213. package/stable/math/sum-precise.js +4 -0
  214. package/stable/suppressed-error.js +4 -0
  215. package/stable/symbol/async-dispose.js +4 -0
  216. package/stable/symbol/dispose.js +4 -0
  217. package/stable/typed-array/from-base64.js +4 -0
  218. package/stable/typed-array/from-hex.js +4 -0
  219. package/stable/typed-array/set-from-base64.js +4 -0
  220. package/stable/typed-array/set-from-hex.js +4 -0
  221. package/stable/typed-array/to-base64.js +4 -0
  222. package/stable/typed-array/to-hex.js +4 -0
  223. package/stage/1.js +2 -1
  224. package/stage/2.7.js +2 -2
  225. package/stage/2.js +1 -0
  226. package/stage/3.js +2 -5
  227. package/stage/4.js +5 -0
@@ -25,7 +25,6 @@ var getUint16 = uncurryThis(DataView.prototype.getUint16);
25
25
  // https://tc39.es/ecma262/#sec-dataview.prototype.getfloat16
26
26
  $({ target: 'DataView', proto: true }, {
27
27
  getFloat16: function getFloat16(byteOffset /* , littleEndian */) {
28
- var uint16 = getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false);
29
- return unpackFloat16(uint16);
28
+ return unpackFloat16(getUint16(this, byteOffset, arguments.length > 1 ? arguments[1] : false));
30
29
  }
31
30
  });
@@ -46,9 +46,11 @@ var setUint16 = uncurryThis(DataView.prototype.setUint16);
46
46
  // https://tc39.es/ecma262/#sec-dataview.prototype.setfloat16
47
47
  $({ target: 'DataView', proto: true }, {
48
48
  setFloat16: function setFloat16(byteOffset, value /* , littleEndian */) {
49
- aDataView(this);
50
- var offset = toIndex(byteOffset);
51
- var bytes = packFloat16(+value);
52
- return setUint16(this, offset, bytes, arguments.length > 2 ? arguments[2] : false);
49
+ setUint16(
50
+ aDataView(this),
51
+ toIndex(byteOffset),
52
+ packFloat16(+value),
53
+ arguments.length > 2 ? arguments[2] : false
54
+ );
53
55
  }
54
56
  });
@@ -0,0 +1,114 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-explicit-resource-management
3
+ var $ = require('../internals/export');
4
+ var DESCRIPTORS = require('../internals/descriptors');
5
+ var getBuiltIn = require('../internals/get-built-in');
6
+ var aCallable = require('../internals/a-callable');
7
+ var anInstance = require('../internals/an-instance');
8
+ var defineBuiltIn = require('../internals/define-built-in');
9
+ var defineBuiltIns = require('../internals/define-built-ins');
10
+ var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
11
+ var wellKnownSymbol = require('../internals/well-known-symbol');
12
+ var InternalStateModule = require('../internals/internal-state');
13
+ var addDisposableResource = require('../internals/add-disposable-resource');
14
+
15
+ var SuppressedError = getBuiltIn('SuppressedError');
16
+ var $ReferenceError = ReferenceError;
17
+
18
+ var DISPOSE = wellKnownSymbol('dispose');
19
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
20
+
21
+ var DISPOSABLE_STACK = 'DisposableStack';
22
+ var setInternalState = InternalStateModule.set;
23
+ var getDisposableStackInternalState = InternalStateModule.getterFor(DISPOSABLE_STACK);
24
+
25
+ var HINT = 'sync-dispose';
26
+ var DISPOSED = 'disposed';
27
+ var PENDING = 'pending';
28
+
29
+ var getPendingDisposableStackInternalState = function (stack) {
30
+ var internalState = getDisposableStackInternalState(stack);
31
+ if (internalState.state === DISPOSED) throw new $ReferenceError(DISPOSABLE_STACK + ' already disposed');
32
+ return internalState;
33
+ };
34
+
35
+ var $DisposableStack = function DisposableStack() {
36
+ setInternalState(anInstance(this, DisposableStackPrototype), {
37
+ type: DISPOSABLE_STACK,
38
+ state: PENDING,
39
+ stack: []
40
+ });
41
+
42
+ if (!DESCRIPTORS) this.disposed = false;
43
+ };
44
+
45
+ var DisposableStackPrototype = $DisposableStack.prototype;
46
+
47
+ defineBuiltIns(DisposableStackPrototype, {
48
+ dispose: function dispose() {
49
+ var internalState = getDisposableStackInternalState(this);
50
+ if (internalState.state === DISPOSED) return;
51
+ internalState.state = DISPOSED;
52
+ if (!DESCRIPTORS) this.disposed = true;
53
+ var stack = internalState.stack;
54
+ var i = stack.length;
55
+ var thrown = false;
56
+ var suppressed;
57
+ while (i) {
58
+ var disposeMethod = stack[--i];
59
+ stack[i] = null;
60
+ try {
61
+ disposeMethod();
62
+ } catch (errorResult) {
63
+ if (thrown) {
64
+ suppressed = new SuppressedError(errorResult, suppressed);
65
+ } else {
66
+ thrown = true;
67
+ suppressed = errorResult;
68
+ }
69
+ }
70
+ }
71
+ internalState.stack = null;
72
+ if (thrown) throw suppressed;
73
+ },
74
+ use: function use(value) {
75
+ addDisposableResource(getPendingDisposableStackInternalState(this), value, HINT);
76
+ return value;
77
+ },
78
+ adopt: function adopt(value, onDispose) {
79
+ var internalState = getPendingDisposableStackInternalState(this);
80
+ aCallable(onDispose);
81
+ addDisposableResource(internalState, undefined, HINT, function () {
82
+ onDispose(value);
83
+ });
84
+ return value;
85
+ },
86
+ defer: function defer(onDispose) {
87
+ var internalState = getPendingDisposableStackInternalState(this);
88
+ aCallable(onDispose);
89
+ addDisposableResource(internalState, undefined, HINT, onDispose);
90
+ },
91
+ move: function move() {
92
+ var internalState = getPendingDisposableStackInternalState(this);
93
+ var newDisposableStack = new $DisposableStack();
94
+ getDisposableStackInternalState(newDisposableStack).stack = internalState.stack;
95
+ internalState.stack = [];
96
+ internalState.state = DISPOSED;
97
+ if (!DESCRIPTORS) this.disposed = true;
98
+ return newDisposableStack;
99
+ }
100
+ });
101
+
102
+ if (DESCRIPTORS) defineBuiltInAccessor(DisposableStackPrototype, 'disposed', {
103
+ configurable: true,
104
+ get: function disposed() {
105
+ return getDisposableStackInternalState(this).state === DISPOSED;
106
+ }
107
+ });
108
+
109
+ defineBuiltIn(DisposableStackPrototype, DISPOSE, DisposableStackPrototype.dispose, { name: 'dispose' });
110
+ defineBuiltIn(DisposableStackPrototype, TO_STRING_TAG, DISPOSABLE_STACK, { nonWritable: true });
111
+
112
+ $({ global: true, constructor: true }, {
113
+ DisposableStack: $DisposableStack
114
+ });
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var getBuiltIn = require('../internals/get-built-in');
4
+ var isObject = require('../internals/is-object');
5
+ var classof = require('../internals/classof');
6
+ var fails = require('../internals/fails');
7
+
8
+ var ERROR = 'Error';
9
+ var DOM_EXCEPTION = 'DOMException';
10
+ // eslint-disable-next-line es/no-object-setprototypeof, no-proto -- safe
11
+ var PROTOTYPE_SETTING_AVAILABLE = Object.setPrototypeOf || ({}).__proto__;
12
+
13
+ var DOMException = getBuiltIn(DOM_EXCEPTION);
14
+ var $Error = Error;
15
+ // eslint-disable-next-line es/no-error-iserror -- safe
16
+ var $isError = $Error.isError;
17
+
18
+ var FORCED = !$isError || !PROTOTYPE_SETTING_AVAILABLE || fails(function () {
19
+ // Bun, isNativeError-based implementations, some buggy structuredClone-based implementations, etc.
20
+ // https://github.com/oven-sh/bun/issues/15821
21
+ return (DOMException && !$isError(new DOMException(DOM_EXCEPTION))) ||
22
+ // structuredClone-based implementations
23
+ // eslint-disable-next-line es/no-error-cause -- detection
24
+ !$isError(new $Error(ERROR, { cause: function () { /* empty */ } })) ||
25
+ // instanceof-based and FF Error#stack-based implementations
26
+ $isError(getBuiltIn('Object', 'create')($Error.prototype));
27
+ });
28
+
29
+ // `Error.isError` method
30
+ // https://tc39.es/ecma262/#sec-error.iserror
31
+ $({ target: 'Error', stat: true, sham: true, forced: FORCED }, {
32
+ isError: function isError(arg) {
33
+ if (!isObject(arg)) return false;
34
+ var tag = classof(arg);
35
+ return tag === ERROR || tag === DOM_EXCEPTION;
36
+ }
37
+ });
@@ -6,7 +6,7 @@ var toString = require('../internals/to-string');
6
6
  var charAt = uncurryThis(''.charAt);
7
7
  var charCodeAt = uncurryThis(''.charCodeAt);
8
8
  var exec = uncurryThis(/./.exec);
9
- var numberToString = uncurryThis(1.0.toString);
9
+ var numberToString = uncurryThis(1.1.toString);
10
10
  var toUpperCase = uncurryThis(''.toUpperCase);
11
11
 
12
12
  var raw = /[\w*+\-./@]/;
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-explicit-resource-management
3
+ var call = require('../internals/function-call');
4
+ var defineBuiltIn = require('../internals/define-built-in');
5
+ var getMethod = require('../internals/get-method');
6
+ var hasOwn = require('../internals/has-own-property');
7
+ var wellKnownSymbol = require('../internals/well-known-symbol');
8
+ var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
9
+
10
+ var DISPOSE = wellKnownSymbol('dispose');
11
+
12
+ if (!hasOwn(IteratorPrototype, DISPOSE)) {
13
+ defineBuiltIn(IteratorPrototype, DISPOSE, function () {
14
+ var $return = getMethod(this, 'return');
15
+ if ($return) call($return, this);
16
+ });
17
+ }
@@ -7,10 +7,15 @@ var notANaN = require('../internals/not-a-nan');
7
7
  var toPositiveInteger = require('../internals/to-positive-integer');
8
8
  var iteratorClose = require('../internals/iterator-close');
9
9
  var createIteratorProxy = require('../internals/iterator-create-proxy');
10
+ var iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');
10
11
  var iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');
11
12
  var IS_PURE = require('../internals/is-pure');
12
13
 
13
- var dropWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('drop', RangeError);
14
+ var DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('drop', 0);
15
+ var dropWithoutClosingOnEarlyError = !IS_PURE && !DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR
16
+ && iteratorHelperWithoutClosingOnEarlyError('drop', RangeError);
17
+
18
+ var FORCED = IS_PURE || DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR || dropWithoutClosingOnEarlyError;
14
19
 
15
20
  var IteratorProxy = createIteratorProxy(function () {
16
21
  var iterator = this.iterator;
@@ -29,7 +34,7 @@ var IteratorProxy = createIteratorProxy(function () {
29
34
 
30
35
  // `Iterator.prototype.drop` method
31
36
  // https://tc39.es/ecma262/#sec-iterator.prototype.drop
32
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || dropWithoutClosingOnEarlyError }, {
37
+ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
33
38
  drop: function drop(limit) {
34
39
  anObject(this);
35
40
  var remaining;
@@ -8,9 +8,14 @@ var createIteratorProxy = require('../internals/iterator-create-proxy');
8
8
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
9
9
  var IS_PURE = require('../internals/is-pure');
10
10
  var iteratorClose = require('../internals/iterator-close');
11
+ var iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');
11
12
  var iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');
12
13
 
13
- var filterWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);
14
+ var FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });
15
+ var filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR
16
+ && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);
17
+
18
+ var FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;
14
19
 
15
20
  var IteratorProxy = createIteratorProxy(function () {
16
21
  var iterator = this.iterator;
@@ -28,7 +33,7 @@ var IteratorProxy = createIteratorProxy(function () {
28
33
 
29
34
  // `Iterator.prototype.filter` method
30
35
  // https://tc39.es/ecma262/#sec-iterator.prototype.filter
31
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || filterWithoutClosingOnEarlyError }, {
36
+ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
32
37
  filter: function filter(predicate) {
33
38
  anObject(this);
34
39
  try {
@@ -8,9 +8,15 @@ var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
8
8
  var createIteratorProxy = require('../internals/iterator-create-proxy');
9
9
  var iteratorClose = require('../internals/iterator-close');
10
10
  var IS_PURE = require('../internals/is-pure');
11
+ var iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');
11
12
  var iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');
12
13
 
13
- var flatMapWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);
14
+ var FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE
15
+ && !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });
16
+ var flatMapWithoutClosingOnEarlyError = !IS_PURE && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
17
+ && iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);
18
+
19
+ var FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError;
14
20
 
15
21
  var IteratorProxy = createIteratorProxy(function () {
16
22
  var iterator = this.iterator;
@@ -36,7 +42,7 @@ var IteratorProxy = createIteratorProxy(function () {
36
42
 
37
43
  // `Iterator.prototype.flatMap` method
38
44
  // https://tc39.es/ecma262/#sec-iterator.prototype.flatmap
39
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || flatMapWithoutClosingOnEarlyError }, {
45
+ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
40
46
  flatMap: function flatMap(mapper) {
41
47
  anObject(this);
42
48
  try {
@@ -8,13 +8,24 @@ var createIteratorProxy = require('../internals/iterator-create-proxy');
8
8
  var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
9
9
  var IS_PURE = require('../internals/is-pure');
10
10
 
11
+ var FORCED = IS_PURE || function () {
12
+ // Should not throw when an underlying iterator's `return` method is null
13
+ // https://bugs.webkit.org/show_bug.cgi?id=288714
14
+ try {
15
+ // eslint-disable-next-line es/no-iterator -- required for testing
16
+ Iterator.from({ 'return': null })['return']();
17
+ } catch (error) {
18
+ return true;
19
+ }
20
+ }();
21
+
11
22
  var IteratorProxy = createIteratorProxy(function () {
12
23
  return call(this.next, this.iterator);
13
24
  }, true);
14
25
 
15
26
  // `Iterator.from` method
16
27
  // https://tc39.es/ecma262/#sec-iterator.from
17
- $({ target: 'Iterator', stat: true, forced: IS_PURE }, {
28
+ $({ target: 'Iterator', stat: true, forced: FORCED }, {
18
29
  from: function from(O) {
19
30
  var iteratorRecord = getIteratorFlattenable(typeof O == 'string' ? toObject(O) : O, true);
20
31
  return isPrototypeOf(IteratorPrototype, iteratorRecord.iterator)
@@ -7,10 +7,15 @@ var getIteratorDirect = require('../internals/get-iterator-direct');
7
7
  var createIteratorProxy = require('../internals/iterator-create-proxy');
8
8
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
9
9
  var iteratorClose = require('../internals/iterator-close');
10
+ var iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');
10
11
  var iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');
11
12
  var IS_PURE = require('../internals/is-pure');
12
13
 
13
- var mapWithoutClosingOnEarlyError = !IS_PURE && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);
14
+ var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });
15
+ var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
16
+ && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);
17
+
18
+ var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;
14
19
 
15
20
  var IteratorProxy = createIteratorProxy(function () {
16
21
  var iterator = this.iterator;
@@ -21,7 +26,7 @@ var IteratorProxy = createIteratorProxy(function () {
21
26
 
22
27
  // `Iterator.prototype.map` method
23
28
  // https://tc39.es/ecma262/#sec-iterator.prototype.map
24
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE || mapWithoutClosingOnEarlyError }, {
29
+ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
25
30
  map: function map(mapper) {
26
31
  anObject(this);
27
32
  try {
@@ -17,7 +17,7 @@ var exec = uncurryThis(/./.exec);
17
17
  var charAt = uncurryThis(''.charAt);
18
18
  var charCodeAt = uncurryThis(''.charCodeAt);
19
19
  var replace = uncurryThis(''.replace);
20
- var numberToString = uncurryThis(1.0.toString);
20
+ var numberToString = uncurryThis(1.1.toString);
21
21
 
22
22
  var tester = /[\uD800-\uDFFF]/g;
23
23
  var low = /^[\uD800-\uDBFF]$/;
@@ -0,0 +1,151 @@
1
+ 'use strict';
2
+ // based on Shewchuk's algorithm for exactly floating point addition
3
+ // adapted from https://github.com/tc39/proposal-math-sum/blob/3513d58323a1ae25560e8700aa5294500c6c9287/polyfill/polyfill.mjs
4
+ var $ = require('../internals/export');
5
+ var uncurryThis = require('../internals/function-uncurry-this');
6
+ var iterate = require('../internals/iterate');
7
+
8
+ var $RangeError = RangeError;
9
+ var $TypeError = TypeError;
10
+ var $Infinity = Infinity;
11
+ var $NaN = NaN;
12
+ var abs = Math.abs;
13
+ var pow = Math.pow;
14
+ var push = uncurryThis([].push);
15
+
16
+ var POW_2_1023 = pow(2, 1023);
17
+ var MAX_SAFE_INTEGER = pow(2, 53) - 1; // 2 ** 53 - 1 === 9007199254740992
18
+ var MAX_DOUBLE = Number.MAX_VALUE; // 2 ** 1024 - 2 ** (1023 - 52) === 1.79769313486231570815e+308
19
+ var MAX_ULP = pow(2, 971); // 2 ** (1023 - 52) === 1.99584030953471981166e+292
20
+
21
+ var NOT_A_NUMBER = {};
22
+ var MINUS_INFINITY = {};
23
+ var PLUS_INFINITY = {};
24
+ var MINUS_ZERO = {};
25
+ var FINITE = {};
26
+
27
+ // prerequisite: abs(x) >= abs(y)
28
+ var twosum = function (x, y) {
29
+ var hi = x + y;
30
+ var lo = y - (hi - x);
31
+ return { hi: hi, lo: lo };
32
+ };
33
+
34
+ // `Math.sumPrecise` method
35
+ // https://github.com/tc39/proposal-math-sum
36
+ $({ target: 'Math', stat: true }, {
37
+ // eslint-disable-next-line max-statements -- ok
38
+ sumPrecise: function sumPrecise(items) {
39
+ var numbers = [];
40
+ var count = 0;
41
+ var state = MINUS_ZERO;
42
+
43
+ iterate(items, function (n) {
44
+ if (++count >= MAX_SAFE_INTEGER) throw new $RangeError('Maximum allowed index exceeded');
45
+ if (typeof n != 'number') throw new $TypeError('Value is not a number');
46
+ if (state !== NOT_A_NUMBER) {
47
+ // eslint-disable-next-line no-self-compare -- NaN check
48
+ if (n !== n) state = NOT_A_NUMBER;
49
+ else if (n === $Infinity) state = state === MINUS_INFINITY ? NOT_A_NUMBER : PLUS_INFINITY;
50
+ else if (n === -$Infinity) state = state === PLUS_INFINITY ? NOT_A_NUMBER : MINUS_INFINITY;
51
+ else if ((n !== 0 || (1 / n) === $Infinity) && (state === MINUS_ZERO || state === FINITE)) {
52
+ state = FINITE;
53
+ push(numbers, n);
54
+ }
55
+ }
56
+ });
57
+
58
+ switch (state) {
59
+ case NOT_A_NUMBER: return $NaN;
60
+ case MINUS_INFINITY: return -$Infinity;
61
+ case PLUS_INFINITY: return $Infinity;
62
+ case MINUS_ZERO: return -0;
63
+ }
64
+
65
+ var partials = [];
66
+ var overflow = 0; // conceptually 2 ** 1024 times this value; the final partial is biased by this amount
67
+ var x, y, sum, hi, lo, tmp;
68
+
69
+ for (var i = 0; i < numbers.length; i++) {
70
+ x = numbers[i];
71
+ var actuallyUsedPartials = 0;
72
+ for (var j = 0; j < partials.length; j++) {
73
+ y = partials[j];
74
+ if (abs(x) < abs(y)) {
75
+ tmp = x;
76
+ x = y;
77
+ y = tmp;
78
+ }
79
+ sum = twosum(x, y);
80
+ hi = sum.hi;
81
+ lo = sum.lo;
82
+ if (abs(hi) === $Infinity) {
83
+ var sign = hi === $Infinity ? 1 : -1;
84
+ overflow += sign;
85
+
86
+ x = (x - (sign * POW_2_1023)) - (sign * POW_2_1023);
87
+ if (abs(x) < abs(y)) {
88
+ tmp = x;
89
+ x = y;
90
+ y = tmp;
91
+ }
92
+ sum = twosum(x, y);
93
+ hi = sum.hi;
94
+ lo = sum.lo;
95
+ }
96
+ if (lo !== 0) partials[actuallyUsedPartials++] = lo;
97
+ x = hi;
98
+ }
99
+ partials.length = actuallyUsedPartials;
100
+ if (x !== 0) push(partials, x);
101
+ }
102
+
103
+ // compute the exact sum of partials, stopping once we lose precision
104
+ var n = partials.length - 1;
105
+ hi = 0;
106
+ lo = 0;
107
+
108
+ if (overflow !== 0) {
109
+ var next = n >= 0 ? partials[n] : 0;
110
+ n--;
111
+ if (abs(overflow) > 1 || (overflow > 0 && next > 0) || (overflow < 0 && next < 0)) {
112
+ return overflow > 0 ? $Infinity : -$Infinity;
113
+ }
114
+ // here we actually have to do the arithmetic
115
+ // drop a factor of 2 so we can do it without overflow
116
+ // assert(abs(overflow) === 1)
117
+ sum = twosum(overflow * POW_2_1023, next / 2);
118
+ hi = sum.hi;
119
+ lo = sum.lo;
120
+ lo *= 2;
121
+ if (abs(2 * hi) === $Infinity) {
122
+ // rounding to the maximum value
123
+ if (hi > 0) {
124
+ return (hi === POW_2_1023 && lo === -(MAX_ULP / 2) && n >= 0 && partials[n] < 0) ? MAX_DOUBLE : $Infinity;
125
+ } return (hi === -POW_2_1023 && lo === (MAX_ULP / 2) && n >= 0 && partials[n] > 0) ? -MAX_DOUBLE : -$Infinity;
126
+ }
127
+
128
+ if (lo !== 0) {
129
+ partials[++n] = lo;
130
+ lo = 0;
131
+ }
132
+
133
+ hi *= 2;
134
+ }
135
+
136
+ while (n >= 0) {
137
+ sum = twosum(hi, partials[n--]);
138
+ hi = sum.hi;
139
+ lo = sum.lo;
140
+ if (lo !== 0) break;
141
+ }
142
+
143
+ if (n >= 0 && ((lo < 0 && partials[n] < 0) || (lo > 0 && partials[n] > 0))) {
144
+ y = lo * 2;
145
+ x = hi + y;
146
+ if (y === x - hi) hi = x;
147
+ }
148
+
149
+ return hi;
150
+ }
151
+ });
@@ -14,7 +14,7 @@ var abs = Math.abs;
14
14
  var floor = Math.floor;
15
15
  var pow = Math.pow;
16
16
  var round = Math.round;
17
- var nativeToExponential = uncurryThis(1.0.toExponential);
17
+ var nativeToExponential = uncurryThis(1.1.toExponential);
18
18
  var repeat = uncurryThis($repeat);
19
19
  var stringSlice = uncurryThis(''.slice);
20
20
 
@@ -11,7 +11,7 @@ var $String = String;
11
11
  var floor = Math.floor;
12
12
  var repeat = uncurryThis($repeat);
13
13
  var stringSlice = uncurryThis(''.slice);
14
- var nativeToFixed = uncurryThis(1.0.toFixed);
14
+ var nativeToFixed = uncurryThis(1.1.toFixed);
15
15
 
16
16
  var pow = function (x, n, acc) {
17
17
  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
@@ -4,7 +4,7 @@ var uncurryThis = require('../internals/function-uncurry-this');
4
4
  var fails = require('../internals/fails');
5
5
  var thisNumberValue = require('../internals/this-number-value');
6
6
 
7
- var nativeToPrecision = uncurryThis(1.0.toPrecision);
7
+ var nativeToPrecision = uncurryThis(1.1.toPrecision);
8
8
 
9
9
  var FORCED = fails(function () {
10
10
  // IE7-
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var createProperty = require('../internals/create-property');
3
4
  var getBuiltIn = require('../internals/get-built-in');
4
5
  var uncurryThis = require('../internals/function-uncurry-this');
5
6
  var aCallable = require('../internals/a-callable');
@@ -33,7 +34,7 @@ $({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, {
33
34
  // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys
34
35
  // but since it's a `null` prototype object, we can safely use `in`
35
36
  if (key in obj) push(obj[key], value);
36
- else obj[key] = [value];
37
+ else createProperty(obj, key, [value]);
37
38
  });
38
39
  return obj;
39
40
  }
@@ -3,6 +3,7 @@ var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var IS_NODE = require('../internals/environment-is-node');
5
5
  var globalThis = require('../internals/global-this');
6
+ var path = require('../internals/path');
6
7
  var call = require('../internals/function-call');
7
8
  var defineBuiltIn = require('../internals/define-built-in');
8
9
  var setPrototypeOf = require('../internals/object-set-prototype-of');
@@ -286,5 +287,7 @@ $({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUC
286
287
  Promise: PromiseConstructor
287
288
  });
288
289
 
290
+ PromiseWrapper = path.Promise;
291
+
289
292
  setToStringTag(PromiseConstructor, PROMISE, false, true);
290
293
  setSpecies(PROMISE);
@@ -1,56 +1,16 @@
1
1
  'use strict';
2
- var globalThis = require('../internals/global-this');
3
2
  var DESCRIPTORS = require('../internals/descriptors');
4
3
  var defineBuiltInAccessor = require('../internals/define-built-in-accessor');
5
- var regExpFlags = require('../internals/regexp-flags');
6
- var fails = require('../internals/fails');
7
-
8
- // babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError
9
- var RegExp = globalThis.RegExp;
10
- var RegExpPrototype = RegExp.prototype;
11
-
12
- var FORCED = DESCRIPTORS && fails(function () {
13
- var INDICES_SUPPORT = true;
14
- try {
15
- RegExp('.', 'd');
16
- } catch (error) {
17
- INDICES_SUPPORT = false;
18
- }
19
-
20
- var O = {};
21
- // modern V8 bug
22
- var calls = '';
23
- var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';
24
-
25
- var addGetter = function (key, chr) {
26
- // eslint-disable-next-line es/no-object-defineproperty -- safe
27
- Object.defineProperty(O, key, { get: function () {
28
- calls += chr;
29
- return true;
30
- } });
31
- };
32
-
33
- var pairs = {
34
- dotAll: 's',
35
- global: 'g',
36
- ignoreCase: 'i',
37
- multiline: 'm',
38
- sticky: 'y'
39
- };
40
-
41
- if (INDICES_SUPPORT) pairs.hasIndices = 'd';
42
-
43
- for (var key in pairs) addGetter(key, pairs[key]);
44
-
45
- // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
46
- var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);
47
-
48
- return result !== expected || calls !== expected;
49
- });
4
+ var regExpFlagsDetection = require('../internals/regexp-flags-detection');
5
+ var regExpFlagsGetterImplementation = require('../internals/regexp-flags');
50
6
 
51
7
  // `RegExp.prototype.flags` getter
52
8
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
53
- if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {
54
- configurable: true,
55
- get: regExpFlags
56
- });
9
+ if (DESCRIPTORS && !regExpFlagsDetection.correct) {
10
+ defineBuiltInAccessor(RegExp.prototype, 'flags', {
11
+ configurable: true,
12
+ get: regExpFlagsGetterImplementation
13
+ });
14
+
15
+ regExpFlagsDetection.correct = true;
16
+ }