core-js 3.48.0 → 3.50.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 (179) hide show
  1. package/README.md +2 -2
  2. package/actual/iterator/chunks.js +8 -0
  3. package/actual/iterator/concat.js +4 -0
  4. package/actual/iterator/from.js +4 -0
  5. package/actual/iterator/includes.js +8 -0
  6. package/actual/iterator/index.js +4 -1
  7. package/actual/iterator/join.js +8 -0
  8. package/actual/iterator/windows.js +8 -0
  9. package/actual/iterator/zip-keyed.js +6 -21
  10. package/actual/iterator/zip.js +6 -19
  11. package/actual/promise/all-keyed.js +16 -0
  12. package/actual/promise/all-settled-keyed.js +16 -0
  13. package/actual/promise/index.js +4 -0
  14. package/configurator.js +1 -1
  15. package/es/index.js +2 -0
  16. package/es/iterator/index.js +4 -0
  17. package/es/iterator/zip-keyed.js +24 -0
  18. package/es/iterator/zip.js +22 -0
  19. package/es/object/define-properties.js +2 -2
  20. package/es/object/define-property.js +2 -2
  21. package/es/object/get-own-property-descriptor.js +2 -2
  22. package/es/promise/try.js +2 -2
  23. package/features/iterator/includes.js +2 -0
  24. package/features/iterator/join.js +2 -0
  25. package/features/promise/all-keyed.js +2 -0
  26. package/features/promise/all-settled-keyed.js +2 -0
  27. package/full/index.js +6 -0
  28. package/full/iterator/chunks.js +2 -6
  29. package/full/iterator/concat.js +0 -2
  30. package/full/iterator/from.js +0 -2
  31. package/full/iterator/includes.js +4 -0
  32. package/full/iterator/index.js +0 -2
  33. package/full/iterator/join.js +4 -0
  34. package/full/iterator/range.js +3 -1
  35. package/full/iterator/windows.js +2 -6
  36. package/full/iterator/zip-keyed.js +0 -2
  37. package/full/iterator/zip.js +0 -2
  38. package/full/promise/all-keyed.js +4 -0
  39. package/full/promise/all-settled-keyed.js +4 -0
  40. package/internals/add-disposable-resource.js +1 -1
  41. package/internals/advance-string-index.js +1 -1
  42. package/internals/array-buffer-transfer.js +4 -1
  43. package/internals/array-buffer-view-core.js +1 -1
  44. package/internals/array-buffer.js +1 -2
  45. package/internals/array-fill.js +2 -1
  46. package/internals/array-from-async.js +7 -9
  47. package/internals/array-from.js +15 -4
  48. package/internals/async-from-sync-iterator.js +28 -4
  49. package/internals/async-iterator-close.js +11 -3
  50. package/internals/async-iterator-create-proxy.js +61 -22
  51. package/internals/async-iterator-iteration.js +7 -4
  52. package/internals/async-iterator-map.js +20 -18
  53. package/internals/does-not-exceed-safe-integer.js +1 -1
  54. package/internals/environment-is-ios.js +1 -2
  55. package/internals/error-stack-clear.js +1 -1
  56. package/internals/function-bind-native.js +1 -1
  57. package/internals/function-name.js +1 -1
  58. package/internals/get-async-iterator-flattenable.js +1 -1
  59. package/internals/get-async-iterator.js +1 -1
  60. package/internals/get-internal-iterator.js +1 -0
  61. package/internals/get-iterator-flattenable.js +1 -1
  62. package/internals/get-iterator-internal.js +14 -0
  63. package/internals/get-iterator-method-internal.js +14 -0
  64. package/internals/get-iterator-method.js +4 -7
  65. package/internals/get-iterator-record.js +1 -1
  66. package/internals/get-iterator.js +4 -5
  67. package/internals/is-iterable.js +4 -10
  68. package/internals/iterate.js +10 -5
  69. package/internals/iterator-chunk-size-validation.js +17 -0
  70. package/internals/iterator-cleanup-state.js +6 -0
  71. package/internals/iterator-create-proxy.js +14 -5
  72. package/internals/iterator-window.js +4 -6
  73. package/internals/iterator-zip.js +4 -3
  74. package/internals/iterators.js +1 -1
  75. package/internals/math-log1p.js +3 -1
  76. package/internals/numeric-range-iterator.js +9 -4
  77. package/internals/regexp-exec.js +20 -13
  78. package/internals/set-difference.js +1 -1
  79. package/internals/set-is-disjoint-from.js +1 -1
  80. package/internals/set-is-superset-of.js +1 -1
  81. package/internals/shared-store.js +2 -2
  82. package/internals/shared.js +3 -1
  83. package/internals/string-pad.js +2 -1
  84. package/internals/string-parse.js +1 -1
  85. package/internals/string-repeat.js +2 -1
  86. package/internals/to-uint8-clamped.js +11 -3
  87. package/internals/typed-array-constructor.js +1 -2
  88. package/internals/typed-array-from.js +5 -3
  89. package/internals/uint8-from-base64.js +4 -2
  90. package/internals/uint8-from-hex.js +10 -10
  91. package/internals/url-percent-coding.js +171 -0
  92. package/modules/es.array.flat.js +2 -1
  93. package/modules/es.array.from-async.js +1 -1
  94. package/modules/es.array.includes.js +7 -1
  95. package/modules/es.array.sort.js +3 -1
  96. package/modules/es.data-view.get-float16.js +1 -1
  97. package/modules/es.data-view.set-float16.js +2 -1
  98. package/modules/es.date.set-year.js +4 -1
  99. package/modules/es.date.to-json.js +1 -1
  100. package/modules/es.error.is-error.js +1 -1
  101. package/modules/es.escape.js +10 -8
  102. package/modules/es.iterator.concat.js +5 -4
  103. package/modules/es.iterator.drop.js +16 -1
  104. package/modules/es.iterator.flat-map.js +12 -14
  105. package/modules/es.iterator.take.js +22 -2
  106. package/modules/es.iterator.zip-keyed.js +70 -0
  107. package/modules/es.iterator.zip.js +92 -0
  108. package/modules/es.json.parse.js +14 -2
  109. package/modules/es.json.stringify.js +157 -38
  110. package/modules/es.map.get-or-insert-computed.js +3 -4
  111. package/modules/es.map.get-or-insert.js +2 -3
  112. package/modules/es.map.group-by.js +2 -0
  113. package/modules/es.math.asinh.js +6 -1
  114. package/modules/es.math.atanh.js +2 -2
  115. package/modules/es.math.cbrt.js +3 -1
  116. package/modules/es.math.sum-precise.js +3 -3
  117. package/modules/es.number.to-exponential.js +15 -6
  118. package/modules/es.object.group-by.js +2 -0
  119. package/modules/es.object.proto.js +2 -1
  120. package/modules/es.promise.try.js +16 -8
  121. package/modules/es.reflect.construct.js +1 -1
  122. package/modules/es.reflect.define-property.js +10 -0
  123. package/modules/es.reflect.delete-property.js +5 -2
  124. package/modules/es.reflect.get.js +9 -7
  125. package/modules/es.reflect.set.js +14 -9
  126. package/modules/es.regexp.constructor.js +16 -5
  127. package/modules/es.string.ends-with.js +1 -1
  128. package/modules/es.string.from-code-point.js +2 -2
  129. package/modules/es.string.match-all.js +1 -1
  130. package/modules/es.string.match.js +5 -3
  131. package/modules/es.string.replace.js +9 -8
  132. package/modules/es.string.search.js +3 -1
  133. package/modules/es.string.split.js +7 -5
  134. package/modules/es.string.starts-with.js +1 -1
  135. package/modules/es.string.substr.js +5 -7
  136. package/modules/es.symbol.constructor.js +3 -2
  137. package/modules/es.symbol.description.js +9 -0
  138. package/modules/es.typed-array.sort.js +3 -3
  139. package/modules/es.uint8-array.from-base64.js +1 -1
  140. package/modules/es.uint8-array.from-hex.js +1 -1
  141. package/modules/es.uint8-array.set-from-base64.js +1 -1
  142. package/modules/es.uint8-array.set-from-hex.js +1 -1
  143. package/modules/es.uint8-array.to-base64.js +23 -6
  144. package/modules/es.uint8-array.to-hex.js +6 -4
  145. package/modules/es.weak-map.get-or-insert-computed.js +2 -2
  146. package/modules/es.weak-map.get-or-insert.js +2 -3
  147. package/modules/esnext.array.is-template-object.js +1 -1
  148. package/modules/esnext.async-iterator.reduce.js +2 -2
  149. package/modules/esnext.async-iterator.take.js +4 -2
  150. package/modules/esnext.bigint.range.js +1 -1
  151. package/modules/esnext.iterator.chunks.js +6 -8
  152. package/modules/esnext.iterator.includes.js +44 -0
  153. package/modules/esnext.iterator.join.js +31 -0
  154. package/modules/esnext.iterator.range.js +1 -1
  155. package/modules/esnext.iterator.windows.js +2 -1
  156. package/modules/esnext.iterator.zip-keyed.js +2 -70
  157. package/modules/esnext.iterator.zip.js +2 -90
  158. package/modules/esnext.number.from-string.js +30 -3
  159. package/modules/esnext.number.range.js +1 -1
  160. package/modules/esnext.observable.from.js +6 -3
  161. package/modules/esnext.promise.all-keyed.js +57 -0
  162. package/modules/esnext.promise.all-settled-keyed.js +60 -0
  163. package/modules/esnext.string.dedent.js +1 -1
  164. package/modules/web.atob.js +15 -6
  165. package/modules/web.btoa.js +10 -3
  166. package/modules/web.structured-clone.js +2 -2
  167. package/modules/web.url-search-params.constructor.js +13 -130
  168. package/modules/web.url-search-params.delete.js +6 -9
  169. package/modules/web.url.constructor.js +154 -39
  170. package/modules/web.url.parse.js +1 -1
  171. package/modules/web.url.to-json.js +4 -1
  172. package/package.json +8 -1
  173. package/proposals/await-dictionary.js +4 -0
  174. package/proposals/iterator-includes.js +3 -0
  175. package/proposals/iterator-join.js +3 -0
  176. package/stable/index.js +2 -0
  177. package/stable/iterator/zip-keyed.js +5 -0
  178. package/stable/iterator/zip.js +5 -0
  179. package/stage/3.js +4 -0
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
2
  var bind = require('../internals/function-bind-context');
3
3
  var uncurryThis = require('../internals/function-uncurry-this');
4
- var toObject = require('../internals/to-object');
5
4
  var isConstructor = require('../internals/is-constructor');
6
5
  var getAsyncIterator = require('../internals/get-async-iterator');
7
- var getIterator = require('../internals/get-iterator');
6
+ var getIterator = require('../internals/get-iterator-internal');
8
7
  var getIteratorDirect = require('../internals/get-iterator-direct');
9
- var getIteratorMethod = require('../internals/get-iterator-method');
8
+ var getIteratorMethod = require('../internals/get-iterator-method-internal');
10
9
  var getMethod = require('../internals/get-method');
11
10
  var getBuiltIn = require('../internals/get-built-in');
12
11
  var getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');
@@ -32,20 +31,19 @@ SafeArrayIterator.prototype.next = function () {
32
31
 
33
32
  // `Array.fromAsync` method implementation
34
33
  // https://github.com/tc39/proposal-array-from-async
35
- module.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {
34
+ module.exports = function fromAsync(items /* , mapfn = undefined, thisArg = undefined */) {
36
35
  var C = this;
37
36
  var argumentsLength = arguments.length;
38
37
  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
39
38
  var thisArg = argumentsLength > 2 ? arguments[2] : undefined;
40
39
  return new (getBuiltIn('Promise'))(function (resolve) {
41
- var O = toObject(asyncItems);
42
40
  if (mapfn !== undefined) mapfn = bind(mapfn, thisArg);
43
- var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR);
44
- var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || safeArrayIterator;
41
+ var usingAsyncIterator = getMethod(items, ASYNC_ITERATOR);
42
+ var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(items) || safeArrayIterator;
45
43
  var A = isConstructor(C) ? new C() : [];
46
44
  var iterator = usingAsyncIterator
47
- ? getAsyncIterator(O, usingAsyncIterator)
48
- : new AsyncFromSyncIterator(getIteratorDirect(getIterator(O, usingSyncIterator)));
45
+ ? getAsyncIterator(items, usingAsyncIterator)
46
+ : new AsyncFromSyncIterator(getIteratorDirect(getIterator(items, usingSyncIterator)));
49
47
  resolve(toArray(iterator, mapfn, A));
50
48
  });
51
49
  };
@@ -8,20 +8,22 @@ var isConstructor = require('../internals/is-constructor');
8
8
  var lengthOfArrayLike = require('../internals/length-of-array-like');
9
9
  var createProperty = require('../internals/create-property');
10
10
  var setArrayLength = require('../internals/array-set-length');
11
- var getIterator = require('../internals/get-iterator');
12
- var getIteratorMethod = require('../internals/get-iterator-method');
11
+ var getIterator = require('../internals/get-iterator-internal');
12
+ var getIteratorMethod = require('../internals/get-iterator-method-internal');
13
+ var iteratorClose = require('../internals/iterator-close');
14
+ var doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');
13
15
 
14
16
  var $Array = Array;
15
17
 
16
18
  // `Array.from` method implementation
17
19
  // https://tc39.es/ecma262/#sec-array.from
18
20
  module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
19
- var O = toObject(arrayLike);
20
21
  var IS_CONSTRUCTOR = isConstructor(this);
21
22
  var argumentsLength = arguments.length;
22
23
  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
23
24
  var mapping = mapfn !== undefined;
24
25
  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);
26
+ var O = toObject(arrayLike);
25
27
  var iteratorMethod = getIteratorMethod(O);
26
28
  var index = 0;
27
29
  var length, result, step, iterator, next, value;
@@ -31,8 +33,17 @@ module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undef
31
33
  iterator = getIterator(O, iteratorMethod);
32
34
  next = iterator.next;
33
35
  for (;!(step = call(next, iterator)).done; index++) {
36
+ try {
37
+ doesNotExceedSafeInteger(index);
38
+ } catch (error) {
39
+ iteratorClose(iterator, 'throw', error);
40
+ }
34
41
  value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
35
- createProperty(result, index, value);
42
+ try {
43
+ createProperty(result, index, value);
44
+ } catch (error) {
45
+ iteratorClose(iterator, 'throw', error);
46
+ }
36
47
  }
37
48
  } else {
38
49
  length = lengthOfArrayLike(O);
@@ -41,19 +41,43 @@ var AsyncFromSyncIterator = function AsyncIterator(iteratorRecord) {
41
41
  AsyncFromSyncIterator.prototype = defineBuiltIns(create(AsyncIteratorPrototype), {
42
42
  next: function next() {
43
43
  var state = getInternalState(this);
44
+ var hasValue = arguments.length > 0;
45
+ var value = hasValue ? arguments[0] : undefined;
44
46
  return new Promise(function (resolve, reject) {
45
- var result = anObject(call(state.next, state.iterator));
47
+ var result = anObject(hasValue ? call(state.next, state.iterator, value) : call(state.next, state.iterator));
46
48
  asyncFromSyncIteratorContinuation(result, resolve, reject, state.iterator, true);
47
49
  });
48
50
  },
49
51
  'return': function () {
50
- var iterator = getInternalState(this).iterator;
52
+ var state = getInternalState(this);
53
+ var iterator = state.iterator;
54
+ var hasValue = arguments.length > 0;
55
+ var value = hasValue ? arguments[0] : undefined;
51
56
  return new Promise(function (resolve, reject) {
52
57
  var $return = getMethod(iterator, 'return');
53
- if ($return === undefined) return resolve(createIterResultObject(undefined, true));
54
- var result = anObject(call($return, iterator));
58
+ if ($return === undefined) return resolve(createIterResultObject(value, true));
59
+ var result = anObject(hasValue ? call($return, iterator, value) : call($return, iterator));
55
60
  asyncFromSyncIteratorContinuation(result, resolve, reject, iterator);
56
61
  });
62
+ },
63
+ 'throw': function () {
64
+ var state = getInternalState(this);
65
+ var iterator = state.iterator;
66
+ var hasValue = arguments.length > 0;
67
+ var value = hasValue ? arguments[0] : undefined;
68
+ return new Promise(function (resolve, reject) {
69
+ var $throw = getMethod(iterator, 'throw');
70
+ if ($throw === undefined) {
71
+ try {
72
+ iteratorClose(iterator, 'normal');
73
+ } catch (error) {
74
+ return reject(error);
75
+ }
76
+ return reject(new TypeError('The iterator does not provide a throw method'));
77
+ }
78
+ var result = anObject(hasValue ? call($throw, iterator, value) : call($throw, iterator));
79
+ asyncFromSyncIteratorContinuation(result, resolve, reject, iterator, true);
80
+ });
57
81
  }
58
82
  });
59
83
 
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var call = require('../internals/function-call');
3
+ var anObject = require('../internals/an-object');
3
4
  var getBuiltIn = require('../internals/get-built-in');
4
5
  var getMethod = require('../internals/get-method');
5
6
 
@@ -7,13 +8,20 @@ module.exports = function (iterator, method, argument, reject) {
7
8
  try {
8
9
  var returnMethod = getMethod(iterator, 'return');
9
10
  if (returnMethod) {
10
- return getBuiltIn('Promise').resolve(call(returnMethod, iterator)).then(function () {
11
+ return getBuiltIn('Promise').resolve(call(returnMethod, iterator)).then(function (result) {
12
+ try {
13
+ if (method !== reject) anObject(result);
14
+ } catch (error3) {
15
+ reject(error3);
16
+ return;
17
+ }
11
18
  method(argument);
12
19
  }, function (error) {
13
- reject(error);
20
+ method === reject ? method(argument) : reject(error);
14
21
  });
15
22
  }
16
23
  } catch (error2) {
17
- return reject(error2);
24
+ // the original error (`argument`) takes priority over `return()` errors
25
+ return method === reject ? reject(argument) : reject(error2);
18
26
  } method(argument);
19
27
  };
@@ -11,7 +11,7 @@ var getBuiltIn = require('../internals/get-built-in');
11
11
  var getMethod = require('../internals/get-method');
12
12
  var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
13
13
  var createIterResultObject = require('../internals/create-iter-result-object');
14
- var iteratorClose = require('../internals/iterator-close');
14
+ var cleanupState = require('../internals/iterator-cleanup-state');
15
15
 
16
16
  var Promise = getBuiltIn('Promise');
17
17
 
@@ -47,8 +47,18 @@ var createAsyncIteratorProxyPrototype = function (IS_ITERATOR) {
47
47
  });
48
48
  var handlerError = handlerCompletion.error;
49
49
  var value = handlerCompletion.value;
50
- if (handlerError) state.done = true;
51
- return handlerError ? Promise.reject(value) : Promise.resolve(value);
50
+ if (handlerError) {
51
+ state.done = true;
52
+ if (IS_GENERATOR) cleanupState(state);
53
+ return Promise.reject(value);
54
+ }
55
+ return IS_GENERATOR ? Promise.resolve(value).then(function (result) {
56
+ if (state.done) cleanupState(state);
57
+ return result;
58
+ }, function (error) {
59
+ cleanupState(state);
60
+ throw error;
61
+ }) : Promise.resolve(value);
52
62
  },
53
63
  'return': function () {
54
64
  var stateCompletion = getStateOrEarlyExit(this);
@@ -56,27 +66,56 @@ var createAsyncIteratorProxyPrototype = function (IS_ITERATOR) {
56
66
  if (stateCompletion.exit) return state;
57
67
  state.done = true;
58
68
  var iterator = state.iterator;
69
+ var inner = state.inner;
70
+ if (IS_GENERATOR) cleanupState(state);
59
71
  var returnMethod, result;
60
- var completion = perform(function () {
61
- if (state.inner) try {
62
- iteratorClose(state.inner.iterator, 'normal');
63
- } catch (error) {
64
- return iteratorClose(iterator, 'throw', error);
72
+ var closeOuterIterator = function () {
73
+ var completion = perform(function () {
74
+ return getMethod(iterator, 'return');
75
+ });
76
+ returnMethod = result = completion.value;
77
+ if (completion.error) return Promise.reject(result);
78
+ if (returnMethod === undefined) return Promise.resolve(createIterResultObject(undefined, true));
79
+ completion = perform(function () {
80
+ return call(returnMethod, iterator);
81
+ });
82
+ result = completion.value;
83
+ if (completion.error) return Promise.reject(result);
84
+ return IS_ITERATOR ? Promise.resolve(result) : Promise.resolve(result).then(function (resolved) {
85
+ anObject(resolved);
86
+ return createIterResultObject(undefined, true);
87
+ });
88
+ };
89
+
90
+ var closeAndReject = function (error) {
91
+ return closeOuterIterator().then(function () {
92
+ throw error;
93
+ }, function () {
94
+ throw error;
95
+ });
96
+ };
97
+
98
+ if (inner) {
99
+ var innerIterator = inner.iterator;
100
+ var innerReturn;
101
+ var completion = perform(function () {
102
+ innerReturn = getMethod(innerIterator, 'return');
103
+ if (innerReturn) return call(innerReturn, innerIterator);
104
+ });
105
+ if (completion.error) return closeAndReject(completion.value);
106
+ if (innerReturn) {
107
+ return Promise.resolve(completion.value).then(function (innerResult) {
108
+ try {
109
+ anObject(innerResult);
110
+ } catch (error) {
111
+ return closeAndReject(error);
112
+ }
113
+ return closeOuterIterator();
114
+ }, closeAndReject);
65
115
  }
66
- return getMethod(iterator, 'return');
67
- });
68
- returnMethod = result = completion.value;
69
- if (completion.error) return Promise.reject(result);
70
- if (returnMethod === undefined) return Promise.resolve(createIterResultObject(undefined, true));
71
- completion = perform(function () {
72
- return call(returnMethod, iterator);
73
- });
74
- result = completion.value;
75
- if (completion.error) return Promise.reject(result);
76
- return IS_ITERATOR ? Promise.resolve(result) : Promise.resolve(result).then(function (resolved) {
77
- anObject(resolved);
78
- return createIterResultObject(undefined, true);
79
- });
116
+ }
117
+
118
+ return closeOuterIterator();
80
119
  }
81
120
  });
82
121
  };
@@ -34,9 +34,11 @@ var createMethod = function (TYPE) {
34
34
 
35
35
  var loop = function () {
36
36
  try {
37
- if (MAPPING) try {
37
+ try {
38
38
  doesNotExceedSafeInteger(counter);
39
- } catch (error5) { ifAbruptCloseAsyncIterator(error5); }
39
+ } catch (error5) {
40
+ return ifAbruptCloseAsyncIterator(error5);
41
+ }
40
42
  Promise.resolve(anObject(call(next, iterator))).then(function (step) {
41
43
  try {
42
44
  if (anObject(step).done) {
@@ -48,7 +50,8 @@ var createMethod = function (TYPE) {
48
50
  var value = step.value;
49
51
  try {
50
52
  if (MAPPING) {
51
- var result = fn(value, counter);
53
+ var index = counter++;
54
+ var result = fn(value, index);
52
55
 
53
56
  var handler = function ($result) {
54
57
  if (IS_FOR_EACH) {
@@ -57,7 +60,7 @@ var createMethod = function (TYPE) {
57
60
  $result ? loop() : closeAsyncIteration(iterator, resolve, false, reject);
58
61
  } else if (IS_TO_ARRAY) {
59
62
  try {
60
- createProperty(target, counter++, $result);
63
+ createProperty(target, index, $result);
61
64
  loop();
62
65
  } catch (error4) { ifAbruptCloseAsyncIterator(error4); }
63
66
  } else {
@@ -23,26 +23,28 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
23
23
  closeAsyncIteration(iterator, doneAndReject, error, doneAndReject);
24
24
  };
25
25
 
26
- Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {
27
- try {
28
- if (anObject(step).done) {
29
- state.done = true;
30
- resolve(createIterResultObject(undefined, true));
31
- } else {
32
- var value = step.value;
33
- try {
34
- var result = mapper(value, state.counter++);
26
+ try {
27
+ Promise.resolve(anObject(call(state.next, iterator))).then(function (step) {
28
+ try {
29
+ if (anObject(step).done) {
30
+ state.done = true;
31
+ resolve(createIterResultObject(undefined, true));
32
+ } else {
33
+ var value = step.value;
34
+ try {
35
+ var result = mapper(value, state.counter++);
35
36
 
36
- var handler = function (mapped) {
37
- resolve(createIterResultObject(mapped, false));
38
- };
37
+ var handler = function (mapped) {
38
+ resolve(createIterResultObject(mapped, false));
39
+ };
39
40
 
40
- if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);
41
- else handler(result);
42
- } catch (error2) { ifAbruptCloseAsyncIterator(error2); }
43
- }
44
- } catch (error) { doneAndReject(error); }
45
- }, doneAndReject);
41
+ if (isObject(result)) Promise.resolve(result).then(handler, ifAbruptCloseAsyncIterator);
42
+ else handler(result);
43
+ } catch (error2) { ifAbruptCloseAsyncIterator(error2); }
44
+ }
45
+ } catch (error) { doneAndReject(error); }
46
+ }, doneAndReject);
47
+ } catch (error) { doneAndReject(error); }
46
48
  });
47
49
  });
48
50
 
@@ -3,6 +3,6 @@ var $TypeError = TypeError;
3
3
  var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
4
4
 
5
5
  module.exports = function (it) {
6
- if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');
6
+ if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');
7
7
  return it;
8
8
  };
@@ -1,5 +1,4 @@
1
1
  'use strict';
2
2
  var userAgent = require('../internals/environment-user-agent');
3
3
 
4
- // eslint-disable-next-line redos/no-vulnerable -- safe
5
- module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);
4
+ module.exports = /ipad|iphone|ipod/i.test(userAgent) && /applewebkit/i.test(userAgent);
@@ -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, sonarjs/slow-regex -- safe
8
+ // eslint-disable-next-line redos/no-vulnerable -- 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
 
@@ -3,7 +3,7 @@ var fails = require('../internals/fails');
3
3
 
4
4
  module.exports = !fails(function () {
5
5
  // eslint-disable-next-line es/no-function-prototype-bind -- safe
6
- var test = (function () { /* empty */ }).bind();
6
+ var test = function () { /* empty */ }.bind();
7
7
  // eslint-disable-next-line no-prototype-builtins -- safe
8
8
  return typeof test != 'function' || test.hasOwnProperty('prototype');
9
9
  });
@@ -8,7 +8,7 @@ var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
8
8
 
9
9
  var EXISTS = hasOwn(FunctionPrototype, 'name');
10
10
  // additional protection from minified / mangled / dropped function names
11
- var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
11
+ var PROPER = EXISTS && function something() { /* empty */ }.name === 'something';
12
12
  var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
13
13
 
14
14
  module.exports = {
@@ -3,7 +3,7 @@ var call = require('../internals/function-call');
3
3
  var isCallable = require('../internals/is-callable');
4
4
  var anObject = require('../internals/an-object');
5
5
  var getIteratorDirect = require('../internals/get-iterator-direct');
6
- var getIteratorMethod = require('../internals/get-iterator-method');
6
+ var getIteratorMethod = require('../internals/get-iterator-method-internal');
7
7
  var getMethod = require('../internals/get-method');
8
8
  var wellKnownSymbol = require('../internals/well-known-symbol');
9
9
  var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
@@ -2,7 +2,7 @@
2
2
  var call = require('../internals/function-call');
3
3
  var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
4
4
  var anObject = require('../internals/an-object');
5
- var getIterator = require('../internals/get-iterator');
5
+ var getIterator = require('../internals/get-iterator-internal');
6
6
  var getIteratorDirect = require('../internals/get-iterator-direct');
7
7
  var getMethod = require('../internals/get-method');
8
8
  var wellKnownSymbol = require('../internals/well-known-symbol');
@@ -0,0 +1 @@
1
+ // empty
@@ -2,7 +2,7 @@
2
2
  var call = require('../internals/function-call');
3
3
  var anObject = require('../internals/an-object');
4
4
  var getIteratorDirect = require('../internals/get-iterator-direct');
5
- var getIteratorMethod = require('../internals/get-iterator-method');
5
+ var getIteratorMethod = require('../internals/get-iterator-method-internal');
6
6
 
7
7
  module.exports = function (obj, stringHandling) {
8
8
  if (!stringHandling || typeof obj !== 'string') anObject(obj);
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+ var call = require('../internals/function-call');
3
+ var isCallable = require('../internals/is-callable');
4
+ var anObject = require('../internals/an-object');
5
+ var tryToString = require('../internals/try-to-string');
6
+ var getIteratorMethod = require('../internals/get-iterator-method-internal');
7
+
8
+ var $TypeError = TypeError;
9
+
10
+ module.exports = function (argument, usingIterator) {
11
+ var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
12
+ if (isCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
13
+ throw new $TypeError(tryToString(argument) + ' is not iterable');
14
+ };
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+ var classof = require('../internals/classof-raw');
3
+ var isNullOrUndefined = require('../internals/is-null-or-undefined');
4
+ var getMethod = require('../internals/get-method');
5
+ var wellKnownSymbol = require('../internals/well-known-symbol');
6
+
7
+ var ITERATOR = wellKnownSymbol('iterator');
8
+ var ArrayPrototype = Array.prototype;
9
+
10
+ module.exports = function (it) {
11
+ if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)
12
+ || getMethod(it, '@@iterator')
13
+ || (classof(it) === 'Arguments' ? ArrayPrototype[ITERATOR] : undefined);
14
+ };
@@ -1,14 +1,11 @@
1
1
  'use strict';
2
- var classof = require('../internals/classof');
3
- var getMethod = require('../internals/get-method');
4
- var isNullOrUndefined = require('../internals/is-null-or-undefined');
5
- var Iterators = require('../internals/iterators');
2
+ var classof = require('../internals/classof-raw');
6
3
  var wellKnownSymbol = require('../internals/well-known-symbol');
7
4
 
8
5
  var ITERATOR = wellKnownSymbol('iterator');
6
+ var ArrayPrototype = Array.prototype;
9
7
 
10
8
  module.exports = function (it) {
11
- if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)
12
- || getMethod(it, '@@iterator')
13
- || Iterators[classof(it)];
9
+ return it[ITERATOR] || it['@@iterator']
10
+ || (classof(it) === 'Arguments' ? ArrayPrototype[ITERATOR] : undefined);
14
11
  };
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- var getIterator = require('../internals/get-iterator');
2
+ var getIterator = require('../internals/get-iterator-internal');
3
3
  var getIteratorDirect = require('../internals/get-iterator-direct');
4
4
 
5
5
  module.exports = function (argument) {
@@ -1,14 +1,13 @@
1
1
  'use strict';
2
2
  var call = require('../internals/function-call');
3
- var aCallable = require('../internals/a-callable');
4
- var anObject = require('../internals/an-object');
3
+ var isCallable = require('../internals/is-callable');
5
4
  var tryToString = require('../internals/try-to-string');
6
5
  var getIteratorMethod = require('../internals/get-iterator-method');
7
6
 
8
7
  var $TypeError = TypeError;
9
8
 
10
- module.exports = function (argument, usingIterator) {
11
- var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
12
- if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
9
+ module.exports = function (argument) {
10
+ var iteratorMethod = getIteratorMethod(argument);
11
+ if (isCallable(iteratorMethod)) return call(iteratorMethod, argument);
13
12
  throw new $TypeError(tryToString(argument) + ' is not iterable');
14
13
  };
@@ -1,17 +1,11 @@
1
1
  'use strict';
2
- var classof = require('../internals/classof');
3
- var hasOwn = require('../internals/has-own-property');
4
- var isNullOrUndefined = require('../internals/is-null-or-undefined');
2
+ var classof = require('../internals/classof-raw');
5
3
  var wellKnownSymbol = require('../internals/well-known-symbol');
6
- var Iterators = require('../internals/iterators');
7
4
 
8
5
  var ITERATOR = wellKnownSymbol('iterator');
9
- var $Object = Object;
10
6
 
11
7
  module.exports = function (it) {
12
- if (isNullOrUndefined(it)) return false;
13
- var O = $Object(it);
14
- return O[ITERATOR] !== undefined
15
- || '@@iterator' in O
16
- || hasOwn(Iterators, classof(O));
8
+ return it[ITERATOR] !== undefined
9
+ || it['@@iterator'] !== undefined
10
+ || classof(it) === 'Arguments';
17
11
  };
@@ -6,8 +6,8 @@ var tryToString = require('../internals/try-to-string');
6
6
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
7
7
  var lengthOfArrayLike = require('../internals/length-of-array-like');
8
8
  var isPrototypeOf = require('../internals/object-is-prototype-of');
9
- var getIterator = require('../internals/get-iterator');
10
- var getIteratorMethod = require('../internals/get-iterator-method');
9
+ var getIterator = require('../internals/get-iterator-internal');
10
+ var getIteratorMethod = require('../internals/get-iterator-method-internal');
11
11
  var iteratorClose = require('../internals/iterator-close');
12
12
 
13
13
  var $TypeError = TypeError;
@@ -29,7 +29,9 @@ module.exports = function (iterable, unboundFunction, options) {
29
29
  var iterator, iterFn, index, length, result, next, step;
30
30
 
31
31
  var stop = function (condition) {
32
- if (iterator) iteratorClose(iterator, 'normal');
32
+ var $iterator = iterator;
33
+ iterator = undefined;
34
+ if ($iterator) iteratorClose($iterator, 'normal');
33
35
  return new Result(true, condition);
34
36
  };
35
37
 
@@ -59,10 +61,13 @@ module.exports = function (iterable, unboundFunction, options) {
59
61
 
60
62
  next = IS_RECORD ? iterable.next : iterator.next;
61
63
  while (!(step = call(next, iterator)).done) {
64
+ // `IteratorValue` errors should propagate without closing the iterator
65
+ var value = step.value;
62
66
  try {
63
- result = callFn(step.value);
67
+ result = callFn(value);
64
68
  } catch (error) {
65
- iteratorClose(iterator, 'throw', error);
69
+ if (iterator) iteratorClose(iterator, 'throw', error);
70
+ else throw error;
66
71
  }
67
72
  if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;
68
73
  } return new Result(false);
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+ var isIntegralNumber = require('../internals/is-integral-number');
3
+ var iteratorClose = require('../internals/iterator-close');
4
+
5
+ var $RangeError = RangeError;
6
+ var $TypeError = TypeError;
7
+
8
+ var CHUNK_SIZE_VALIDATION_ERROR = 'Chunk size must be an integer in [1, 2^32-1]';
9
+
10
+ module.exports = function (chunkSize, iterator) {
11
+ if (typeof chunkSize != 'number' || !isIntegralNumber(chunkSize)) {
12
+ return iteratorClose(iterator, 'throw', new $TypeError(CHUNK_SIZE_VALIDATION_ERROR));
13
+ }
14
+ if (chunkSize === 0 || chunkSize >>> 0 !== chunkSize) {
15
+ return iteratorClose(iterator, 'throw', new $RangeError(CHUNK_SIZE_VALIDATION_ERROR));
16
+ }
17
+ };
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ // release references held by exhausted / closed iterator helpers to allow GC of the source chain
3
+ module.exports = function (state) {
4
+ state.iterator = state.next = state.nextHandler = state.mapper = state.predicate = state.inner =
5
+ state.iterables = state.iters = state.openIters = state.padding = state.finishResults = state.buffer = null;
6
+ };