core-js-pure 3.17.3 → 3.18.3

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 (201) hide show
  1. package/configurator.js +7 -3
  2. package/es/promise/all-settled.js +2 -1
  3. package/es/promise/any.js +2 -1
  4. package/features/array/from-async.js +8 -0
  5. package/features/array/index.js +2 -0
  6. package/features/index.js +2 -0
  7. package/features/map/from.js +2 -1
  8. package/features/map/group-by.js +2 -1
  9. package/features/map/key-by.js +2 -1
  10. package/features/map/of.js +2 -1
  11. package/features/promise/try.js +2 -1
  12. package/features/set/from.js +2 -1
  13. package/features/set/of.js +2 -1
  14. package/features/typed-array/from-async.js +1 -0
  15. package/features/typed-array/index.js +2 -0
  16. package/features/typed-array/methods.js +2 -0
  17. package/features/weak-map/from.js +2 -1
  18. package/features/weak-map/of.js +2 -1
  19. package/features/weak-set/from.js +2 -1
  20. package/features/weak-set/of.js +2 -1
  21. package/internals/a-callable.js +8 -0
  22. package/internals/a-constructor.js +8 -0
  23. package/internals/a-possible-prototype.js +4 -5
  24. package/internals/an-instance.js +2 -3
  25. package/internals/an-object.js +4 -4
  26. package/internals/array-copy-within.js +2 -2
  27. package/internals/array-fill.js +2 -2
  28. package/internals/array-from-async.js +36 -0
  29. package/internals/array-from.js +8 -7
  30. package/internals/array-group-by.js +2 -2
  31. package/internals/array-includes.js +2 -2
  32. package/internals/array-iteration-from-last.js +2 -2
  33. package/internals/array-iteration.js +2 -2
  34. package/internals/array-last-index-of.js +4 -4
  35. package/internals/array-reduce.js +4 -4
  36. package/internals/array-species-constructor.js +3 -2
  37. package/internals/array-unique-by.js +5 -5
  38. package/internals/async-from-sync-iterator.js +2 -2
  39. package/internals/async-iterator-create-proxy.js +5 -4
  40. package/internals/async-iterator-iteration.js +27 -15
  41. package/internals/async-iterator-prototype.js +5 -4
  42. package/internals/classof.js +2 -1
  43. package/internals/collection-add-all.js +2 -2
  44. package/internals/collection-delete-all.js +2 -2
  45. package/internals/collection-from.js +4 -3
  46. package/internals/collection-weak.js +3 -3
  47. package/internals/collection.js +3 -2
  48. package/internals/copy-constructor-properties.js +2 -2
  49. package/internals/define-iterator.js +20 -12
  50. package/internals/define-well-known-symbol.js +2 -2
  51. package/internals/export.js +6 -4
  52. package/internals/flatten-into-array.js +4 -3
  53. package/internals/function-bind-context.js +2 -2
  54. package/internals/function-bind.js +2 -2
  55. package/internals/function-name.js +17 -0
  56. package/internals/get-async-iterator.js +2 -5
  57. package/internals/get-built-in.js +2 -1
  58. package/internals/get-iterator-method.js +3 -2
  59. package/internals/get-iterator.js +5 -5
  60. package/internals/get-method.js +4 -3
  61. package/internals/{has.js → has-own-property.js} +2 -0
  62. package/internals/inherit-if-required.js +2 -1
  63. package/internals/inspect-source.js +2 -1
  64. package/internals/install-error-cause.js +10 -0
  65. package/internals/internal-metadata.js +4 -4
  66. package/internals/internal-state.js +4 -4
  67. package/internals/is-array.js +2 -2
  68. package/internals/is-callable.js +5 -0
  69. package/internals/is-constructor.js +41 -0
  70. package/internals/is-data-descriptor.js +2 -2
  71. package/internals/is-forced.js +2 -1
  72. package/internals/is-integral-number.js +10 -0
  73. package/internals/is-object.js +3 -1
  74. package/internals/is-symbol.js +2 -1
  75. package/internals/iterate.js +3 -3
  76. package/internals/iterator-close.js +3 -2
  77. package/internals/iterator-create-proxy.js +8 -7
  78. package/internals/iterators-core.js +4 -3
  79. package/internals/length-of-array-like.js +7 -0
  80. package/internals/map-upsert.js +4 -3
  81. package/internals/native-weak-map.js +2 -1
  82. package/internals/new-promise-capability.js +3 -3
  83. package/internals/number-parse-float.js +6 -1
  84. package/internals/number-parse-int.js +7 -2
  85. package/internals/object-get-own-property-descriptor.js +2 -2
  86. package/internals/object-get-prototype-of.js +8 -6
  87. package/internals/object-iterator.js +2 -2
  88. package/internals/object-keys-internal.js +3 -3
  89. package/internals/ordinary-to-primitive.js +4 -3
  90. package/internals/regexp-exec-abstract.js +17 -1
  91. package/internals/regexp-exec.js +1 -1
  92. package/internals/regexp-unsupported-ncg.js +1 -1
  93. package/internals/set-to-string-tag.js +2 -2
  94. package/internals/shared.js +1 -1
  95. package/internals/species-constructor.js +2 -2
  96. package/internals/string-multibyte.js +2 -3
  97. package/internals/string-pad-webkit-bug.js +0 -1
  98. package/internals/string-pad.js +1 -1
  99. package/internals/string-repeat.js +2 -2
  100. package/internals/string-trim-forced.js +4 -1
  101. package/internals/task.js +3 -2
  102. package/internals/to-absolute-index.js +2 -2
  103. package/internals/to-index.js +2 -2
  104. package/internals/to-integer-or-infinity.js +10 -0
  105. package/internals/to-length.js +2 -2
  106. package/internals/to-positive-integer.js +2 -2
  107. package/internals/to-primitive.js +3 -2
  108. package/internals/to-string.js +2 -2
  109. package/internals/try-to-string.js +7 -0
  110. package/internals/well-known-symbol.js +3 -3
  111. package/modules/es.aggregate-error.js +12 -5
  112. package/modules/es.array.at.js +4 -4
  113. package/modules/es.array.concat.js +2 -2
  114. package/modules/es.array.flat-map.js +4 -4
  115. package/modules/es.array.flat.js +4 -4
  116. package/modules/es.array.of.js +2 -1
  117. package/modules/es.array.slice.js +5 -4
  118. package/modules/es.array.sort.js +4 -4
  119. package/modules/es.array.splice.js +4 -4
  120. package/modules/es.date.set-year.js +2 -2
  121. package/modules/es.function.has-instance.js +2 -1
  122. package/modules/es.number.is-integer.js +2 -2
  123. package/modules/es.number.is-safe-integer.js +2 -2
  124. package/modules/es.number.to-fixed.js +2 -2
  125. package/modules/es.object.define-getter.js +2 -2
  126. package/modules/es.object.define-setter.js +2 -2
  127. package/modules/es.object.has-own.js +1 -1
  128. package/modules/es.parse-float.js +3 -3
  129. package/modules/es.parse-int.js +3 -3
  130. package/modules/es.promise.all-settled.js +2 -2
  131. package/modules/es.promise.any.js +2 -2
  132. package/modules/es.promise.finally.js +3 -2
  133. package/modules/es.promise.js +10 -9
  134. package/modules/es.reflect.apply.js +2 -2
  135. package/modules/es.reflect.construct.js +3 -3
  136. package/modules/es.string.at-alternative.js +3 -4
  137. package/modules/es.string.ends-with.js +1 -1
  138. package/modules/es.string.match-all.js +6 -16
  139. package/modules/es.string.raw.js +12 -6
  140. package/modules/es.string.replace-all.js +5 -3
  141. package/modules/es.string.substr.js +7 -4
  142. package/modules/es.string.trim-end.js +1 -1
  143. package/modules/es.string.trim-start.js +1 -1
  144. package/modules/es.symbol.js +20 -16
  145. package/modules/esnext.aggregate-error.js +1 -1
  146. package/modules/esnext.array.from-async.js +8 -0
  147. package/modules/esnext.async-iterator.constructor.js +3 -3
  148. package/modules/esnext.async-iterator.filter.js +2 -2
  149. package/modules/esnext.async-iterator.flat-map.js +3 -3
  150. package/modules/esnext.async-iterator.from.js +4 -6
  151. package/modules/esnext.async-iterator.map.js +2 -2
  152. package/modules/esnext.async-iterator.reduce.js +3 -3
  153. package/modules/esnext.async-iterator.to-array.js +1 -1
  154. package/modules/esnext.global-this.js +1 -1
  155. package/modules/esnext.iterator.constructor.js +5 -4
  156. package/modules/esnext.iterator.every.js +2 -2
  157. package/modules/esnext.iterator.filter.js +2 -2
  158. package/modules/esnext.iterator.find.js +2 -2
  159. package/modules/esnext.iterator.flat-map.js +4 -4
  160. package/modules/esnext.iterator.from.js +2 -4
  161. package/modules/esnext.iterator.map.js +2 -2
  162. package/modules/esnext.iterator.reduce.js +2 -2
  163. package/modules/esnext.iterator.some.js +2 -2
  164. package/modules/esnext.map.filter.js +2 -2
  165. package/modules/esnext.map.group-by.js +9 -7
  166. package/modules/esnext.map.key-by.js +3 -3
  167. package/modules/esnext.map.key-of.js +1 -1
  168. package/modules/esnext.map.map-keys.js +2 -2
  169. package/modules/esnext.map.map-values.js +2 -2
  170. package/modules/esnext.map.merge.js +2 -2
  171. package/modules/esnext.map.reduce.js +2 -2
  172. package/modules/esnext.map.update-or-insert.js +1 -1
  173. package/modules/esnext.map.update.js +3 -3
  174. package/modules/esnext.number.from-string.js +2 -2
  175. package/modules/esnext.observable.js +16 -14
  176. package/modules/esnext.promise.all-settled.js +1 -1
  177. package/modules/esnext.promise.any.js +1 -1
  178. package/modules/esnext.set.difference.js +2 -2
  179. package/modules/esnext.set.filter.js +2 -2
  180. package/modules/esnext.set.intersection.js +3 -3
  181. package/modules/esnext.set.is-disjoint-from.js +2 -2
  182. package/modules/esnext.set.is-subset-of.js +4 -3
  183. package/modules/esnext.set.is-superset-of.js +2 -2
  184. package/modules/esnext.set.map.js +2 -2
  185. package/modules/esnext.set.reduce.js +2 -2
  186. package/modules/esnext.set.symmetric-difference.js +3 -3
  187. package/modules/esnext.set.union.js +2 -2
  188. package/modules/esnext.string.match-all.js +1 -1
  189. package/modules/esnext.string.replace-all.js +1 -1
  190. package/modules/esnext.typed-array.from-async.js +1 -0
  191. package/modules/web.dom-collections.iterator.js +1 -1
  192. package/modules/web.timers.js +2 -1
  193. package/modules/web.url-search-params.js +7 -6
  194. package/modules/web.url.js +9 -9
  195. package/package.json +2 -2
  196. package/postinstall.js +1 -1
  197. package/proposals/array-from-async.js +3 -0
  198. package/stage/1.js +1 -0
  199. package/internals/a-function.js +0 -5
  200. package/internals/is-integer.js +0 -9
  201. package/internals/to-integer.js +0 -8
package/configurator.js CHANGED
@@ -1,4 +1,4 @@
1
- var has = require('./internals/has');
1
+ var hasOwn = require('./internals/has-own-property');
2
2
  var isArray = require('./internals/is-array');
3
3
  var isForced = require('./internals/is-forced');
4
4
  var shared = require('./internals/shared-store');
@@ -17,7 +17,11 @@ module.exports = function (options) {
17
17
  setAggressivenessLevel(options.useNative, isForced.NATIVE);
18
18
  setAggressivenessLevel(options.usePolyfill, isForced.POLYFILL);
19
19
  setAggressivenessLevel(options.useFeatureDetection, null);
20
- if (has(options, USE_FUNCTION_CONSTRUCTOR)) shared[USE_FUNCTION_CONSTRUCTOR] = !!options[USE_FUNCTION_CONSTRUCTOR];
21
- if (has(options, ASYNC_ITERATOR_PROTOTYPE)) shared[USE_FUNCTION_CONSTRUCTOR] = options[ASYNC_ITERATOR_PROTOTYPE];
20
+ if (hasOwn(options, USE_FUNCTION_CONSTRUCTOR)) {
21
+ shared[USE_FUNCTION_CONSTRUCTOR] = !!options[USE_FUNCTION_CONSTRUCTOR];
22
+ }
23
+ if (hasOwn(options, ASYNC_ITERATOR_PROTOTYPE)) {
24
+ shared[USE_FUNCTION_CONSTRUCTOR] = options[ASYNC_ITERATOR_PROTOTYPE];
25
+ }
22
26
  }
23
27
  };
@@ -4,11 +4,12 @@ require('../../modules/es.object.to-string');
4
4
  require('../../modules/es.promise');
5
5
  require('../../modules/es.promise.all-settled');
6
6
  require('../../modules/es.string.iterator');
7
+ var isCallable = require('../../internals/is-callable');
7
8
  var path = require('../../internals/path');
8
9
 
9
10
  var Promise = path.Promise;
10
11
  var $allSettled = Promise.allSettled;
11
12
 
12
13
  module.exports = function allSettled(iterable) {
13
- return $allSettled.call(typeof this === 'function' ? this : Promise, iterable);
14
+ return $allSettled.call(isCallable(this) ? this : Promise, iterable);
14
15
  };
package/es/promise/any.js CHANGED
@@ -5,11 +5,12 @@ require('../../modules/es.object.to-string');
5
5
  require('../../modules/es.promise');
6
6
  require('../../modules/es.promise.any');
7
7
  require('../../modules/es.string.iterator');
8
+ var isCallable = require('../../internals/is-callable');
8
9
  var path = require('../../internals/path');
9
10
 
10
11
  var Promise = path.Promise;
11
12
  var $any = Promise.any;
12
13
 
13
14
  module.exports = function any(iterable) {
14
- return $any.call(typeof this === 'function' ? this : Promise, iterable);
15
+ return $any.call(isCallable(this) ? this : Promise, iterable);
15
16
  };
@@ -0,0 +1,8 @@
1
+ require('../../modules/es.array.iterator');
2
+ require('../../modules/es.object.to-string');
3
+ require('../../modules/es.promise');
4
+ require('../../modules/es.string.iterator');
5
+ require('../../modules/esnext.array.from-async');
6
+ var path = require('../../internals/path');
7
+
8
+ module.exports = path.Array.fromAsync;
@@ -1,5 +1,7 @@
1
1
  var parent = require('../../stable/array');
2
2
  require('../../modules/es.map');
3
+ require('../../modules/es.promise');
4
+ require('../../modules/esnext.array.from-async');
3
5
  // TODO: Remove from `core-js@4`
4
6
  require('../../modules/esnext.array.at');
5
7
  // TODO: Remove from `core-js@4`
package/features/index.js CHANGED
@@ -221,6 +221,7 @@ require('../modules/es.unescape');
221
221
  require('../modules/es.weak-map');
222
222
  require('../modules/es.weak-set');
223
223
  require('../modules/esnext.aggregate-error');
224
+ require('../modules/esnext.array.from-async');
224
225
  require('../modules/esnext.array.at');
225
226
  require('../modules/esnext.array.filter-out');
226
227
  require('../modules/esnext.array.filter-reject');
@@ -344,6 +345,7 @@ require('../modules/esnext.symbol.metadata');
344
345
  require('../modules/esnext.symbol.observable');
345
346
  require('../modules/esnext.symbol.pattern-match');
346
347
  require('../modules/esnext.symbol.replace-all');
348
+ require('../modules/esnext.typed-array.from-async');
347
349
  require('../modules/esnext.typed-array.at');
348
350
  require('../modules/esnext.typed-array.filter-out');
349
351
  require('../modules/esnext.typed-array.filter-reject');
@@ -4,11 +4,12 @@ require('../../modules/es.map');
4
4
  require('../../modules/es.string.iterator');
5
5
  require('../../modules/esnext.map.from');
6
6
  require('../../modules/web.dom-collections.iterator');
7
+ var isCallable = require('../../internals/is-callable');
7
8
  var path = require('../../internals/path');
8
9
 
9
10
  var Map = path.Map;
10
11
  var mapFrom = Map.from;
11
12
 
12
13
  module.exports = function from(source, mapFn, thisArg) {
13
- return mapFrom.call(typeof this === 'function' ? this : Map, source, mapFn, thisArg);
14
+ return mapFrom.call(isCallable(this) ? this : Map, source, mapFn, thisArg);
14
15
  };
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
  require('../../modules/es.map');
3
3
  require('../../modules/esnext.map.group-by');
4
+ var isCallable = require('../../internals/is-callable');
4
5
  var path = require('../../internals/path');
5
6
 
6
7
  var Map = path.Map;
7
8
  var mapGroupBy = Map.groupBy;
8
9
 
9
10
  module.exports = function groupBy(source, iterable, keyDerivative) {
10
- return mapGroupBy.call(typeof this === 'function' ? this : Map, source, iterable, keyDerivative);
11
+ return mapGroupBy.call(isCallable(this) ? this : Map, source, iterable, keyDerivative);
11
12
  };
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
  require('../../modules/es.map');
3
3
  require('../../modules/esnext.map.key-by');
4
+ var isCallable = require('../../internals/is-callable');
4
5
  var path = require('../../internals/path');
5
6
 
6
7
  var Map = path.Map;
7
8
  var mapKeyBy = Map.keyBy;
8
9
 
9
10
  module.exports = function keyBy(source, iterable, keyDerivative) {
10
- return mapKeyBy.call(typeof this === 'function' ? this : Map, source, iterable, keyDerivative);
11
+ return mapKeyBy.call(isCallable(this) ? this : Map, source, iterable, keyDerivative);
11
12
  };
@@ -2,11 +2,12 @@
2
2
  require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.map');
4
4
  require('../../modules/esnext.map.of');
5
+ var isCallable = require('../../internals/is-callable');
5
6
  var path = require('../../internals/path');
6
7
 
7
8
  var Map = path.Map;
8
9
  var mapOf = Map.of;
9
10
 
10
11
  module.exports = function of() {
11
- return mapOf.apply(typeof this === 'function' ? this : Map, arguments);
12
+ return mapOf.apply(isCallable(this) ? this : Map, arguments);
12
13
  };
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
  require('../../modules/es.promise');
3
3
  require('../../modules/esnext.promise.try');
4
+ var isCallable = require('../../internals/is-callable');
4
5
  var path = require('../../internals/path');
5
6
 
6
7
  var Promise = path.Promise;
7
8
  var promiseTry = Promise['try'];
8
9
 
9
10
  module.exports = { 'try': function (callbackfn) {
10
- return promiseTry.call(typeof this === 'function' ? this : Promise, callbackfn);
11
+ return promiseTry.call(isCallable(this) ? this : Promise, callbackfn);
11
12
  } }['try'];
@@ -4,11 +4,12 @@ require('../../modules/es.set');
4
4
  require('../../modules/es.string.iterator');
5
5
  require('../../modules/esnext.set.from');
6
6
  require('../../modules/web.dom-collections.iterator');
7
+ var isCallable = require('../../internals/is-callable');
7
8
  var path = require('../../internals/path');
8
9
 
9
10
  var Set = path.Set;
10
11
  var setFrom = Set.from;
11
12
 
12
13
  module.exports = function from(source, mapFn, thisArg) {
13
- return setFrom.call(typeof this === 'function' ? this : Set, source, mapFn, thisArg);
14
+ return setFrom.call(isCallable(this) ? this : Set, source, mapFn, thisArg);
14
15
  };
@@ -2,11 +2,12 @@
2
2
  require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.set');
4
4
  require('../../modules/esnext.set.of');
5
+ var isCallable = require('../../internals/is-callable');
5
6
  var path = require('../../internals/path');
6
7
 
7
8
  var Set = path.Set;
8
9
  var setOf = Set.of;
9
10
 
10
11
  module.exports = function of() {
11
- return setOf.apply(typeof this === 'function' ? this : Set, arguments);
12
+ return setOf.apply(isCallable(this) ? this : Set, arguments);
12
13
  };
@@ -0,0 +1 @@
1
+ require('../../modules/esnext.typed-array.from-async');
@@ -1,5 +1,7 @@
1
1
  var parent = require('../../stable/typed-array');
2
2
  require('../../modules/es.map');
3
+ require('../../modules/es.promise');
4
+ require('../../modules/esnext.typed-array.from-async');
3
5
  // TODO: Remove from `core-js@4`
4
6
  require('../../modules/esnext.typed-array.at');
5
7
  // TODO: Remove from `core-js@4`
@@ -1,5 +1,7 @@
1
1
  var parent = require('../../stable/typed-array/methods');
2
2
  require('../../modules/es.map');
3
+ require('../../modules/es.promise');
4
+ require('../../modules/esnext.typed-array.from-async');
3
5
  // TODO: Remove from `core-js@4`
4
6
  require('../../modules/esnext.typed-array.at');
5
7
  // TODO: Remove from `core-js@4`
@@ -4,11 +4,12 @@ require('../../modules/es.string.iterator');
4
4
  require('../../modules/es.weak-map');
5
5
  require('../../modules/esnext.weak-map.from');
6
6
  require('../../modules/web.dom-collections.iterator');
7
+ var isCallable = require('../../internals/is-callable');
7
8
  var path = require('../../internals/path');
8
9
 
9
10
  var WeakMap = path.WeakMap;
10
11
  var weakMapFrom = WeakMap.from;
11
12
 
12
13
  module.exports = function from(source, mapFn, thisArg) {
13
- return weakMapFrom.call(typeof this === 'function' ? this : WeakMap, source, mapFn, thisArg);
14
+ return weakMapFrom.call(isCallable(this) ? this : WeakMap, source, mapFn, thisArg);
14
15
  };
@@ -2,11 +2,12 @@
2
2
  require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.weak-map');
4
4
  require('../../modules/esnext.weak-map.of');
5
+ var isCallable = require('../../internals/is-callable');
5
6
  var path = require('../../internals/path');
6
7
 
7
8
  var WeakMap = path.WeakMap;
8
9
  var weakMapOf = WeakMap.of;
9
10
 
10
11
  module.exports = function of() {
11
- return weakMapOf.apply(typeof this === 'function' ? this : WeakMap, arguments);
12
+ return weakMapOf.apply(isCallable(this) ? this : WeakMap, arguments);
12
13
  };
@@ -4,11 +4,12 @@ require('../../modules/es.string.iterator');
4
4
  require('../../modules/es.weak-set');
5
5
  require('../../modules/esnext.weak-set.from');
6
6
  require('../../modules/web.dom-collections.iterator');
7
+ var isCallable = require('../../internals/is-callable');
7
8
  var path = require('../../internals/path');
8
9
 
9
10
  var WeakSet = path.WeakSet;
10
11
  var weakSetfrom = WeakSet.from;
11
12
 
12
13
  module.exports = function from(source, mapFn, thisArg) {
13
- return weakSetfrom.call(typeof this === 'function' ? this : WeakSet, source, mapFn, thisArg);
14
+ return weakSetfrom.call(isCallable(this) ? this : WeakSet, source, mapFn, thisArg);
14
15
  };
@@ -2,11 +2,12 @@
2
2
  require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.weak-set');
4
4
  require('../../modules/esnext.weak-set.of');
5
+ var isCallable = require('../../internals/is-callable');
5
6
  var path = require('../../internals/path');
6
7
 
7
8
  var WeakSet = path.WeakSet;
8
9
  var weakSetOf = WeakSet.of;
9
10
 
10
11
  module.exports = function of() {
11
- return weakSetOf.apply(typeof this === 'function' ? this : WeakSet, arguments);
12
+ return weakSetOf.apply(isCallable(this) ? this : WeakSet, arguments);
12
13
  };
@@ -0,0 +1,8 @@
1
+ var isCallable = require('../internals/is-callable');
2
+ var tryToString = require('../internals/try-to-string');
3
+
4
+ // `Assert: IsCallable(argument) is true`
5
+ module.exports = function (argument) {
6
+ if (isCallable(argument)) return argument;
7
+ throw TypeError(tryToString(argument) + ' is not a function');
8
+ };
@@ -0,0 +1,8 @@
1
+ var isConstructor = require('../internals/is-constructor');
2
+ var tryToString = require('../internals/try-to-string');
3
+
4
+ // `Assert: IsConstructor(argument) is true`
5
+ module.exports = function (argument) {
6
+ if (isConstructor(argument)) return argument;
7
+ throw TypeError(tryToString(argument) + ' is not a constructor');
8
+ };
@@ -1,7 +1,6 @@
1
- var isObject = require('../internals/is-object');
1
+ var isCallable = require('../internals/is-callable');
2
2
 
3
- module.exports = function (it) {
4
- if (!isObject(it) && it !== null) {
5
- throw TypeError("Can't set " + String(it) + ' as a prototype');
6
- } return it;
3
+ module.exports = function (argument) {
4
+ if (typeof argument === 'object' || isCallable(argument)) return argument;
5
+ throw TypeError("Can't set " + String(argument) + ' as a prototype');
7
6
  };
@@ -1,5 +1,4 @@
1
1
  module.exports = function (it, Constructor, name) {
2
- if (!(it instanceof Constructor)) {
3
- throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
4
- } return it;
2
+ if (it instanceof Constructor) return it;
3
+ throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
5
4
  };
@@ -1,7 +1,7 @@
1
1
  var isObject = require('../internals/is-object');
2
2
 
3
- module.exports = function (it) {
4
- if (!isObject(it)) {
5
- throw TypeError(String(it) + ' is not an object');
6
- } return it;
3
+ // `Assert: Type(argument) is Object`
4
+ module.exports = function (argument) {
5
+ if (isObject(argument)) return argument;
6
+ throw TypeError(String(argument) + ' is not an object');
7
7
  };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
  var toObject = require('../internals/to-object');
3
3
  var toAbsoluteIndex = require('../internals/to-absolute-index');
4
- var toLength = require('../internals/to-length');
4
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
5
5
 
6
6
  var min = Math.min;
7
7
 
@@ -10,7 +10,7 @@ var min = Math.min;
10
10
  // eslint-disable-next-line es/no-array-prototype-copywithin -- safe
11
11
  module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
12
12
  var O = toObject(this);
13
- var len = toLength(O.length);
13
+ var len = lengthOfArrayLike(O);
14
14
  var to = toAbsoluteIndex(target, len);
15
15
  var from = toAbsoluteIndex(start, len);
16
16
  var end = arguments.length > 2 ? arguments[2] : undefined;
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
  var toObject = require('../internals/to-object');
3
3
  var toAbsoluteIndex = require('../internals/to-absolute-index');
4
- var toLength = require('../internals/to-length');
4
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
5
5
 
6
6
  // `Array.prototype.fill` method implementation
7
7
  // https://tc39.es/ecma262/#sec-array.prototype.fill
8
8
  module.exports = function fill(value /* , start = 0, end = @length */) {
9
9
  var O = toObject(this);
10
- var length = toLength(O.length);
10
+ var length = lengthOfArrayLike(O);
11
11
  var argumentsLength = arguments.length;
12
12
  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
13
13
  var end = argumentsLength > 2 ? arguments[2] : undefined;
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+ var bind = require('../internals/function-bind-context');
3
+ var toObject = require('../internals/to-object');
4
+ var isConstructor = require('../internals/is-constructor');
5
+ var getAsyncIterator = require('../internals/get-async-iterator');
6
+ var getIterator = require('../internals/get-iterator');
7
+ var getIteratorMethod = require('../internals/get-iterator-method');
8
+ var getMethod = require('../internals/get-method');
9
+ var getVirtual = require('../internals/entry-virtual');
10
+ var getBuiltIn = require('../internals/get-built-in');
11
+ var wellKnownSymbol = require('../internals/well-known-symbol');
12
+ var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
13
+ var toArray = require('../internals/async-iterator-iteration').toArray;
14
+
15
+ var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
16
+ var arrayIterator = getVirtual('Array').values;
17
+
18
+ // `Array.fromAsync` method implementation
19
+ // https://github.com/tc39/proposal-array-from-async
20
+ module.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {
21
+ var C = this;
22
+ var argumentsLength = arguments.length;
23
+ var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
24
+ var thisArg = argumentsLength > 2 ? arguments[2] : undefined;
25
+ return new (getBuiltIn('Promise'))(function (resolve) {
26
+ var O = toObject(asyncItems);
27
+ if (mapfn !== undefined) mapfn = bind(mapfn, thisArg, 2);
28
+ var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR);
29
+ var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || arrayIterator;
30
+ var A = isConstructor(C) ? new C() : [];
31
+ var iterator = usingAsyncIterator
32
+ ? getAsyncIterator(O, usingAsyncIterator)
33
+ : new AsyncFromSyncIterator(getIterator(O, usingSyncIterator));
34
+ resolve(toArray(iterator, mapfn, A));
35
+ });
36
+ };
@@ -3,7 +3,8 @@ var bind = require('../internals/function-bind-context');
3
3
  var toObject = require('../internals/to-object');
4
4
  var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
5
5
  var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
6
- var toLength = require('../internals/to-length');
6
+ var isConstructor = require('../internals/is-constructor');
7
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
7
8
  var createProperty = require('../internals/create-property');
8
9
  var getIterator = require('../internals/get-iterator');
9
10
  var getIteratorMethod = require('../internals/get-iterator-method');
@@ -12,26 +13,26 @@ var getIteratorMethod = require('../internals/get-iterator-method');
12
13
  // https://tc39.es/ecma262/#sec-array.from
13
14
  module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
14
15
  var O = toObject(arrayLike);
15
- var C = typeof this == 'function' ? this : Array;
16
+ var IS_CONSTRUCTOR = isConstructor(this);
16
17
  var argumentsLength = arguments.length;
17
18
  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
18
19
  var mapping = mapfn !== undefined;
20
+ if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
19
21
  var iteratorMethod = getIteratorMethod(O);
20
22
  var index = 0;
21
23
  var length, result, step, iterator, next, value;
22
- if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
23
24
  // if the target is not iterable or it's an array with the default iterator - use a simple case
24
- if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
25
+ if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {
25
26
  iterator = getIterator(O, iteratorMethod);
26
27
  next = iterator.next;
27
- result = new C();
28
+ result = IS_CONSTRUCTOR ? new this() : [];
28
29
  for (;!(step = next.call(iterator)).done; index++) {
29
30
  value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
30
31
  createProperty(result, index, value);
31
32
  }
32
33
  } else {
33
- length = toLength(O.length);
34
- result = new C(length);
34
+ length = lengthOfArrayLike(O);
35
+ result = IS_CONSTRUCTOR ? new this(length) : Array(length);
35
36
  for (;length > index; index++) {
36
37
  value = mapping ? mapfn(O[index], index) : O[index];
37
38
  createProperty(result, index, value);
@@ -1,8 +1,8 @@
1
1
  var bind = require('../internals/function-bind-context');
2
2
  var IndexedObject = require('../internals/indexed-object');
3
3
  var toObject = require('../internals/to-object');
4
- var toLength = require('../internals/to-length');
5
4
  var toPropertyKey = require('../internals/to-property-key');
5
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
6
6
  var objectCreate = require('../internals/object-create');
7
7
  var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
8
8
 
@@ -13,7 +13,7 @@ module.exports = function ($this, callbackfn, that, specificConstructor) {
13
13
  var self = IndexedObject(O);
14
14
  var boundFunction = bind(callbackfn, that, 3);
15
15
  var target = objectCreate(null);
16
- var length = toLength(self.length);
16
+ var length = lengthOfArrayLike(self);
17
17
  var index = 0;
18
18
  var Constructor, key, value;
19
19
  for (;length > index; index++) {
@@ -1,12 +1,12 @@
1
1
  var toIndexedObject = require('../internals/to-indexed-object');
2
- var toLength = require('../internals/to-length');
3
2
  var toAbsoluteIndex = require('../internals/to-absolute-index');
3
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
4
4
 
5
5
  // `Array.prototype.{ indexOf, includes }` methods implementation
6
6
  var createMethod = function (IS_INCLUDES) {
7
7
  return function ($this, el, fromIndex) {
8
8
  var O = toIndexedObject($this);
9
- var length = toLength(O.length);
9
+ var length = lengthOfArrayLike(O);
10
10
  var index = toAbsoluteIndex(fromIndex, length);
11
11
  var value;
12
12
  // Array#includes uses SameValueZero equality algorithm
@@ -1,7 +1,7 @@
1
1
  var bind = require('../internals/function-bind-context');
2
2
  var IndexedObject = require('../internals/indexed-object');
3
3
  var toObject = require('../internals/to-object');
4
- var toLength = require('../internals/to-length');
4
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
5
5
 
6
6
  // `Array.prototype.{ findLast, findLastIndex }` methods implementation
7
7
  var createMethod = function (TYPE) {
@@ -10,7 +10,7 @@ var createMethod = function (TYPE) {
10
10
  var O = toObject($this);
11
11
  var self = IndexedObject(O);
12
12
  var boundFunction = bind(callbackfn, that, 3);
13
- var index = toLength(self.length);
13
+ var index = lengthOfArrayLike(self);
14
14
  var value, result;
15
15
  while (index-- > 0) {
16
16
  value = self[index];
@@ -1,7 +1,7 @@
1
1
  var bind = require('../internals/function-bind-context');
2
2
  var IndexedObject = require('../internals/indexed-object');
3
3
  var toObject = require('../internals/to-object');
4
- var toLength = require('../internals/to-length');
4
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
5
5
  var arraySpeciesCreate = require('../internals/array-species-create');
6
6
 
7
7
  var push = [].push;
@@ -19,7 +19,7 @@ var createMethod = function (TYPE) {
19
19
  var O = toObject($this);
20
20
  var self = IndexedObject(O);
21
21
  var boundFunction = bind(callbackfn, that, 3);
22
- var length = toLength(self.length);
22
+ var length = lengthOfArrayLike(self);
23
23
  var index = 0;
24
24
  var create = specificCreate || arraySpeciesCreate;
25
25
  var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
  /* eslint-disable es/no-array-prototype-lastindexof -- safe */
3
3
  var toIndexedObject = require('../internals/to-indexed-object');
4
- var toInteger = require('../internals/to-integer');
5
- var toLength = require('../internals/to-length');
4
+ var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
5
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
6
6
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
7
7
 
8
8
  var min = Math.min;
@@ -17,9 +17,9 @@ module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[
17
17
  // convert -0 to +0
18
18
  if (NEGATIVE_ZERO) return $lastIndexOf.apply(this, arguments) || 0;
19
19
  var O = toIndexedObject(this);
20
- var length = toLength(O.length);
20
+ var length = lengthOfArrayLike(O);
21
21
  var index = length - 1;
22
- if (arguments.length > 1) index = min(index, toInteger(arguments[1]));
22
+ if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));
23
23
  if (index < 0) index = length + index;
24
24
  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;
25
25
  return -1;
@@ -1,15 +1,15 @@
1
- var aFunction = require('../internals/a-function');
1
+ var aCallable = require('../internals/a-callable');
2
2
  var toObject = require('../internals/to-object');
3
3
  var IndexedObject = require('../internals/indexed-object');
4
- var toLength = require('../internals/to-length');
4
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
5
5
 
6
6
  // `Array.prototype.{ reduce, reduceRight }` methods implementation
7
7
  var createMethod = function (IS_RIGHT) {
8
8
  return function (that, callbackfn, argumentsLength, memo) {
9
- aFunction(callbackfn);
9
+ aCallable(callbackfn);
10
10
  var O = toObject(that);
11
11
  var self = IndexedObject(O);
12
- var length = toLength(O.length);
12
+ var length = lengthOfArrayLike(O);
13
13
  var index = IS_RIGHT ? length - 1 : 0;
14
14
  var i = IS_RIGHT ? -1 : 1;
15
15
  if (argumentsLength < 2) while (true) {
@@ -1,5 +1,6 @@
1
- var isObject = require('../internals/is-object');
2
1
  var isArray = require('../internals/is-array');
2
+ var isConstructor = require('../internals/is-constructor');
3
+ var isObject = require('../internals/is-object');
3
4
  var wellKnownSymbol = require('../internals/well-known-symbol');
4
5
 
5
6
  var SPECIES = wellKnownSymbol('species');
@@ -11,7 +12,7 @@ module.exports = function (originalArray) {
11
12
  if (isArray(originalArray)) {
12
13
  C = originalArray.constructor;
13
14
  // cross-realm fallback
14
- if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
15
+ if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;
15
16
  else if (isObject(C)) {
16
17
  C = C[SPECIES];
17
18
  if (C === null) C = undefined;
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
- var toLength = require('../internals/to-length');
2
+ var aCallable = require('../internals/a-callable');
3
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
3
4
  var toObject = require('../internals/to-object');
4
5
  var getBuiltIn = require('../internals/get-built-in');
5
6
  var arraySpeciesCreate = require('../internals/array-species-create');
@@ -10,16 +11,15 @@ var push = [].push;
10
11
  // https://github.com/tc39/proposal-array-unique
11
12
  module.exports = function uniqueBy(resolver) {
12
13
  var that = toObject(this);
13
- var length = toLength(that.length);
14
+ var length = lengthOfArrayLike(that);
14
15
  var result = arraySpeciesCreate(that, 0);
15
16
  var Map = getBuiltIn('Map');
16
17
  var map = new Map();
17
18
  var resolverFunction, index, item, key;
18
- if (typeof resolver == 'function') resolverFunction = resolver;
19
- else if (resolver == null) resolverFunction = function (value) {
19
+ if (resolver != null) resolverFunction = aCallable(resolver);
20
+ else resolverFunction = function (value) {
20
21
  return value;
21
22
  };
22
- else throw new TypeError('Incorrect resolver!');
23
23
  for (index = 0; index < length; index++) {
24
24
  item = that[index];
25
25
  key = resolverFunction(item);
@@ -39,7 +39,7 @@ AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), {
39
39
  var iterator = getInternalState(this).iterator;
40
40
  var hasArg = !!arguments.length;
41
41
  return new Promise(function (resolve, reject) {
42
- var $return = getMethod(iterator['return']);
42
+ var $return = getMethod(iterator, 'return');
43
43
  if ($return === undefined) return resolve({ done: true, value: arg });
44
44
  var result = anObject($return.apply(iterator, hasArg ? [arg] : []));
45
45
  asyncFromSyncIteratorContinuation(result, resolve, reject);
@@ -49,7 +49,7 @@ AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), {
49
49
  var iterator = getInternalState(this).iterator;
50
50
  var hasArg = !!arguments.length;
51
51
  return new Promise(function (resolve, reject) {
52
- var $throw = getMethod(iterator['throw']);
52
+ var $throw = getMethod(iterator, 'throw');
53
53
  if ($throw === undefined) return reject(arg);
54
54
  var result = anObject($throw.apply(iterator, hasArg ? [arg] : []));
55
55
  asyncFromSyncIteratorContinuation(result, resolve, reject);