core-js 3.1.3 → 3.3.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 (307) hide show
  1. package/README.md +1 -1
  2. package/configurator.js +7 -0
  3. package/es/global-this.js +3 -0
  4. package/es/index.js +2 -0
  5. package/es/promise/all-settled.js +11 -0
  6. package/es/promise/index.js +1 -0
  7. package/features/array/index.js +1 -0
  8. package/features/array/is-template-object.js +4 -0
  9. package/features/async-iterator/as-indexed-pairs.js +10 -0
  10. package/features/async-iterator/drop.js +10 -0
  11. package/features/async-iterator/every.js +10 -0
  12. package/features/async-iterator/filter.js +10 -0
  13. package/features/async-iterator/find.js +10 -0
  14. package/features/async-iterator/flat-map.js +10 -0
  15. package/features/async-iterator/for-each.js +10 -0
  16. package/features/async-iterator/from.js +10 -0
  17. package/features/async-iterator/index.js +22 -0
  18. package/features/async-iterator/map.js +10 -0
  19. package/features/async-iterator/reduce.js +10 -0
  20. package/features/async-iterator/some.js +10 -0
  21. package/features/async-iterator/take.js +10 -0
  22. package/features/async-iterator/to-array.js +10 -0
  23. package/features/global-this.js +1 -3
  24. package/features/iterator/as-indexed-pairs.js +10 -0
  25. package/features/iterator/drop.js +9 -0
  26. package/features/iterator/every.js +9 -0
  27. package/features/iterator/filter.js +9 -0
  28. package/features/iterator/find.js +9 -0
  29. package/features/iterator/flat-map.js +9 -0
  30. package/features/iterator/for-each.js +9 -0
  31. package/features/iterator/from.js +9 -0
  32. package/features/iterator/index.js +21 -0
  33. package/features/iterator/map.js +9 -0
  34. package/features/iterator/reduce.js +9 -0
  35. package/features/iterator/some.js +9 -0
  36. package/features/iterator/take.js +9 -0
  37. package/features/iterator/to-array.js +9 -0
  38. package/features/map/from.js +2 -0
  39. package/features/map/index.js +3 -0
  40. package/features/map/of.js +2 -0
  41. package/features/map/update-or-insert.js +6 -0
  42. package/features/map/upsert.js +5 -0
  43. package/features/promise/all-settled.js +2 -9
  44. package/features/promise/index.js +1 -0
  45. package/features/set/difference.js +2 -0
  46. package/features/set/from.js +2 -0
  47. package/features/set/is-subset-of.js +2 -0
  48. package/features/set/of.js +2 -0
  49. package/features/set/symmetric-difference.js +2 -0
  50. package/features/set/union.js +2 -0
  51. package/features/symbol/async-dispose.js +4 -0
  52. package/features/symbol/index.js +1 -0
  53. package/features/weak-map/from.js +2 -0
  54. package/features/weak-map/index.js +1 -0
  55. package/features/weak-map/of.js +2 -0
  56. package/features/weak-map/upsert.js +5 -0
  57. package/features/weak-set/from.js +2 -0
  58. package/features/weak-set/of.js +2 -0
  59. package/internals/a-possible-prototype.js +7 -0
  60. package/internals/add-to-unscopables.js +2 -2
  61. package/internals/advance-string-index.js +2 -2
  62. package/internals/array-buffer-view-core.js +5 -4
  63. package/internals/array-buffer.js +21 -16
  64. package/internals/array-copy-within.js +3 -1
  65. package/internals/array-for-each.js +3 -6
  66. package/internals/array-from.js +4 -3
  67. package/internals/array-includes.js +12 -7
  68. package/internals/{array-methods.js → array-iteration.js} +30 -18
  69. package/internals/array-last-index-of.js +3 -2
  70. package/internals/array-reduce.js +30 -21
  71. package/internals/async-iterator-iteration.js +61 -0
  72. package/internals/async-iterator-prototype.js +37 -0
  73. package/internals/collection-delete-all.js +3 -1
  74. package/internals/collection-from.js +3 -2
  75. package/internals/collection-weak.js +5 -5
  76. package/internals/collection.js +14 -14
  77. package/internals/composite-key.js +1 -0
  78. package/internals/create-async-iterator-proxy.js +61 -0
  79. package/internals/create-iterator-proxy.js +51 -0
  80. package/internals/{hide.js → create-non-enumerable-property.js} +0 -0
  81. package/internals/date-to-iso-string.js +12 -14
  82. package/internals/define-iterator.js +3 -3
  83. package/internals/document-create-element.js +2 -2
  84. package/internals/export.js +2 -2
  85. package/internals/fix-regexp-well-known-symbol-logic.js +2 -2
  86. package/internals/function-bind.js +3 -3
  87. package/internals/get-async-iterator-method.js +9 -0
  88. package/internals/global.js +4 -5
  89. package/internals/html.js +2 -4
  90. package/internals/indexed-object.js +1 -1
  91. package/internals/inherit-if-required.js +13 -6
  92. package/internals/internal-state.js +2 -2
  93. package/internals/iterate.js +21 -12
  94. package/internals/iterators-core.js +4 -2
  95. package/internals/map-upsert.js +23 -0
  96. package/internals/math-expm1.js +2 -1
  97. package/internals/math-fround.js +2 -1
  98. package/internals/math-log1p.js +3 -1
  99. package/internals/microtask.js +4 -3
  100. package/internals/native-promise-constructor.js +3 -0
  101. package/internals/native-url.js +13 -4
  102. package/internals/not-a-regexp.js +7 -0
  103. package/internals/object-assign.js +2 -1
  104. package/internals/object-create.js +2 -1
  105. package/internals/object-define-properties.js +4 -2
  106. package/internals/object-define-property.js +2 -0
  107. package/internals/object-get-own-property-descriptor.js +2 -0
  108. package/internals/object-get-own-property-names.js +2 -1
  109. package/internals/object-get-prototype-of.js +2 -1
  110. package/internals/object-keys-internal.js +2 -4
  111. package/internals/object-keys.js +2 -1
  112. package/internals/object-property-is-enumerable.js +2 -0
  113. package/internals/object-set-prototype-of.js +9 -5
  114. package/internals/object-to-array.js +25 -15
  115. package/internals/own-keys.js +2 -4
  116. package/internals/parse-float.js +7 -5
  117. package/internals/parse-int.js +6 -4
  118. package/internals/punycode-to-ascii.js +2 -4
  119. package/internals/redefine.js +3 -3
  120. package/internals/reflect-metadata.js +1 -0
  121. package/internals/regexp-flags.js +1 -0
  122. package/internals/set-global.js +2 -2
  123. package/internals/set-species.js +8 -5
  124. package/internals/shared-store.js +7 -0
  125. package/internals/shared.js +2 -6
  126. package/internals/string-multibyte.js +27 -0
  127. package/internals/string-pad.js +25 -11
  128. package/internals/string-trim.js +20 -8
  129. package/internals/task.js +3 -1
  130. package/internals/to-offset.js +3 -3
  131. package/internals/to-positive-integer.js +7 -0
  132. package/internals/to-primitive.js +7 -6
  133. package/internals/typed-array-constructor.js +15 -12
  134. package/internals/typed-array-from.js +3 -2
  135. package/internals/uid.js +1 -1
  136. package/internals/user-agent.js +2 -4
  137. package/modules/es.array.every.js +3 -6
  138. package/modules/es.array.fill.js +3 -1
  139. package/modules/es.array.filter.js +3 -6
  140. package/modules/es.array.find-index.js +2 -3
  141. package/modules/es.array.find.js +2 -3
  142. package/modules/es.array.flat-map.js +1 -1
  143. package/modules/es.array.flat.js +1 -1
  144. package/modules/es.array.includes.js +2 -4
  145. package/modules/es.array.index-of.js +2 -3
  146. package/modules/es.array.is-array.js +3 -1
  147. package/modules/es.array.map.js +3 -6
  148. package/modules/es.array.reduce-right.js +3 -4
  149. package/modules/es.array.reduce.js +3 -5
  150. package/modules/es.array.slice.js +1 -3
  151. package/modules/es.array.some.js +3 -6
  152. package/modules/es.array.splice.js +1 -3
  153. package/modules/es.date.to-primitive.js +4 -2
  154. package/modules/es.global-this.js +8 -0
  155. package/modules/es.map.js +1 -1
  156. package/modules/es.math.hypot.js +6 -1
  157. package/modules/es.number.constructor.js +9 -10
  158. package/modules/es.number.to-fixed.js +57 -53
  159. package/modules/es.object.entries.js +2 -2
  160. package/modules/es.object.get-own-property-descriptors.js +3 -3
  161. package/modules/es.object.get-prototype-of.js +1 -0
  162. package/modules/es.object.values.js +2 -2
  163. package/modules/es.promise.all-settled.js +43 -0
  164. package/modules/es.promise.finally.js +8 -0
  165. package/modules/es.promise.js +30 -14
  166. package/modules/es.reflect.apply.js +2 -2
  167. package/modules/es.reflect.construct.js +4 -4
  168. package/modules/es.reflect.define-property.js +5 -5
  169. package/modules/es.reflect.delete-property.js +1 -1
  170. package/modules/es.reflect.get-own-property-descriptor.js +2 -2
  171. package/modules/es.reflect.get-prototype-of.js +1 -1
  172. package/modules/es.reflect.get.js +3 -3
  173. package/modules/es.reflect.set-prototype-of.js +4 -2
  174. package/modules/es.reflect.set.js +3 -3
  175. package/modules/es.regexp.constructor.js +3 -3
  176. package/modules/es.regexp.to-string.js +1 -1
  177. package/modules/es.set.js +1 -1
  178. package/modules/es.string.code-point-at.js +2 -2
  179. package/modules/es.string.ends-with.js +6 -5
  180. package/modules/es.string.includes.js +4 -3
  181. package/modules/es.string.iterator.js +2 -2
  182. package/modules/es.string.match-all.js +22 -7
  183. package/modules/es.string.pad-end.js +2 -2
  184. package/modules/es.string.pad-start.js +2 -2
  185. package/modules/es.string.starts-with.js +8 -6
  186. package/modules/es.string.trim-end.js +2 -2
  187. package/modules/es.string.trim-start.js +2 -2
  188. package/modules/es.string.trim.js +3 -5
  189. package/modules/es.symbol.js +97 -87
  190. package/modules/es.typed-array.copy-within.js +2 -2
  191. package/modules/es.typed-array.every.js +2 -3
  192. package/modules/es.typed-array.fill.js +2 -2
  193. package/modules/es.typed-array.filter.js +3 -4
  194. package/modules/es.typed-array.find-index.js +2 -3
  195. package/modules/es.typed-array.find.js +2 -3
  196. package/modules/es.typed-array.for-each.js +2 -3
  197. package/modules/es.typed-array.includes.js +2 -3
  198. package/modules/es.typed-array.index-of.js +2 -3
  199. package/modules/es.typed-array.iterator.js +1 -1
  200. package/modules/es.typed-array.join.js +2 -2
  201. package/modules/es.typed-array.last-index-of.js +2 -2
  202. package/modules/es.typed-array.map.js +5 -7
  203. package/modules/es.typed-array.of.js +1 -1
  204. package/modules/es.typed-array.reduce-right.js +2 -2
  205. package/modules/es.typed-array.reduce.js +2 -2
  206. package/modules/es.typed-array.reverse.js +2 -1
  207. package/modules/es.typed-array.set.js +2 -2
  208. package/modules/es.typed-array.slice.js +3 -3
  209. package/modules/es.typed-array.some.js +2 -3
  210. package/modules/es.typed-array.sort.js +2 -2
  211. package/modules/es.typed-array.subarray.js +1 -1
  212. package/modules/es.typed-array.to-locale-string.js +7 -6
  213. package/modules/es.weak-map.js +1 -1
  214. package/modules/es.weak-set.js +1 -1
  215. package/modules/esnext.aggregate-error.js +28 -4
  216. package/modules/esnext.array.is-template-object.js +28 -0
  217. package/modules/esnext.async-iterator.as-indexed-pairs.js +27 -0
  218. package/modules/esnext.async-iterator.constructor.js +25 -0
  219. package/modules/esnext.async-iterator.drop.js +41 -0
  220. package/modules/esnext.async-iterator.every.js +10 -0
  221. package/modules/esnext.async-iterator.filter.js +42 -0
  222. package/modules/esnext.async-iterator.find.js +10 -0
  223. package/modules/esnext.async-iterator.flat-map.js +67 -0
  224. package/modules/esnext.async-iterator.for-each.js +10 -0
  225. package/modules/esnext.async-iterator.from.js +30 -0
  226. package/modules/esnext.async-iterator.map.js +30 -0
  227. package/modules/esnext.async-iterator.reduce.js +46 -0
  228. package/modules/esnext.async-iterator.some.js +10 -0
  229. package/modules/esnext.async-iterator.take.js +22 -0
  230. package/modules/esnext.async-iterator.to-array.js +10 -0
  231. package/modules/esnext.global-this.js +2 -6
  232. package/modules/esnext.iterator.as-indexed-pairs.js +20 -0
  233. package/modules/esnext.iterator.constructor.js +39 -0
  234. package/modules/esnext.iterator.drop.js +30 -0
  235. package/modules/esnext.iterator.every.js +16 -0
  236. package/modules/esnext.iterator.filter.js +30 -0
  237. package/modules/esnext.iterator.find.js +16 -0
  238. package/modules/esnext.iterator.flat-map.js +45 -0
  239. package/modules/esnext.iterator.for-each.js +11 -0
  240. package/modules/esnext.iterator.from.js +32 -0
  241. package/modules/esnext.iterator.map.js +23 -0
  242. package/modules/esnext.iterator.reduce.js +25 -0
  243. package/modules/esnext.iterator.some.js +16 -0
  244. package/modules/esnext.iterator.take.js +25 -0
  245. package/modules/esnext.iterator.to-array.js +15 -0
  246. package/modules/esnext.map.every.js +4 -5
  247. package/modules/esnext.map.filter.js +4 -5
  248. package/modules/esnext.map.find-key.js +4 -5
  249. package/modules/esnext.map.find.js +4 -5
  250. package/modules/esnext.map.includes.js +4 -7
  251. package/modules/esnext.map.key-of.js +4 -7
  252. package/modules/esnext.map.map-keys.js +4 -5
  253. package/modules/esnext.map.map-values.js +4 -5
  254. package/modules/esnext.map.reduce.js +12 -11
  255. package/modules/esnext.map.some.js +4 -5
  256. package/modules/esnext.map.update-or-insert.js +11 -0
  257. package/modules/esnext.map.update.js +3 -2
  258. package/modules/esnext.map.upsert.js +10 -0
  259. package/modules/esnext.math.signbit.js +0 -1
  260. package/modules/esnext.observable.js +26 -25
  261. package/modules/esnext.promise.all-settled.js +2 -43
  262. package/modules/esnext.reflect.get-metadata-keys.js +1 -0
  263. package/modules/esnext.set.every.js +4 -4
  264. package/modules/esnext.set.filter.js +4 -4
  265. package/modules/esnext.set.find.js +4 -4
  266. package/modules/esnext.set.is-disjoint-from.js +3 -5
  267. package/modules/esnext.set.is-subset-of.js +3 -5
  268. package/modules/esnext.set.is-superset-of.js +3 -5
  269. package/modules/esnext.set.join.js +2 -2
  270. package/modules/esnext.set.map.js +4 -4
  271. package/modules/esnext.set.reduce.js +12 -10
  272. package/modules/esnext.set.some.js +4 -4
  273. package/modules/esnext.string.at.js +2 -2
  274. package/modules/esnext.string.code-points.js +5 -3
  275. package/modules/esnext.string.match-all.js +0 -1
  276. package/modules/esnext.string.replace-all.js +16 -22
  277. package/modules/esnext.symbol.async-dispose.js +5 -0
  278. package/modules/esnext.symbol.dispose.js +1 -1
  279. package/modules/esnext.symbol.replace-all.js +1 -2
  280. package/modules/esnext.weak-map.upsert.js +10 -0
  281. package/modules/web.dom-collections.for-each.js +2 -2
  282. package/modules/web.dom-collections.iterator.js +6 -4
  283. package/modules/web.immediate.js +5 -0
  284. package/modules/web.timers.js +12 -7
  285. package/modules/web.url-search-params.js +52 -41
  286. package/modules/web.url.js +45 -43
  287. package/package.json +2 -2
  288. package/postinstall.js +49 -0
  289. package/proposals/array-is-template-object.js +1 -0
  290. package/proposals/iterator-helpers.js +20 -0
  291. package/proposals/map-update-or-insert.js +2 -0
  292. package/proposals/map-upsert.js +5 -0
  293. package/proposals/promise-all-settled.js +1 -0
  294. package/proposals/string-match-all.js +0 -2
  295. package/proposals/using-statement.js +1 -0
  296. package/stable/global-this.js +1 -3
  297. package/stable/promise/all-settled.js +1 -0
  298. package/stage/1.js +1 -3
  299. package/stage/2.js +4 -1
  300. package/stage/3.js +2 -2
  301. package/stage/4.js +2 -0
  302. package/LICENSE +0 -19
  303. package/internals/enum-keys.js +0 -16
  304. package/internals/string-at.js +0 -17
  305. package/internals/validate-set-prototype-of-arguments.js +0 -9
  306. package/internals/validate-string-method-arguments.js +0 -9
  307. package/scripts/postinstall.js +0 -23
@@ -2,10 +2,10 @@
2
2
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
3
3
 
4
4
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
5
- var arraySort = [].sort;
5
+ var $sort = [].sort;
6
6
 
7
7
  // `%TypedArray%.prototype.sort` method
8
8
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort
9
9
  ArrayBufferViewCore.exportProto('sort', function sort(comparefn) {
10
- return arraySort.call(aTypedArray(this), comparefn);
10
+ return $sort.call(aTypedArray(this), comparefn);
11
11
  });
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
+ var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
2
3
  var toLength = require('../internals/to-length');
3
4
  var toAbsoluteIndex = require('../internals/to-absolute-index');
4
5
  var speciesConstructor = require('../internals/species-constructor');
5
- var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
6
6
 
7
7
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
8
8
 
@@ -1,17 +1,18 @@
1
1
  'use strict';
2
2
  var global = require('../internals/global');
3
- var fails = require('../internals/fails');
4
3
  var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
4
+ var fails = require('../internals/fails');
5
5
 
6
6
  var Int8Array = global.Int8Array;
7
7
  var aTypedArray = ArrayBufferViewCore.aTypedArray;
8
- var arrayToLocaleString = [].toLocaleString;
9
- var arraySlice = [].slice;
8
+ var $toLocaleString = [].toLocaleString;
9
+ var $slice = [].slice;
10
10
 
11
11
  // iOS Safari 6.x fails here
12
- var TO_LOCALE_BUG = !!Int8Array && fails(function () {
13
- arrayToLocaleString.call(new Int8Array(1));
12
+ var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {
13
+ $toLocaleString.call(new Int8Array(1));
14
14
  });
15
+
15
16
  var FORCED = fails(function () {
16
17
  return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();
17
18
  }) || !fails(function () {
@@ -21,5 +22,5 @@ var FORCED = fails(function () {
21
22
  // `%TypedArray%.prototype.toLocaleString` method
22
23
  // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring
23
24
  ArrayBufferViewCore.exportProto('toLocaleString', function toLocaleString() {
24
- return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(aTypedArray(this)) : aTypedArray(this), arguments);
25
+ return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);
25
26
  }, FORCED);
@@ -14,7 +14,7 @@ var InternalWeakMap;
14
14
 
15
15
  var wrapper = function (get) {
16
16
  return function WeakMap() {
17
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
17
+ return get(this, arguments.length ? arguments[0] : undefined);
18
18
  };
19
19
  };
20
20
 
@@ -5,5 +5,5 @@ var collectionWeak = require('../internals/collection-weak');
5
5
  // `WeakSet` constructor
6
6
  // https://tc39.github.io/ecma262/#sec-weakset-constructor
7
7
  collection('WeakSet', function (get) {
8
- return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
8
+ return function WeakSet() { return get(this, arguments.length ? arguments[0] : undefined); };
9
9
  }, collectionWeak, false, true);
@@ -1,10 +1,18 @@
1
+ 'use strict';
1
2
  var $ = require('../internals/export');
3
+ var DESCRIPTORS = require('../internals/descriptors');
2
4
  var getPrototypeOf = require('../internals/object-get-prototype-of');
3
5
  var setPrototypeOf = require('../internals/object-set-prototype-of');
4
6
  var create = require('../internals/object-create');
7
+ var defineProperty = require('../internals/object-define-property');
5
8
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
6
9
  var iterate = require('../internals/iterate');
7
- var hide = require('../internals/hide');
10
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
11
+ var anObject = require('../internals/an-object');
12
+ var InternalStateModule = require('../internals/internal-state');
13
+
14
+ var setInternalState = InternalStateModule.set;
15
+ var getInternalAggregateErrorState = InternalStateModule.getterFor('AggregateError');
8
16
 
9
17
  var $AggregateError = function AggregateError(errors, message) {
10
18
  var that = this;
@@ -14,14 +22,30 @@ var $AggregateError = function AggregateError(errors, message) {
14
22
  }
15
23
  var errorsArray = [];
16
24
  iterate(errors, errorsArray.push, errorsArray);
17
- that.errors = errorsArray;
18
- if (message !== undefined) hide(that, 'message', String(message));
25
+ if (DESCRIPTORS) setInternalState(that, { errors: errorsArray, type: 'AggregateError' });
26
+ else that.errors = errorsArray;
27
+ if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));
19
28
  return that;
20
29
  };
21
30
 
22
31
  $AggregateError.prototype = create(Error.prototype, {
23
32
  constructor: createPropertyDescriptor(5, $AggregateError),
24
- name: createPropertyDescriptor(5, 'AggregateError')
33
+ message: createPropertyDescriptor(5, ''),
34
+ name: createPropertyDescriptor(5, 'AggregateError'),
35
+ toString: createPropertyDescriptor(5, function toString() {
36
+ var name = anObject(this).name;
37
+ name = name === undefined ? 'AggregateError' : String(name);
38
+ var message = this.message;
39
+ message = message === undefined ? '' : String(message);
40
+ return name + ': ' + message;
41
+ })
42
+ });
43
+
44
+ if (DESCRIPTORS) defineProperty.f($AggregateError.prototype, 'errors', {
45
+ get: function () {
46
+ return getInternalAggregateErrorState(this).errors;
47
+ },
48
+ configurable: true
25
49
  });
26
50
 
27
51
  $({ global: true }, {
@@ -0,0 +1,28 @@
1
+ var $ = require('../internals/export');
2
+ var isArray = require('../internals/is-array');
3
+
4
+ var isFrozen = Object.isFrozen;
5
+
6
+ var isFrozenStringArray = function (array, allowUndefined) {
7
+ if (!isFrozen || !isArray(array) || !isFrozen(array)) return false;
8
+ var index = 0;
9
+ var length = array.length;
10
+ var element;
11
+ while (index < length) {
12
+ element = array[index++];
13
+ if (!(typeof element === 'string' || (allowUndefined && typeof element === 'undefined'))) {
14
+ return false;
15
+ }
16
+ } return length !== 0;
17
+ };
18
+
19
+ // `Array.isTemplateObject` method
20
+ // https://github.com/tc39/proposal-array-is-template-object
21
+ $({ target: 'Array', stat: true }, {
22
+ isTemplateObject: function isTemplateObject(value) {
23
+ if (!isFrozenStringArray(value, true)) return false;
24
+ var raw = value.raw;
25
+ if (raw.length !== value.length || !isFrozenStringArray(raw, false)) return false;
26
+ return true;
27
+ }
28
+ });
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var anObject = require('../internals/an-object');
5
+ var createAsyncIteratorProxy = require('../internals/create-async-iterator-proxy');
6
+
7
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
8
+ var state = this;
9
+ var iterator = state.iterator;
10
+
11
+ return Promise.resolve(anObject(state.next.call(iterator, arg))).then(function (step) {
12
+ if (anObject(step).done) {
13
+ state.done = true;
14
+ return { done: true, value: undefined };
15
+ }
16
+ return { done: false, value: [state.index++, step.value] };
17
+ });
18
+ });
19
+
20
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
21
+ asIndexedPairs: function asIndexedPairs() {
22
+ return new AsyncIteratorProxy({
23
+ iterator: anObject(this),
24
+ index: 0
25
+ });
26
+ }
27
+ });
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var anInstance = require('../internals/an-instance');
5
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
6
+ var has = require('../internals/has');
7
+ var wellKnownSymbol = require('../internals/well-known-symbol');
8
+ var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
9
+ var IS_PURE = require('../internals/is-pure');
10
+
11
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
12
+
13
+ var AsyncIteratorConstructor = function AsyncIterator() {
14
+ anInstance(this, AsyncIteratorConstructor);
15
+ };
16
+
17
+ AsyncIteratorConstructor.prototype = AsyncIteratorPrototype;
18
+
19
+ if (!has(AsyncIteratorPrototype, TO_STRING_TAG)) {
20
+ createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');
21
+ }
22
+
23
+ $({ global: true, forced: IS_PURE }, {
24
+ AsyncIterator: AsyncIteratorConstructor
25
+ });
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var anObject = require('../internals/an-object');
5
+ var toPositiveInteger = require('../internals/to-positive-integer');
6
+ var createAsyncIteratorProxy = require('../internals/create-async-iterator-proxy');
7
+
8
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
9
+ var state = this;
10
+
11
+ return new Promise(function (resolve, reject) {
12
+ var loop = function () {
13
+ try {
14
+ Promise.resolve(
15
+ anObject(state.next.call(state.iterator, state.remaining ? undefined : arg))
16
+ ).then(function (step) {
17
+ try {
18
+ if (anObject(step).done) {
19
+ state.done = true;
20
+ resolve({ done: true, value: undefined });
21
+ } else if (state.remaining) {
22
+ state.remaining--;
23
+ loop();
24
+ } else resolve({ done: false, value: step.value });
25
+ } catch (err) { reject(err); }
26
+ }, reject);
27
+ } catch (error) { reject(error); }
28
+ };
29
+
30
+ loop();
31
+ });
32
+ });
33
+
34
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
35
+ drop: function drop(limit) {
36
+ return new AsyncIteratorProxy({
37
+ iterator: anObject(this),
38
+ remaining: toPositiveInteger(limit)
39
+ });
40
+ }
41
+ });
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var $every = require('../internals/async-iterator-iteration').every;
5
+
6
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
7
+ every: function every(fn) {
8
+ return $every(this, fn);
9
+ }
10
+ });
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var aFunction = require('../internals/a-function');
5
+ var anObject = require('../internals/an-object');
6
+ var createAsyncIteratorProxy = require('../internals/create-async-iterator-proxy');
7
+
8
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
9
+ var state = this;
10
+ var filterer = state.filterer;
11
+
12
+ return new Promise(function (resolve, reject) {
13
+ var loop = function () {
14
+ try {
15
+ Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) {
16
+ try {
17
+ if (anObject(step).done) {
18
+ state.done = true;
19
+ resolve({ done: true, value: undefined });
20
+ } else {
21
+ var value = step.value;
22
+ Promise.resolve(filterer(value)).then(function (selected) {
23
+ selected ? resolve({ done: false, value: value }) : loop();
24
+ }, reject);
25
+ }
26
+ } catch (err) { reject(err); }
27
+ }, reject);
28
+ } catch (error) { reject(error); }
29
+ };
30
+
31
+ loop();
32
+ });
33
+ });
34
+
35
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
36
+ filter: function filter(filterer) {
37
+ return new AsyncIteratorProxy({
38
+ iterator: anObject(this),
39
+ filterer: aFunction(filterer)
40
+ });
41
+ }
42
+ });
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var $find = require('../internals/async-iterator-iteration').find;
5
+
6
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
7
+ find: function find(fn) {
8
+ return $find(this, fn);
9
+ }
10
+ });
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var aFunction = require('../internals/a-function');
5
+ var anObject = require('../internals/an-object');
6
+ var isObject = require('../internals/is-object');
7
+ var createAsyncIteratorProxy = require('../internals/create-async-iterator-proxy');
8
+ var getAsyncIteratorMethod = require('../internals/get-async-iterator-method');
9
+
10
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
11
+ var state = this;
12
+ var mapper = state.mapper;
13
+ var innerIterator, iteratorMethod;
14
+
15
+ return new Promise(function (resolve, reject) {
16
+ var outerLoop = function () {
17
+ try {
18
+ Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) {
19
+ try {
20
+ if (anObject(step).done) {
21
+ state.done = true;
22
+ resolve({ done: true, value: undefined });
23
+ } else {
24
+ Promise.resolve(mapper(step.value)).then(function (mapped) {
25
+ try {
26
+ if (isObject(mapped) && (iteratorMethod = getAsyncIteratorMethod(mapped)) !== undefined) {
27
+ state.innerIterator = innerIterator = iteratorMethod.call(mapped);
28
+ state.innerNext = aFunction(innerIterator.next);
29
+ return innerLoop();
30
+ } resolve({ done: false, value: mapped });
31
+ } catch (error2) { reject(error2); }
32
+ }, reject);
33
+ }
34
+ } catch (error1) { reject(error1); }
35
+ }, reject);
36
+ } catch (error) { reject(error); }
37
+ };
38
+
39
+ var innerLoop = function () {
40
+ if (innerIterator = state.innerIterator) {
41
+ try {
42
+ Promise.resolve(anObject(state.innerNext.call(innerIterator))).then(function (result) {
43
+ try {
44
+ if (anObject(result).done) {
45
+ state.innerIterator = state.innerNext = null;
46
+ outerLoop();
47
+ } else resolve({ done: false, value: result.value });
48
+ } catch (error1) { reject(error1); }
49
+ }, reject);
50
+ } catch (error) { reject(error); }
51
+ } else outerLoop();
52
+ };
53
+
54
+ innerLoop();
55
+ });
56
+ });
57
+
58
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
59
+ flatMap: function flatMap(mapper) {
60
+ return new AsyncIteratorProxy({
61
+ iterator: anObject(this),
62
+ mapper: aFunction(mapper),
63
+ innerIterator: null,
64
+ innerNext: null
65
+ });
66
+ }
67
+ });
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var $forEach = require('../internals/async-iterator-iteration').forEach;
5
+
6
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
7
+ forEach: function forEach(fn) {
8
+ return $forEach(this, fn);
9
+ }
10
+ });
@@ -0,0 +1,30 @@
1
+ // https://github.com/tc39/proposal-iterator-helpers
2
+ var $ = require('../internals/export');
3
+ var path = require('../internals/path');
4
+ var aFunction = require('../internals/a-function');
5
+ var anObject = require('../internals/an-object');
6
+ var toObject = require('../internals/to-object');
7
+ var createAsyncIteratorProxy = require('../internals/create-async-iterator-proxy');
8
+ var getAsyncIteratorMethod = require('../internals/get-async-iterator-method');
9
+
10
+ var AsyncIterator = path.AsyncIterator;
11
+
12
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg) {
13
+ return anObject(this.next.call(this.iterator, arg));
14
+ }, true);
15
+
16
+ $({ target: 'AsyncIterator', stat: true }, {
17
+ from: function from(O) {
18
+ var object = toObject(O);
19
+ var usingIterator = getAsyncIteratorMethod(object);
20
+ var iterator;
21
+ if (usingIterator != null) {
22
+ iterator = aFunction(usingIterator).call(object);
23
+ if (iterator instanceof AsyncIterator) return iterator;
24
+ } else {
25
+ iterator = object;
26
+ } return new AsyncIteratorProxy({
27
+ iterator: iterator
28
+ });
29
+ }
30
+ });
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var aFunction = require('../internals/a-function');
5
+ var anObject = require('../internals/an-object');
6
+ var createAsyncIteratorProxy = require('../internals/create-async-iterator-proxy');
7
+
8
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg, Promise) {
9
+ var state = this;
10
+ var mapper = state.mapper;
11
+
12
+ return Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) {
13
+ if (anObject(step).done) {
14
+ state.done = true;
15
+ return { done: true, value: undefined };
16
+ }
17
+ return Promise.resolve(mapper(step.value)).then(function (value) {
18
+ return { done: false, value: value };
19
+ });
20
+ });
21
+ });
22
+
23
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
24
+ map: function map(mapper) {
25
+ return new AsyncIteratorProxy({
26
+ iterator: anObject(this),
27
+ mapper: aFunction(mapper)
28
+ });
29
+ }
30
+ });
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var aFunction = require('../internals/a-function');
5
+ var anObject = require('../internals/an-object');
6
+ var getBuiltIn = require('../internals/get-built-in');
7
+
8
+ var Promise = getBuiltIn('Promise');
9
+
10
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
11
+ reduce: function reduce(reducer /* , initialValue */) {
12
+ var iterator = anObject(this);
13
+ var next = aFunction(iterator.next);
14
+ var noInitial = arguments.length < 2;
15
+ var accumulator = noInitial ? undefined : arguments[1];
16
+ aFunction(reducer);
17
+
18
+ return new Promise(function (resolve, reject) {
19
+ var loop = function () {
20
+ try {
21
+ Promise.resolve(anObject(next.call(iterator))).then(function (step) {
22
+ try {
23
+ if (anObject(step).done) {
24
+ noInitial ? reject(TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator);
25
+ } else {
26
+ var value = step.value;
27
+ if (noInitial) {
28
+ noInitial = false;
29
+ accumulator = value;
30
+ loop();
31
+ } else {
32
+ Promise.resolve(reducer(accumulator, value)).then(function (result) {
33
+ accumulator = result;
34
+ loop();
35
+ }, reject);
36
+ }
37
+ }
38
+ } catch (err) { reject(err); }
39
+ }, reject);
40
+ } catch (error) { reject(error); }
41
+ };
42
+
43
+ loop();
44
+ });
45
+ }
46
+ });
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var $some = require('../internals/async-iterator-iteration').some;
5
+
6
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
7
+ some: function some(fn) {
8
+ return $some(this, fn);
9
+ }
10
+ });
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var anObject = require('../internals/an-object');
5
+ var toPositiveInteger = require('../internals/to-positive-integer');
6
+ var createAsyncIteratorProxy = require('../internals/create-async-iterator-proxy');
7
+
8
+ var AsyncIteratorProxy = createAsyncIteratorProxy(function (arg) {
9
+ if (!this.remaining--) {
10
+ this.done = true;
11
+ return { done: true, value: undefined };
12
+ } return this.next.call(this.iterator, arg);
13
+ });
14
+
15
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
16
+ take: function take(limit) {
17
+ return new AsyncIteratorProxy({
18
+ iterator: anObject(this),
19
+ remaining: toPositiveInteger(limit)
20
+ });
21
+ }
22
+ });
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var $toArray = require('../internals/async-iterator-iteration').toArray;
5
+
6
+ $({ target: 'AsyncIterator', proto: true, real: true }, {
7
+ toArray: function toArray() {
8
+ return $toArray(this);
9
+ }
10
+ });
@@ -1,6 +1,2 @@
1
- var $ = require('../internals/export');
2
- var global = require('../internals/global');
3
-
4
- // `globalThis` object
5
- // https://github.com/tc39/proposal-global
6
- $({ global: true }, { globalThis: global });
1
+ // TODO: Remove from `core-js@4`
2
+ require('./es.global-this');
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var anObject = require('../internals/an-object');
5
+ var createIteratorProxy = require('../internals/create-iterator-proxy');
6
+
7
+ var IteratorProxy = createIteratorProxy(function (arg) {
8
+ var result = anObject(this.next.call(this.iterator, arg));
9
+ var done = this.done = !!result.done;
10
+ if (!done) return [this.index++, result.value];
11
+ });
12
+
13
+ $({ target: 'Iterator', proto: true, real: true }, {
14
+ asIndexedPairs: function asIndexedPairs() {
15
+ return new IteratorProxy({
16
+ iterator: anObject(this),
17
+ index: 0
18
+ });
19
+ }
20
+ });
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var global = require('../internals/global');
5
+ var anInstance = require('../internals/an-instance');
6
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
7
+ var has = require('../internals/has');
8
+ var wellKnownSymbol = require('../internals/well-known-symbol');
9
+ var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
10
+ var IS_PURE = require('../internals/is-pure');
11
+
12
+ var ITERATOR = wellKnownSymbol('iterator');
13
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
14
+
15
+ var NativeIterator = global.Iterator;
16
+
17
+ // FF56- have non-standard global helper `Iterator`
18
+ var FORCED = IS_PURE || typeof NativeIterator != 'function' || NativeIterator.prototype !== IteratorPrototype;
19
+
20
+ var IteratorConstructor = function Iterator() {
21
+ anInstance(this, IteratorConstructor);
22
+ };
23
+
24
+ if (IS_PURE) {
25
+ IteratorPrototype = {};
26
+ createNonEnumerableProperty(IteratorPrototype, ITERATOR, function () {
27
+ return this;
28
+ });
29
+ }
30
+
31
+ if (!has(IteratorPrototype, TO_STRING_TAG)) {
32
+ createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG, 'Iterator');
33
+ }
34
+
35
+ IteratorConstructor.prototype = IteratorPrototype;
36
+
37
+ $({ global: true, forced: FORCED }, {
38
+ Iterator: IteratorConstructor
39
+ });
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-helpers
3
+ var $ = require('../internals/export');
4
+ var anObject = require('../internals/an-object');
5
+ var toPositiveInteger = require('../internals/to-positive-integer');
6
+ var createIteratorProxy = require('../internals/create-iterator-proxy');
7
+
8
+ var IteratorProxy = createIteratorProxy(function (arg) {
9
+ var iterator = this.iterator;
10
+ var next = this.next;
11
+ var result, done;
12
+ while (this.remaining) {
13
+ this.remaining--;
14
+ result = anObject(next.call(iterator));
15
+ done = this.done = !!result.done;
16
+ if (done) return;
17
+ }
18
+ result = anObject(next.call(iterator, arg));
19
+ done = this.done = !!result.done;
20
+ if (!done) return result.value;
21
+ });
22
+
23
+ $({ target: 'Iterator', proto: true, real: true }, {
24
+ drop: function drop(limit) {
25
+ return new IteratorProxy({
26
+ iterator: anObject(this),
27
+ remaining: toPositiveInteger(limit)
28
+ });
29
+ }
30
+ });