core-js 3.18.0 → 3.19.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 (358) hide show
  1. package/configurator.js +7 -3
  2. package/es/date/to-primitive.js +2 -3
  3. package/es/date/to-string.js +2 -4
  4. package/es/instance/at.js +6 -5
  5. package/es/instance/bind.js +3 -2
  6. package/es/instance/code-point-at.js +4 -3
  7. package/es/instance/concat.js +3 -2
  8. package/es/instance/copy-within.js +3 -2
  9. package/es/instance/ends-with.js +4 -3
  10. package/es/instance/entries.js +3 -2
  11. package/es/instance/every.js +3 -2
  12. package/es/instance/fill.js +3 -2
  13. package/es/instance/filter.js +3 -2
  14. package/es/instance/find-index.js +3 -2
  15. package/es/instance/find.js +3 -2
  16. package/es/instance/flags.js +2 -1
  17. package/es/instance/flat-map.js +3 -2
  18. package/es/instance/flat.js +3 -2
  19. package/es/instance/for-each.js +3 -2
  20. package/es/instance/includes.js +6 -5
  21. package/es/instance/index-of.js +3 -2
  22. package/es/instance/keys.js +3 -2
  23. package/es/instance/last-index-of.js +3 -2
  24. package/es/instance/map.js +3 -2
  25. package/es/instance/match-all.js +4 -3
  26. package/es/instance/pad-end.js +4 -3
  27. package/es/instance/pad-start.js +4 -3
  28. package/es/instance/reduce-right.js +3 -2
  29. package/es/instance/reduce.js +3 -2
  30. package/es/instance/repeat.js +4 -3
  31. package/es/instance/replace-all.js +4 -3
  32. package/es/instance/reverse.js +3 -2
  33. package/es/instance/slice.js +3 -2
  34. package/es/instance/some.js +3 -2
  35. package/es/instance/sort.js +3 -2
  36. package/es/instance/splice.js +3 -2
  37. package/es/instance/starts-with.js +4 -3
  38. package/es/instance/trim-end.js +4 -3
  39. package/es/instance/trim-left.js +4 -3
  40. package/es/instance/trim-right.js +4 -3
  41. package/es/instance/trim-start.js +4 -3
  42. package/es/instance/trim.js +4 -3
  43. package/es/instance/values.js +3 -2
  44. package/es/json/stringify.js +4 -3
  45. package/es/promise/all-settled.js +2 -1
  46. package/es/promise/any.js +2 -1
  47. package/es/regexp/flags.js +3 -4
  48. package/es/regexp/match.js +2 -1
  49. package/es/regexp/replace.js +2 -1
  50. package/es/regexp/search.js +2 -1
  51. package/es/regexp/split.js +2 -1
  52. package/es/regexp/test.js +2 -3
  53. package/es/regexp/to-string.js +2 -3
  54. package/es/string/iterator.js +2 -5
  55. package/features/instance/at.js +6 -5
  56. package/features/instance/code-points.js +4 -3
  57. package/features/instance/filter-out.js +3 -2
  58. package/features/instance/filter-reject.js +3 -2
  59. package/features/instance/find-last-index.js +3 -2
  60. package/features/instance/find-last.js +3 -2
  61. package/features/instance/group-by.js +3 -2
  62. package/features/instance/unique-by.js +3 -2
  63. package/features/map/from.js +3 -2
  64. package/features/map/group-by.js +2 -1
  65. package/features/map/key-by.js +2 -1
  66. package/features/map/of.js +3 -2
  67. package/features/promise/try.js +2 -1
  68. package/features/set/from.js +3 -2
  69. package/features/set/of.js +3 -2
  70. package/features/typed-array/methods.js +2 -0
  71. package/features/weak-map/from.js +3 -2
  72. package/features/weak-map/of.js +3 -2
  73. package/features/weak-set/from.js +3 -2
  74. package/features/weak-set/of.js +3 -2
  75. package/internals/a-callable.js +3 -0
  76. package/internals/a-constructor.js +3 -0
  77. package/internals/a-possible-prototype.js +5 -1
  78. package/internals/an-instance.js +8 -3
  79. package/internals/an-object.js +4 -0
  80. package/internals/array-buffer-native.js +1 -1
  81. package/internals/array-buffer-view-core.js +11 -10
  82. package/internals/array-buffer.js +31 -18
  83. package/internals/array-copy-within.js +2 -2
  84. package/internals/array-fill.js +2 -2
  85. package/internals/array-from-async.js +14 -10
  86. package/internals/array-from.js +8 -4
  87. package/internals/array-group-by.js +8 -5
  88. package/internals/array-includes.js +2 -2
  89. package/internals/array-iteration-from-last.js +3 -3
  90. package/internals/array-iteration.js +7 -6
  91. package/internals/array-last-index-of.js +6 -5
  92. package/internals/array-reduce.js +5 -2
  93. package/internals/array-slice.js +3 -0
  94. package/internals/array-sort.js +10 -11
  95. package/internals/array-species-constructor.js +2 -0
  96. package/internals/array-unique-by.js +15 -11
  97. package/internals/async-from-sync-iterator.js +4 -3
  98. package/internals/async-iterator-create-proxy.js +4 -3
  99. package/internals/async-iterator-iteration.js +6 -2
  100. package/internals/classof-raw.js +5 -2
  101. package/internals/classof.js +3 -0
  102. package/internals/clear-error-stack.js +20 -0
  103. package/internals/collection-add-all.js +3 -2
  104. package/internals/collection-delete-all.js +3 -2
  105. package/internals/collection-from.js +7 -4
  106. package/internals/collection-of.js +3 -4
  107. package/internals/collection-strong.js +11 -9
  108. package/internals/collection-weak.js +13 -9
  109. package/internals/collection.js +8 -7
  110. package/internals/composite-key.js +9 -2
  111. package/internals/copy-constructor-properties.js +2 -2
  112. package/internals/create-html.js +3 -1
  113. package/internals/date-to-iso-string.js +23 -13
  114. package/internals/date-to-primitive.js +3 -0
  115. package/internals/define-iterator.js +2 -1
  116. package/internals/define-well-known-symbol.js +2 -2
  117. package/internals/engine-v8-version.js +10 -4
  118. package/internals/entry-unbind.js +3 -5
  119. package/internals/error-stack-installable.js +10 -0
  120. package/internals/export.js +1 -1
  121. package/internals/fix-regexp-well-known-symbol-logic.js +5 -3
  122. package/internals/flatten-into-array.js +8 -4
  123. package/internals/function-apply.js +9 -0
  124. package/internals/function-bind-context.js +5 -17
  125. package/internals/function-bind.js +15 -9
  126. package/internals/function-call.js +5 -0
  127. package/internals/function-name.js +2 -2
  128. package/internals/function-uncurry-this.js +12 -0
  129. package/internals/get-async-iterator.js +2 -1
  130. package/internals/get-iterator.js +7 -2
  131. package/internals/get-map-iterator.js +3 -1
  132. package/internals/get-set-iterator.js +3 -1
  133. package/internals/get-substitution.js +10 -7
  134. package/internals/has-own-property.js +10 -0
  135. package/internals/host-report-errors.js +1 -1
  136. package/internals/ieee754.js +4 -1
  137. package/internals/indexed-object.js +5 -2
  138. package/internals/inspect-source.js +3 -2
  139. package/internals/install-error-cause.js +10 -0
  140. package/internals/internal-metadata.js +7 -6
  141. package/internals/internal-state.js +13 -11
  142. package/internals/is-callable.js +2 -2
  143. package/internals/is-constructor.js +6 -4
  144. package/internals/is-data-descriptor.js +2 -2
  145. package/internals/is-integral-number.js +10 -0
  146. package/internals/is-iterable.js +4 -2
  147. package/internals/is-object.js +1 -1
  148. package/internals/is-symbol.js +6 -2
  149. package/internals/iterate.js +16 -8
  150. package/internals/iterator-close.js +2 -1
  151. package/internals/iterator-create-proxy.js +4 -3
  152. package/internals/length-of-array-like.js +7 -0
  153. package/internals/map-emplace.js +8 -3
  154. package/internals/map-upsert.js +12 -4
  155. package/internals/math-scale.js +9 -12
  156. package/internals/microtask.js +6 -4
  157. package/internals/normalize-string-argument.js +5 -0
  158. package/internals/not-a-regexp.js +3 -0
  159. package/internals/number-parse-float.js +8 -6
  160. package/internals/number-parse-int.js +4 -2
  161. package/internals/numeric-range-iterator.js +4 -0
  162. package/internals/object-assign.js +5 -2
  163. package/internals/object-define-properties.js +3 -1
  164. package/internals/object-define-property.js +2 -0
  165. package/internals/object-get-own-property-descriptor.js +3 -2
  166. package/internals/object-get-own-property-names-external.js +4 -4
  167. package/internals/object-get-prototype-of.js +4 -3
  168. package/internals/object-is-prototype-of.js +3 -0
  169. package/internals/object-iterator.js +2 -2
  170. package/internals/object-keys-internal.js +7 -4
  171. package/internals/object-set-prototype-of.js +4 -3
  172. package/internals/object-to-array.js +7 -3
  173. package/internals/ordinary-to-primitive.js +7 -3
  174. package/internals/own-keys.js +4 -1
  175. package/internals/redefine.js +2 -2
  176. package/internals/reflect-metadata.js +9 -3
  177. package/internals/regexp-exec-abstract.js +6 -2
  178. package/internals/regexp-exec.js +19 -14
  179. package/internals/require-object-coercible.js +4 -0
  180. package/internals/set-global.js +4 -2
  181. package/internals/set-to-string-tag.js +2 -2
  182. package/internals/shared.js +1 -1
  183. package/internals/string-multibyte.js +15 -7
  184. package/internals/string-pad-webkit-bug.js +0 -1
  185. package/internals/string-pad.js +7 -4
  186. package/internals/string-punycode-to-ascii.js +26 -14
  187. package/internals/string-repeat.js +5 -2
  188. package/internals/string-trim.js +4 -2
  189. package/internals/task.js +11 -11
  190. package/internals/this-number-value.js +2 -4
  191. package/internals/to-absolute-index.js +2 -2
  192. package/internals/to-index.js +5 -2
  193. package/internals/to-integer-or-infinity.js +10 -0
  194. package/internals/to-length.js +2 -2
  195. package/internals/to-object.js +3 -0
  196. package/internals/to-offset.js +3 -0
  197. package/internals/to-positive-integer.js +5 -2
  198. package/internals/to-primitive.js +4 -1
  199. package/internals/to-property-key.js +1 -1
  200. package/internals/to-string.js +3 -0
  201. package/internals/try-to-string.js +4 -0
  202. package/internals/typed-array-constructor.js +18 -14
  203. package/internals/typed-array-from.js +6 -5
  204. package/internals/uid.js +4 -1
  205. package/internals/well-known-symbol.js +8 -4
  206. package/modules/es.aggregate-error.js +24 -11
  207. package/modules/es.array-buffer.slice.js +8 -4
  208. package/modules/es.array.at.js +4 -4
  209. package/modules/es.array.concat.js +4 -2
  210. package/modules/es.array.flat-map.js +2 -2
  211. package/modules/es.array.flat.js +4 -4
  212. package/modules/es.array.index-of.js +7 -5
  213. package/modules/es.array.join.js +3 -2
  214. package/modules/es.array.of.js +3 -1
  215. package/modules/es.array.reduce.js +2 -1
  216. package/modules/es.array.reverse.js +3 -2
  217. package/modules/es.array.slice.js +6 -4
  218. package/modules/es.array.sort.js +9 -6
  219. package/modules/es.array.splice.js +6 -4
  220. package/modules/es.date.get-year.js +3 -2
  221. package/modules/es.date.now.js +6 -1
  222. package/modules/es.date.set-year.js +8 -6
  223. package/modules/es.date.to-primitive.js +2 -1
  224. package/modules/es.date.to-string.js +5 -4
  225. package/modules/es.escape.js +12 -5
  226. package/modules/es.function.has-instance.js +3 -2
  227. package/modules/es.function.name.js +4 -2
  228. package/modules/es.json.stringify.js +18 -7
  229. package/modules/es.map.js +1 -1
  230. package/modules/es.number.constructor.js +25 -19
  231. package/modules/es.number.is-integer.js +2 -2
  232. package/modules/es.number.is-safe-integer.js +2 -2
  233. package/modules/es.number.to-fixed.js +21 -15
  234. package/modules/es.number.to-precision.js +6 -5
  235. package/modules/es.object.has-own.js +1 -1
  236. package/modules/es.promise.all-settled.js +2 -2
  237. package/modules/es.promise.any.js +5 -4
  238. package/modules/es.promise.js +22 -18
  239. package/modules/es.reflect.apply.js +4 -10
  240. package/modules/es.reflect.construct.js +10 -5
  241. package/modules/es.reflect.get.js +2 -1
  242. package/modules/es.reflect.set.js +2 -1
  243. package/modules/es.regexp.constructor.js +25 -16
  244. package/modules/es.regexp.dot-all.js +5 -1
  245. package/modules/es.regexp.flags.js +4 -2
  246. package/modules/es.regexp.sticky.js +5 -1
  247. package/modules/es.regexp.test.js +7 -3
  248. package/modules/es.regexp.to-string.js +8 -5
  249. package/modules/es.set.js +1 -1
  250. package/modules/es.string.at-alternative.js +7 -5
  251. package/modules/es.string.ends-with.js +7 -5
  252. package/modules/es.string.from-code-point.js +7 -4
  253. package/modules/es.string.includes.js +8 -2
  254. package/modules/es.string.match-all.js +25 -19
  255. package/modules/es.string.match.js +2 -1
  256. package/modules/es.string.raw.js +9 -8
  257. package/modules/es.string.replace-all.js +19 -13
  258. package/modules/es.string.replace.js +21 -14
  259. package/modules/es.string.search.js +2 -1
  260. package/modules/es.string.split.js +23 -16
  261. package/modules/es.string.starts-with.js +6 -4
  262. package/modules/es.string.substr.js +10 -6
  263. package/modules/es.symbol.description.js +22 -14
  264. package/modules/es.symbol.js +47 -33
  265. package/modules/es.typed-array.at.js +4 -4
  266. package/modules/es.typed-array.copy-within.js +4 -2
  267. package/modules/es.typed-array.fill.js +9 -2
  268. package/modules/es.typed-array.iterator.js +7 -6
  269. package/modules/es.typed-array.join.js +3 -3
  270. package/modules/es.typed-array.last-index-of.js +3 -2
  271. package/modules/es.typed-array.reduce-right.js +2 -1
  272. package/modules/es.typed-array.reduce.js +2 -1
  273. package/modules/es.typed-array.set.js +4 -2
  274. package/modules/es.typed-array.slice.js +2 -2
  275. package/modules/es.typed-array.sort.js +13 -28
  276. package/modules/es.typed-array.to-locale-string.js +7 -2
  277. package/modules/es.typed-array.to-string.js +3 -2
  278. package/modules/es.unescape.js +14 -9
  279. package/modules/es.weak-map.js +14 -13
  280. package/modules/esnext.array.is-template-object.js +1 -1
  281. package/modules/esnext.array.last-index.js +2 -2
  282. package/modules/esnext.array.last-item.js +3 -3
  283. package/modules/esnext.async-iterator.as-indexed-pairs.js +2 -1
  284. package/modules/esnext.async-iterator.constructor.js +4 -4
  285. package/modules/esnext.async-iterator.drop.js +2 -1
  286. package/modules/esnext.async-iterator.filter.js +2 -1
  287. package/modules/esnext.async-iterator.flat-map.js +3 -2
  288. package/modules/esnext.async-iterator.from.js +4 -4
  289. package/modules/esnext.async-iterator.map.js +2 -1
  290. package/modules/esnext.async-iterator.reduce.js +4 -1
  291. package/modules/esnext.async-iterator.take.js +4 -2
  292. package/modules/esnext.composite-key.js +5 -1
  293. package/modules/esnext.composite-symbol.js +3 -2
  294. package/modules/esnext.iterator.as-indexed-pairs.js +2 -1
  295. package/modules/esnext.iterator.constructor.js +4 -4
  296. package/modules/esnext.iterator.drop.js +4 -2
  297. package/modules/esnext.iterator.filter.js +2 -1
  298. package/modules/esnext.iterator.flat-map.js +7 -3
  299. package/modules/esnext.iterator.from.js +4 -4
  300. package/modules/esnext.iterator.map.js +2 -1
  301. package/modules/esnext.iterator.reduce.js +3 -0
  302. package/modules/esnext.iterator.take.js +2 -1
  303. package/modules/esnext.map.delete-all.js +2 -4
  304. package/modules/esnext.map.emplace.js +2 -2
  305. package/modules/esnext.map.every.js +1 -1
  306. package/modules/esnext.map.filter.js +5 -4
  307. package/modules/esnext.map.find-key.js +1 -1
  308. package/modules/esnext.map.find.js +1 -1
  309. package/modules/esnext.map.group-by.js +6 -2
  310. package/modules/esnext.map.includes.js +1 -1
  311. package/modules/esnext.map.key-by.js +2 -1
  312. package/modules/esnext.map.map-keys.js +5 -4
  313. package/modules/esnext.map.map-values.js +5 -4
  314. package/modules/esnext.map.reduce.js +3 -0
  315. package/modules/esnext.map.some.js +1 -1
  316. package/modules/esnext.map.update-or-insert.js +2 -2
  317. package/modules/esnext.map.update.js +11 -4
  318. package/modules/esnext.map.upsert.js +2 -2
  319. package/modules/esnext.math.seeded-prng.js +3 -1
  320. package/modules/esnext.number.from-string.js +14 -5
  321. package/modules/esnext.observable.js +14 -9
  322. package/modules/esnext.reflect.get-metadata-keys.js +5 -10
  323. package/modules/esnext.set.add-all.js +2 -4
  324. package/modules/esnext.set.delete-all.js +2 -4
  325. package/modules/esnext.set.difference.js +3 -2
  326. package/modules/esnext.set.every.js +1 -1
  327. package/modules/esnext.set.filter.js +4 -3
  328. package/modules/esnext.set.find.js +1 -1
  329. package/modules/esnext.set.intersection.js +3 -2
  330. package/modules/esnext.set.is-disjoint-from.js +3 -2
  331. package/modules/esnext.set.is-subset-of.js +3 -2
  332. package/modules/esnext.set.is-superset-of.js +3 -2
  333. package/modules/esnext.set.join.js +9 -4
  334. package/modules/esnext.set.map.js +5 -4
  335. package/modules/esnext.set.reduce.js +3 -0
  336. package/modules/esnext.set.some.js +1 -1
  337. package/modules/esnext.set.symmetric-difference.js +3 -2
  338. package/modules/esnext.typed-array.from-async.js +9 -3
  339. package/modules/esnext.typed-array.unique-by.js +4 -2
  340. package/modules/esnext.weak-map.delete-all.js +2 -4
  341. package/modules/esnext.weak-map.emplace.js +2 -2
  342. package/modules/esnext.weak-map.upsert.js +2 -2
  343. package/modules/esnext.weak-set.add-all.js +2 -4
  344. package/modules/esnext.weak-set.delete-all.js +2 -4
  345. package/modules/web.dom-collections.for-each.js +3 -1
  346. package/modules/web.timers.js +5 -4
  347. package/modules/web.url-search-params.js +63 -54
  348. package/modules/web.url.js +112 -98
  349. package/modules/web.url.to-json.js +2 -1
  350. package/package.json +2 -2
  351. package/postinstall.js +1 -1
  352. package/stable/instance/entries.js +6 -4
  353. package/stable/instance/for-each.js +6 -4
  354. package/stable/instance/keys.js +6 -4
  355. package/stable/instance/values.js +6 -4
  356. package/internals/has.js +0 -7
  357. package/internals/is-integer.js +0 -9
  358. package/internals/to-integer.js +0 -8
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;
4
5
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
5
6
  var ArrayIterators = require('../modules/es.array.iterator');
@@ -7,9 +8,9 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
7
8
 
8
9
  var ITERATOR = wellKnownSymbol('iterator');
9
10
  var Uint8Array = global.Uint8Array;
10
- var arrayValues = ArrayIterators.values;
11
- var arrayKeys = ArrayIterators.keys;
12
- var arrayEntries = ArrayIterators.entries;
11
+ var arrayValues = uncurryThis(ArrayIterators.values);
12
+ var arrayKeys = uncurryThis(ArrayIterators.keys);
13
+ var arrayEntries = uncurryThis(ArrayIterators.entries);
13
14
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
14
15
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
15
16
  var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];
@@ -17,18 +18,18 @@ var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];
17
18
  var PROPER_ARRAY_VALUES_NAME = !!nativeTypedArrayIterator && nativeTypedArrayIterator.name === 'values';
18
19
 
19
20
  var typedArrayValues = function values() {
20
- return arrayValues.call(aTypedArray(this));
21
+ return arrayValues(aTypedArray(this));
21
22
  };
22
23
 
23
24
  // `%TypedArray%.prototype.entries` method
24
25
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries
25
26
  exportTypedArrayMethod('entries', function entries() {
26
- return arrayEntries.call(aTypedArray(this));
27
+ return arrayEntries(aTypedArray(this));
27
28
  });
28
29
  // `%TypedArray%.prototype.keys` method
29
30
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys
30
31
  exportTypedArrayMethod('keys', function keys() {
31
- return arrayKeys.call(aTypedArray(this));
32
+ return arrayKeys(aTypedArray(this));
32
33
  });
33
34
  // `%TypedArray%.prototype.values` method
34
35
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.values
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
 
4
5
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
5
6
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
6
- var $join = [].join;
7
+ var $join = uncurryThis([].join);
7
8
 
8
9
  // `%TypedArray%.prototype.join` method
9
10
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.join
10
- // eslint-disable-next-line no-unused-vars -- required for `.length`
11
11
  exportTypedArrayMethod('join', function join(separator) {
12
- return $join.apply(aTypedArray(this), arguments);
12
+ return $join(aTypedArray(this), separator);
13
13
  });
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
+ var apply = require('../internals/function-apply');
3
4
  var $lastIndexOf = require('../internals/array-last-index-of');
4
5
 
5
6
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
@@ -7,7 +8,7 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
7
8
 
8
9
  // `%TypedArray%.prototype.lastIndexOf` method
9
10
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof
10
- // eslint-disable-next-line no-unused-vars -- required for `.length`
11
11
  exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {
12
- return $lastIndexOf.apply(aTypedArray(this), arguments);
12
+ var length = arguments.length;
13
+ return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);
13
14
  });
@@ -8,5 +8,6 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
8
8
  // `%TypedArray%.prototype.reduceRicht` method
9
9
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright
10
10
  exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {
11
- return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
11
+ var length = arguments.length;
12
+ return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);
12
13
  });
@@ -8,5 +8,6 @@ var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
8
8
  // `%TypedArray%.prototype.reduce` method
9
9
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce
10
10
  exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {
11
- return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
11
+ var length = arguments.length;
12
+ return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);
12
13
  });
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
+ var global = require('../internals/global');
2
3
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
- var toLength = require('../internals/to-length');
4
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
4
5
  var toOffset = require('../internals/to-offset');
5
6
  var toObject = require('../internals/to-object');
6
7
  var fails = require('../internals/fails');
7
8
 
9
+ var RangeError = global.RangeError;
8
10
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
9
11
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
10
12
 
@@ -20,7 +22,7 @@ exportTypedArrayMethod('set', function set(arrayLike /* , offset */) {
20
22
  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);
21
23
  var length = this.length;
22
24
  var src = toObject(arrayLike);
23
- var len = toLength(src.length);
25
+ var len = lengthOfArrayLike(src);
24
26
  var index = 0;
25
27
  if (len + offset > length) throw RangeError('Wrong length');
26
28
  while (index < len) this[offset + index] = src[index++];
@@ -2,10 +2,10 @@
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
3
  var typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');
4
4
  var fails = require('../internals/fails');
5
+ var arraySlice = require('../internals/array-slice');
5
6
 
6
7
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
7
8
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
8
- var $slice = [].slice;
9
9
 
10
10
  var FORCED = fails(function () {
11
11
  // eslint-disable-next-line es/no-typed-arrays -- required for testing
@@ -15,7 +15,7 @@ var FORCED = fails(function () {
15
15
  // `%TypedArray%.prototype.slice` method
16
16
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice
17
17
  exportTypedArrayMethod('slice', function slice(start, end) {
18
- var list = $slice.call(aTypedArray(this), start, end);
18
+ var list = arraySlice(aTypedArray(this), start, end);
19
19
  var C = typedArraySpeciesConstructor(this);
20
20
  var index = 0;
21
21
  var length = list.length;
@@ -1,28 +1,29 @@
1
1
  'use strict';
2
- var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
2
  var global = require('../internals/global');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
4
4
  var fails = require('../internals/fails');
5
5
  var aCallable = require('../internals/a-callable');
6
- var toLength = require('../internals/to-length');
7
6
  var internalSort = require('../internals/array-sort');
7
+ var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
8
8
  var FF = require('../internals/engine-ff-version');
9
9
  var IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');
10
10
  var V8 = require('../internals/engine-v8-version');
11
11
  var WEBKIT = require('../internals/engine-webkit-version');
12
12
 
13
+ var Array = global.Array;
13
14
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
14
15
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
15
16
  var Uint16Array = global.Uint16Array;
16
- var nativeSort = Uint16Array && Uint16Array.prototype.sort;
17
+ var un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);
17
18
 
18
19
  // WebKit
19
- var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !fails(function () {
20
- var array = new Uint16Array(2);
21
- array.sort(null);
22
- array.sort({});
23
- });
20
+ var ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {
21
+ un$Sort(new Uint16Array(2), null);
22
+ }) && fails(function () {
23
+ un$Sort(new Uint16Array(2), {});
24
+ }));
24
25
 
25
- var STABLE_SORT = !!nativeSort && !fails(function () {
26
+ var STABLE_SORT = !!un$Sort && !fails(function () {
26
27
  // feature detection can be too slow, so check engines versions
27
28
  if (V8) return V8 < 74;
28
29
  if (FF) return FF < 67;
@@ -39,7 +40,7 @@ var STABLE_SORT = !!nativeSort && !fails(function () {
39
40
  expected[index] = index - 2 * mod + 3;
40
41
  }
41
42
 
42
- array.sort(function (a, b) {
43
+ un$Sort(array, function (a, b) {
43
44
  return (a / 4 | 0) - (b / 4 | 0);
44
45
  });
45
46
 
@@ -63,24 +64,8 @@ var getSortCompare = function (comparefn) {
63
64
  // `%TypedArray%.prototype.sort` method
64
65
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort
65
66
  exportTypedArrayMethod('sort', function sort(comparefn) {
66
- var array = this;
67
67
  if (comparefn !== undefined) aCallable(comparefn);
68
- if (STABLE_SORT) return nativeSort.call(array, comparefn);
69
-
70
- aTypedArray(array);
71
- var arrayLength = toLength(array.length);
72
- var items = Array(arrayLength);
73
- var index;
74
-
75
- for (index = 0; index < arrayLength; index++) {
76
- items[index] = array[index];
77
- }
78
-
79
- items = internalSort(array, getSortCompare(comparefn));
80
-
81
- for (index = 0; index < arrayLength; index++) {
82
- array[index] = items[index];
83
- }
68
+ if (STABLE_SORT) return un$Sort(this, comparefn);
84
69
 
85
- return array;
70
+ return internalSort(aTypedArray(this), getSortCompare(comparefn));
86
71
  }, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);
@@ -1,13 +1,14 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
+ var apply = require('../internals/function-apply');
3
4
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
4
5
  var fails = require('../internals/fails');
6
+ var arraySlice = require('../internals/array-slice');
5
7
 
6
8
  var Int8Array = global.Int8Array;
7
9
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
8
10
  var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
9
11
  var $toLocaleString = [].toLocaleString;
10
- var $slice = [].slice;
11
12
 
12
13
  // iOS Safari 6.x fails here
13
14
  var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {
@@ -23,5 +24,9 @@ var FORCED = fails(function () {
23
24
  // `%TypedArray%.prototype.toLocaleString` method
24
25
  // https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring
25
26
  exportTypedArrayMethod('toLocaleString', function toLocaleString() {
26
- return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);
27
+ return apply(
28
+ $toLocaleString,
29
+ TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),
30
+ arraySlice(arguments)
31
+ );
27
32
  }, FORCED);
@@ -2,15 +2,16 @@
2
2
  var exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;
3
3
  var fails = require('../internals/fails');
4
4
  var global = require('../internals/global');
5
+ var uncurryThis = require('../internals/function-uncurry-this');
5
6
 
6
7
  var Uint8Array = global.Uint8Array;
7
8
  var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};
8
9
  var arrayToString = [].toString;
9
- var arrayJoin = [].join;
10
+ var join = uncurryThis([].join);
10
11
 
11
12
  if (fails(function () { arrayToString.call({}); })) {
12
13
  arrayToString = function toString() {
13
- return arrayJoin.call(this);
14
+ return join(this);
14
15
  };
15
16
  }
16
17
 
@@ -1,8 +1,13 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var toString = require('../internals/to-string');
4
5
 
5
6
  var fromCharCode = String.fromCharCode;
7
+ var charAt = uncurryThis(''.charAt);
8
+ var exec = uncurryThis(/./.exec);
9
+ var stringSlice = uncurryThis(''.slice);
10
+
6
11
  var hex2 = /^[\da-f]{2}$/i;
7
12
  var hex4 = /^[\da-f]{4}$/i;
8
13
 
@@ -14,21 +19,21 @@ $({ global: true }, {
14
19
  var result = '';
15
20
  var length = str.length;
16
21
  var index = 0;
17
- var chr, slice;
22
+ var chr, part;
18
23
  while (index < length) {
19
- chr = str.charAt(index++);
24
+ chr = charAt(str, index++);
20
25
  if (chr === '%') {
21
- if (str.charAt(index) === 'u') {
22
- slice = str.slice(index + 1, index + 5);
23
- if (hex4.test(slice)) {
24
- result += fromCharCode(parseInt(slice, 16));
26
+ if (charAt(str, index) === 'u') {
27
+ part = stringSlice(str, index + 1, index + 5);
28
+ if (exec(hex4, part)) {
29
+ result += fromCharCode(parseInt(part, 16));
25
30
  index += 5;
26
31
  continue;
27
32
  }
28
33
  } else {
29
- slice = str.slice(index, index + 2);
30
- if (hex2.test(slice)) {
31
- result += fromCharCode(parseInt(slice, 16));
34
+ part = stringSlice(str, index, index + 2);
35
+ if (exec(hex2, part)) {
36
+ result += fromCharCode(parseInt(part, 16));
32
37
  index += 2;
33
38
  continue;
34
39
  }
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
+ var uncurryThis = require('../internals/function-uncurry-this');
3
4
  var redefineAll = require('../internals/redefine-all');
4
5
  var InternalMetadataModule = require('../internals/internal-metadata');
5
6
  var collection = require('../internals/collection');
@@ -21,7 +22,7 @@ var wrapper = function (init) {
21
22
 
22
23
  // `WeakMap` constructor
23
24
  // https://tc39.es/ecma262/#sec-weakmap-constructor
24
- var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);
25
+ var $WeakMap = collection('WeakMap', wrapper, collectionWeak);
25
26
 
26
27
  // IE11 WeakMap frozen keys fix
27
28
  // We can't use feature detection because it crash some old IE builds
@@ -30,38 +31,38 @@ if (NATIVE_WEAK_MAP && IS_IE11) {
30
31
  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);
31
32
  InternalMetadataModule.enable();
32
33
  var WeakMapPrototype = $WeakMap.prototype;
33
- var nativeDelete = WeakMapPrototype['delete'];
34
- var nativeHas = WeakMapPrototype.has;
35
- var nativeGet = WeakMapPrototype.get;
36
- var nativeSet = WeakMapPrototype.set;
34
+ var nativeDelete = uncurryThis(WeakMapPrototype['delete']);
35
+ var nativeHas = uncurryThis(WeakMapPrototype.has);
36
+ var nativeGet = uncurryThis(WeakMapPrototype.get);
37
+ var nativeSet = uncurryThis(WeakMapPrototype.set);
37
38
  redefineAll(WeakMapPrototype, {
38
39
  'delete': function (key) {
39
40
  if (isObject(key) && !isExtensible(key)) {
40
41
  var state = enforceIternalState(this);
41
42
  if (!state.frozen) state.frozen = new InternalWeakMap();
42
- return nativeDelete.call(this, key) || state.frozen['delete'](key);
43
- } return nativeDelete.call(this, key);
43
+ return nativeDelete(this, key) || state.frozen['delete'](key);
44
+ } return nativeDelete(this, key);
44
45
  },
45
46
  has: function has(key) {
46
47
  if (isObject(key) && !isExtensible(key)) {
47
48
  var state = enforceIternalState(this);
48
49
  if (!state.frozen) state.frozen = new InternalWeakMap();
49
- return nativeHas.call(this, key) || state.frozen.has(key);
50
- } return nativeHas.call(this, key);
50
+ return nativeHas(this, key) || state.frozen.has(key);
51
+ } return nativeHas(this, key);
51
52
  },
52
53
  get: function get(key) {
53
54
  if (isObject(key) && !isExtensible(key)) {
54
55
  var state = enforceIternalState(this);
55
56
  if (!state.frozen) state.frozen = new InternalWeakMap();
56
- return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);
57
- } return nativeGet.call(this, key);
57
+ return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);
58
+ } return nativeGet(this, key);
58
59
  },
59
60
  set: function set(key, value) {
60
61
  if (isObject(key) && !isExtensible(key)) {
61
62
  var state = enforceIternalState(this);
62
63
  if (!state.frozen) state.frozen = new InternalWeakMap();
63
- nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);
64
- } else nativeSet.call(this, key, value);
64
+ nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);
65
+ } else nativeSet(this, key, value);
65
66
  return this;
66
67
  }
67
68
  });
@@ -11,7 +11,7 @@ var isFrozenStringArray = function (array, allowUndefined) {
11
11
  var element;
12
12
  while (index < length) {
13
13
  element = array[index++];
14
- if (!(typeof element === 'string' || (allowUndefined && typeof element === 'undefined'))) {
14
+ if (!(typeof element == 'string' || (allowUndefined && typeof element == 'undefined'))) {
15
15
  return false;
16
16
  }
17
17
  } return length !== 0;
@@ -2,7 +2,7 @@
2
2
  var DESCRIPTORS = require('../internals/descriptors');
3
3
  var addToUnscopables = require('../internals/add-to-unscopables');
4
4
  var toObject = require('../internals/to-object');
5
- var toLength = require('../internals/to-length');
5
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
6
6
  var defineProperty = require('../internals/object-define-property').f;
7
7
 
8
8
  // `Array.prototype.lastIndex` getter
@@ -12,7 +12,7 @@ if (DESCRIPTORS && !('lastIndex' in [])) {
12
12
  configurable: true,
13
13
  get: function lastIndex() {
14
14
  var O = toObject(this);
15
- var len = toLength(O.length);
15
+ var len = lengthOfArrayLike(O);
16
16
  return len == 0 ? 0 : len - 1;
17
17
  }
18
18
  });
@@ -2,7 +2,7 @@
2
2
  var DESCRIPTORS = require('../internals/descriptors');
3
3
  var addToUnscopables = require('../internals/add-to-unscopables');
4
4
  var toObject = require('../internals/to-object');
5
- var toLength = require('../internals/to-length');
5
+ var lengthOfArrayLike = require('../internals/length-of-array-like');
6
6
  var defineProperty = require('../internals/object-define-property').f;
7
7
 
8
8
  // `Array.prototype.lastIndex` accessor
@@ -12,12 +12,12 @@ if (DESCRIPTORS && !('lastItem' in [])) {
12
12
  configurable: true,
13
13
  get: function lastItem() {
14
14
  var O = toObject(this);
15
- var len = toLength(O.length);
15
+ var len = lengthOfArrayLike(O);
16
16
  return len == 0 ? undefined : O[len - 1];
17
17
  },
18
18
  set: function lastItem(value) {
19
19
  var O = toObject(this);
20
- var len = toLength(O.length);
20
+ var len = lengthOfArrayLike(O);
21
21
  return O[len == 0 ? 0 : len - 1] = value;
22
22
  }
23
23
  });
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var anObject = require('../internals/an-object');
5
6
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
6
7
 
@@ -8,7 +9,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
8
9
  var state = this;
9
10
  var iterator = state.iterator;
10
11
 
11
- return Promise.resolve(anObject(state.next.apply(iterator, args))).then(function (step) {
12
+ return Promise.resolve(anObject(apply(state.next, iterator, args))).then(function (step) {
12
13
  if (anObject(step).done) {
13
14
  state.done = true;
14
15
  return { done: true, value: undefined };
@@ -3,7 +3,7 @@
3
3
  var $ = require('../internals/export');
4
4
  var anInstance = require('../internals/an-instance');
5
5
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
6
- var has = require('../internals/has');
6
+ var hasOwn = require('../internals/has-own-property');
7
7
  var wellKnownSymbol = require('../internals/well-known-symbol');
8
8
  var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
9
9
  var IS_PURE = require('../internals/is-pure');
@@ -11,16 +11,16 @@ var IS_PURE = require('../internals/is-pure');
11
11
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
12
12
 
13
13
  var AsyncIteratorConstructor = function AsyncIterator() {
14
- anInstance(this, AsyncIteratorConstructor);
14
+ anInstance(this, AsyncIteratorPrototype);
15
15
  };
16
16
 
17
17
  AsyncIteratorConstructor.prototype = AsyncIteratorPrototype;
18
18
 
19
- if (!has(AsyncIteratorPrototype, TO_STRING_TAG)) {
19
+ if (!hasOwn(AsyncIteratorPrototype, TO_STRING_TAG)) {
20
20
  createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');
21
21
  }
22
22
 
23
- if (IS_PURE || !has(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {
23
+ if (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {
24
24
  createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);
25
25
  }
26
26
 
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var anObject = require('../internals/an-object');
5
6
  var toPositiveInteger = require('../internals/to-positive-integer');
6
7
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -12,7 +13,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
12
13
  var loop = function () {
13
14
  try {
14
15
  Promise.resolve(
15
- anObject(state.next.apply(state.iterator, state.remaining ? [] : args))
16
+ anObject(apply(state.next, state.iterator, state.remaining ? [] : args))
16
17
  ).then(function (step) {
17
18
  try {
18
19
  if (anObject(step).done) {
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
7
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -12,7 +13,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
12
13
  return new Promise(function (resolve, reject) {
13
14
  var loop = function () {
14
15
  try {
15
- Promise.resolve(anObject(state.next.apply(state.iterator, args))).then(function (step) {
16
+ Promise.resolve(anObject(apply(state.next, state.iterator, args))).then(function (step) {
16
17
  try {
17
18
  if (anObject(step).done) {
18
19
  state.done = true;
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var call = require('../internals/function-call');
4
5
  var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
7
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -14,7 +15,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
14
15
  return new Promise(function (resolve, reject) {
15
16
  var outerLoop = function () {
16
17
  try {
17
- Promise.resolve(anObject(state.next.call(state.iterator))).then(function (step) {
18
+ Promise.resolve(anObject(call(state.next, state.iterator))).then(function (step) {
18
19
  try {
19
20
  if (anObject(step).done) {
20
21
  state.done = true;
@@ -36,7 +37,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
36
37
  var innerLoop = function () {
37
38
  if (innerIterator = state.innerIterator) {
38
39
  try {
39
- Promise.resolve(anObject(state.innerNext.call(innerIterator))).then(function (result) {
40
+ Promise.resolve(anObject(call(state.innerNext, innerIterator))).then(function (result) {
40
41
  try {
41
42
  if (anObject(result).done) {
42
43
  state.innerIterator = state.innerNext = null;
@@ -1,7 +1,9 @@
1
1
  // https://github.com/tc39/proposal-iterator-helpers
2
2
  var $ = require('../internals/export');
3
+ var apply = require('../internals/function-apply');
3
4
  var anObject = require('../internals/an-object');
4
5
  var toObject = require('../internals/to-object');
6
+ var isPrototypeOf = require('../internals/object-is-prototype-of');
5
7
  var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
6
8
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
7
9
  var getAsyncIterator = require('../internals/get-async-iterator');
@@ -13,10 +15,8 @@ var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
13
15
 
14
16
  var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
15
17
 
16
- var isPrototypeOf = {}.isPrototypeOf;
17
-
18
18
  var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
19
- return anObject(this.next.apply(this.iterator, args));
19
+ return anObject(apply(this.next, this.iterator, args));
20
20
  }, true);
21
21
 
22
22
  $({ target: 'AsyncIterator', stat: true }, {
@@ -26,7 +26,7 @@ $({ target: 'AsyncIterator', stat: true }, {
26
26
  var iterator;
27
27
  if (usingIterator) {
28
28
  iterator = getAsyncIterator(object, usingIterator);
29
- if (isPrototypeOf.call(AsyncIteratorPrototype, iterator)) return iterator;
29
+ if (isPrototypeOf(AsyncIteratorPrototype, iterator)) return iterator;
30
30
  }
31
31
  if (iterator === undefined) {
32
32
  usingIterator = getIteratorMethod(object);
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
4
5
  var aCallable = require('../internals/a-callable');
5
6
  var anObject = require('../internals/an-object');
6
7
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -9,7 +10,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
9
10
  var state = this;
10
11
  var mapper = state.mapper;
11
12
 
12
- return Promise.resolve(anObject(state.next.apply(state.iterator, args))).then(function (step) {
13
+ return Promise.resolve(anObject(apply(state.next, state.iterator, args))).then(function (step) {
13
14
  if (anObject(step).done) {
14
15
  state.done = true;
15
16
  return { done: true, value: undefined };
@@ -1,11 +1,14 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var global = require('../internals/global');
5
+ var call = require('../internals/function-call');
4
6
  var aCallable = require('../internals/a-callable');
5
7
  var anObject = require('../internals/an-object');
6
8
  var getBuiltIn = require('../internals/get-built-in');
7
9
 
8
10
  var Promise = getBuiltIn('Promise');
11
+ var TypeError = global.TypeError;
9
12
 
10
13
  $({ target: 'AsyncIterator', proto: true, real: true }, {
11
14
  reduce: function reduce(reducer /* , initialValue */) {
@@ -18,7 +21,7 @@ $({ target: 'AsyncIterator', proto: true, real: true }, {
18
21
  return new Promise(function (resolve, reject) {
19
22
  var loop = function () {
20
23
  try {
21
- Promise.resolve(anObject(next.call(iterator))).then(function (step) {
24
+ Promise.resolve(anObject(call(next, iterator))).then(function (step) {
22
25
  try {
23
26
  if (anObject(step).done) {
24
27
  noInitial ? reject(TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator);
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-iterator-helpers
3
3
  var $ = require('../internals/export');
4
+ var apply = require('../internals/function-apply');
5
+ var call = require('../internals/function-call');
4
6
  var anObject = require('../internals/an-object');
5
7
  var toPositiveInteger = require('../internals/to-positive-integer');
6
8
  var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
@@ -13,12 +15,12 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
13
15
  this.done = true;
14
16
  returnMethod = iterator['return'];
15
17
  if (returnMethod !== undefined) {
16
- return Promise.resolve(returnMethod.call(iterator)).then(function () {
18
+ return Promise.resolve(call(returnMethod, iterator)).then(function () {
17
19
  return result;
18
20
  });
19
21
  }
20
22
  return result;
21
- } return this.next.apply(iterator, args);
23
+ } return apply(this.next, iterator, args);
22
24
  });
23
25
 
24
26
  $({ target: 'AsyncIterator', proto: true, real: true }, {