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
@@ -1,26 +1,3 @@
1
1
  'use strict';
2
- // https://github.com/tc39/proposal-async-explicit-resource-management
3
- var call = require('../internals/function-call');
4
- var defineBuiltIn = require('../internals/define-built-in');
5
- var getBuiltIn = require('../internals/get-built-in');
6
- var getMethod = require('../internals/get-method');
7
- var hasOwn = require('../internals/has-own-property');
8
- var wellKnownSymbol = require('../internals/well-known-symbol');
9
- var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
10
-
11
- var ASYNC_DISPOSE = wellKnownSymbol('asyncDispose');
12
- var Promise = getBuiltIn('Promise');
13
-
14
- if (!hasOwn(AsyncIteratorPrototype, ASYNC_DISPOSE)) {
15
- defineBuiltIn(AsyncIteratorPrototype, ASYNC_DISPOSE, function () {
16
- var O = this;
17
- return new Promise(function (resolve, reject) {
18
- var $return = getMethod(O, 'return');
19
- if ($return) {
20
- Promise.resolve(call($return, O)).then(function () {
21
- resolve(undefined);
22
- }, reject);
23
- } else resolve(undefined);
24
- });
25
- });
26
- }
2
+ // TODO: Remove from `core-js@4`
3
+ require('../modules/es.async-iterator.async-dispose');
@@ -12,8 +12,10 @@ var setUint8 = uncurryThis(DataView.prototype.setUint8);
12
12
  // https://github.com/tc39/proposal-dataview-get-set-uint8clamped
13
13
  $({ target: 'DataView', proto: true, forced: true }, {
14
14
  setUint8Clamped: function setUint8Clamped(byteOffset, value) {
15
- aDataView(this);
16
- var offset = toIndex(byteOffset);
17
- return setUint8(this, offset, toUint8Clamped(value));
15
+ setUint8(
16
+ aDataView(this),
17
+ toIndex(byteOffset),
18
+ toUint8Clamped(value)
19
+ );
18
20
  }
19
21
  });
@@ -1,114 +1,3 @@
1
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
- });
2
+ // TODO: Remove from `core-js@4`
3
+ require('../modules/es.disposable-stack.constructor');
@@ -1,36 +1,3 @@
1
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
- var $isError = $Error.isError;
16
-
17
- var FORCED = !$isError || !PROTOTYPE_SETTING_AVAILABLE || fails(function () {
18
- // Bun, isNativeError-based implementations, some buggy structuredClone-based implementations, etc.
19
- // https://github.com/oven-sh/bun/issues/15821
20
- return (DOMException && !$isError(new DOMException(DOM_EXCEPTION))) ||
21
- // structuredClone-based implementations
22
- // eslint-disable-next-line es/no-error-cause -- detection
23
- !$isError(new $Error(ERROR, { cause: function () { /* empty */ } })) ||
24
- // instanceof-based and FF Error#stack-based implementations
25
- $isError(getBuiltIn('Object', 'create')($Error.prototype));
26
- });
27
-
28
- // `Error.isError` method
29
- // https://github.com/tc39/proposal-is-error
30
- $({ target: 'Error', stat: true, sham: true, forced: FORCED }, {
31
- isError: function isError(arg) {
32
- if (!isObject(arg)) return false;
33
- var tag = classof(arg);
34
- return tag === ERROR || tag === DOM_EXCEPTION;
35
- }
36
- });
2
+ // TODO: Remove from `core-js@4`
3
+ require('../modules/es.error.is-error');
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var anObject = require('../internals/an-object');
4
+ var call = require('../internals/function-call');
5
+ var createIteratorProxy = require('../internals/iterator-create-proxy');
6
+ var getIteratorDirect = require('../internals/get-iterator-direct');
7
+ var iteratorClose = require('../internals/iterator-close');
8
+ var uncurryThis = require('../internals/function-uncurry-this');
9
+
10
+ var $RangeError = RangeError;
11
+ var push = uncurryThis([].push);
12
+
13
+ var IteratorProxy = createIteratorProxy(function () {
14
+ var iterator = this.iterator;
15
+ var next = this.next;
16
+ var chunkSize = this.chunkSize;
17
+ var buffer = [];
18
+ var result, done;
19
+ while (true) {
20
+ result = anObject(call(next, iterator));
21
+ done = !!result.done;
22
+ if (done) {
23
+ if (buffer.length) return buffer;
24
+ this.done = true;
25
+ return;
26
+ }
27
+ push(buffer, result.value);
28
+ if (buffer.length === chunkSize) return buffer;
29
+ }
30
+ });
31
+
32
+ // `Iterator.prototype.chunks` method
33
+ // https://github.com/tc39/proposal-iterator-chunking
34
+ $({ target: 'Iterator', proto: true, real: true, forced: true }, {
35
+ chunks: function chunks(chunkSize) {
36
+ var O = anObject(this);
37
+ if (typeof chunkSize != 'number' || !chunkSize || chunkSize >>> 0 !== chunkSize) {
38
+ return iteratorClose(O, 'throw', new $RangeError('chunkSize must be integer in [1, 2^32-1]'));
39
+ }
40
+ return new IteratorProxy(getIteratorDirect(O), {
41
+ chunkSize: chunkSize
42
+ });
43
+ }
44
+ });
@@ -5,7 +5,6 @@ var aCallable = require('../internals/a-callable');
5
5
  var anObject = require('../internals/an-object');
6
6
  var getIteratorMethod = require('../internals/get-iterator-method');
7
7
  var createIteratorProxy = require('../internals/iterator-create-proxy');
8
- var createIterResultObject = require('../internals/create-iter-result-object');
9
8
 
10
9
  var $Array = Array;
11
10
 
@@ -17,7 +16,7 @@ var IteratorProxy = createIteratorProxy(function () {
17
16
  var iterables = this.iterables;
18
17
  if (iterableIndex >= iterables.length) {
19
18
  this.done = true;
20
- return createIterResultObject(undefined, true);
19
+ return;
21
20
  }
22
21
  var entry = iterables[iterableIndex];
23
22
  this.iterables[iterableIndex] = null;
@@ -30,13 +29,13 @@ var IteratorProxy = createIteratorProxy(function () {
30
29
  this.next = null;
31
30
  continue;
32
31
  }
33
- return result;
32
+ return result.value;
34
33
  }
35
- }, false, true);
34
+ });
36
35
 
37
36
  // `Iterator.concat` method
38
37
  // https://github.com/tc39/proposal-iterator-sequencing
39
- $({ target: 'Iterator', stat: true, forced: true }, {
38
+ $({ target: 'Iterator', stat: true }, {
40
39
  concat: function concat() {
41
40
  var length = arguments.length;
42
41
  var iterables = $Array(length);
@@ -1,17 +1,3 @@
1
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
- }
2
+ // TODO: Remove from `core-js@4`
3
+ require('../modules/es.iterator.dispose');
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var iteratorWindow = require('../internals/iterator-window');
4
+
5
+ // `Iterator.prototype.sliding` method
6
+ // https://github.com/tc39/proposal-iterator-chunking
7
+ $({ target: 'Iterator', proto: true, real: true, forced: true }, {
8
+ sliding: function sliding(windowSize) {
9
+ return iteratorWindow(this, windowSize, 'allow-partial');
10
+ }
11
+ });
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var iteratorWindow = require('../internals/iterator-window');
4
+
5
+ // `Iterator.prototype.windows` method
6
+ // https://github.com/tc39/proposal-iterator-chunking
7
+ $({ target: 'Iterator', proto: true, real: true, forced: true }, {
8
+ windows: function windows(windowSize /* , undersized */) {
9
+ return iteratorWindow(this, windowSize, arguments.length < 2 ? undefined : arguments[1]);
10
+ }
11
+ });
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var anObject = require('../internals/an-object');
4
+ var anObjectOrUndefined = require('../internals/an-object-or-undefined');
5
+ var createProperty = require('../internals/create-property');
6
+ var call = require('../internals/function-call');
7
+ var uncurryThis = require('../internals/function-uncurry-this');
8
+ var getBuiltIn = require('../internals/get-built-in');
9
+ var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
10
+ var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
11
+ var getModeOption = require('../internals/get-mode-option');
12
+ var iteratorCloseAll = require('../internals/iterator-close-all');
13
+ var iteratorZip = require('../internals/iterator-zip');
14
+
15
+ var create = getBuiltIn('Object', 'create');
16
+ var ownKeys = getBuiltIn('Reflect', 'ownKeys');
17
+ var push = uncurryThis([].push);
18
+ var THROW = 'throw';
19
+
20
+ // `Iterator.zipKeyed` method
21
+ // https://github.com/tc39/proposal-joint-iteration
22
+ $({ target: 'Iterator', stat: true, forced: true }, {
23
+ zipKeyed: function zipKeyed(iterables /* , options */) {
24
+ anObject(iterables);
25
+ var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
26
+ var mode = getModeOption(options);
27
+ var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;
28
+
29
+ var iters = [];
30
+ var padding = [];
31
+ var allKeys = ownKeys(iterables);
32
+ var keys = [];
33
+ var propertyIsEnumerable = propertyIsEnumerableModule.f;
34
+ var i, key, value;
35
+ for (i = 0; i < allKeys.length; i++) try {
36
+ key = allKeys[i];
37
+ if (!call(propertyIsEnumerable, iterables, key)) continue;
38
+ value = iterables[key];
39
+ if (value !== undefined) {
40
+ push(keys, key);
41
+ push(iters, getIteratorFlattenable(value, true));
42
+ }
43
+ } catch (error) {
44
+ return iteratorCloseAll(iters, THROW, error);
45
+ }
46
+
47
+ var iterCount = iters.length;
48
+ if (mode === 'longest') {
49
+ if (paddingOption === undefined) {
50
+ for (i = 0; i < iterCount; i++) push(padding, undefined);
51
+ } else {
52
+ for (i = 0; i < keys.length; i++) {
53
+ try {
54
+ value = paddingOption[keys[i]];
55
+ } catch (error) {
56
+ return iteratorCloseAll(iters, THROW, error);
57
+ }
58
+ push(padding, value);
59
+ }
60
+ }
61
+ }
62
+
63
+ return iteratorZip(iters, mode, padding, function (results) {
64
+ var obj = create(null);
65
+ for (var j = 0; j < iterCount; j++) {
66
+ createProperty(obj, keys[j], results[j]);
67
+ }
68
+ return obj;
69
+ });
70
+ }
71
+ });
@@ -0,0 +1,91 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var anObject = require('../internals/an-object');
4
+ var anObjectOrUndefined = require('../internals/an-object-or-undefined');
5
+ var call = require('../internals/function-call');
6
+ var uncurryThis = require('../internals/function-uncurry-this');
7
+ var getIteratorRecord = require('../internals/get-iterator-record');
8
+ var getIteratorFlattenable = require('../internals/get-iterator-flattenable');
9
+ var getModeOption = require('../internals/get-mode-option');
10
+ var iteratorClose = require('../internals/iterator-close');
11
+ var iteratorCloseAll = require('../internals/iterator-close-all');
12
+ var iteratorZip = require('../internals/iterator-zip');
13
+
14
+ var concat = uncurryThis([].concat);
15
+ var push = uncurryThis([].push);
16
+ var THROW = 'throw';
17
+
18
+ // `Iterator.zip` method
19
+ // https://github.com/tc39/proposal-joint-iteration
20
+ $({ target: 'Iterator', stat: true, forced: true }, {
21
+ zip: function zip(iterables /* , options */) {
22
+ anObject(iterables);
23
+ var options = arguments.length > 1 ? anObjectOrUndefined(arguments[1]) : undefined;
24
+ var mode = getModeOption(options);
25
+ var paddingOption = mode === 'longest' ? anObjectOrUndefined(options && options.padding) : undefined;
26
+
27
+ var iters = [];
28
+ var padding = [];
29
+ var inputIter = getIteratorRecord(iterables);
30
+ var iter, done, next;
31
+ while (!done) {
32
+ try {
33
+ next = anObject(call(inputIter.next, inputIter.iterator));
34
+ done = next.done;
35
+ } catch (error) {
36
+ return iteratorCloseAll(iters, THROW, error);
37
+ }
38
+ if (!done) {
39
+ try {
40
+ iter = getIteratorFlattenable(next.value, true);
41
+ } catch (error) {
42
+ return iteratorCloseAll(concat([inputIter.iterator], iters), THROW, error);
43
+ }
44
+ push(iters, iter);
45
+ }
46
+ }
47
+
48
+ var iterCount = iters.length;
49
+ var i, paddingDone, paddingIter;
50
+ if (mode === 'longest') {
51
+ if (paddingOption === undefined) {
52
+ for (i = 0; i < iterCount; i++) push(padding, undefined);
53
+ } else {
54
+ try {
55
+ paddingIter = getIteratorRecord(paddingOption);
56
+ } catch (error) {
57
+ return iteratorCloseAll(iters, THROW, error);
58
+ }
59
+ var usingIterator = true;
60
+ for (i = 0; i < iterCount; i++) {
61
+ if (usingIterator) {
62
+ try {
63
+ next = anObject(call(paddingIter.next, paddingIter.iterator));
64
+ paddingDone = next.done;
65
+ next = next.value;
66
+ } catch (error) {
67
+ return iteratorCloseAll(iters, THROW, error);
68
+ }
69
+ if (paddingDone) {
70
+ usingIterator = false;
71
+ } else {
72
+ push(padding, next);
73
+ }
74
+ } else {
75
+ push(padding, undefined);
76
+ }
77
+ }
78
+
79
+ if (usingIterator) {
80
+ try {
81
+ iteratorClose(paddingIter.iterator, 'normal');
82
+ } catch (error) {
83
+ return iteratorCloseAll(iters, THROW, error);
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ return iteratorZip(iters, mode, padding);
90
+ }
91
+ });
@@ -3,6 +3,7 @@ var $ = require('../internals/export');
3
3
  var aCallable = require('../internals/a-callable');
4
4
  var aMap = require('../internals/a-map');
5
5
  var MapHelpers = require('../internals/map-helpers');
6
+ var IS_PURE = require('../internals/is-pure');
6
7
 
7
8
  var get = MapHelpers.get;
8
9
  var has = MapHelpers.has;
@@ -10,7 +11,7 @@ var set = MapHelpers.set;
10
11
 
11
12
  // `Map.prototype.getOrInsertComputed` method
12
13
  // https://github.com/tc39/proposal-upsert
13
- $({ target: 'Map', proto: true, real: true, forced: true }, {
14
+ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
14
15
  getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {
15
16
  aMap(this);
16
17
  aCallable(callbackfn);
@@ -2,6 +2,7 @@
2
2
  var $ = require('../internals/export');
3
3
  var aMap = require('../internals/a-map');
4
4
  var MapHelpers = require('../internals/map-helpers');
5
+ var IS_PURE = require('../internals/is-pure');
5
6
 
6
7
  var get = MapHelpers.get;
7
8
  var has = MapHelpers.has;
@@ -9,7 +10,7 @@ var set = MapHelpers.set;
9
10
 
10
11
  // `Map.prototype.getOrInsert` method
11
12
  // https://github.com/tc39/proposal-upsert
12
- $({ target: 'Map', proto: true, real: true, forced: true }, {
13
+ $({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
13
14
  getOrInsert: function getOrInsert(key, value) {
14
15
  if (has(aMap(this), key)) return get(this, key);
15
16
  set(this, key, value);
@@ -1,21 +1,10 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var aNumber = require('../internals/a-number');
4
- var notANaN = require('../internals/not-a-nan');
5
- var sameValue = require('../internals/same-value');
6
-
7
- var $RangeError = RangeError;
8
- var $min = Math.min;
9
- var $max = Math.max;
3
+ var clamp = require('../internals/math-clamp');
10
4
 
5
+ // TODO: Remove from `core-js@4`
11
6
  // `Math.clamp` method
12
7
  // https://github.com/tc39/proposal-math-clamp
13
8
  $({ target: 'Math', stat: true, forced: true }, {
14
- clamp: function clamp(value, min, max) {
15
- aNumber(value);
16
- notANaN(aNumber(min));
17
- notANaN(aNumber(max));
18
- if ((sameValue(min, 0) && sameValue(max, -0)) || min > max) throw new $RangeError('`min` should be smaller than `max`');
19
- return $min(max, $max(min, value));
20
- }
9
+ clamp: clamp
21
10
  });