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
@@ -1,25 +1,24 @@
1
1
  'use strict';
2
2
  // https://github.com/tc39/proposal-observable
3
3
  var $ = require('../internals/export');
4
+ var DESCRIPTORS = require('../internals/descriptors');
4
5
  var setSpecies = require('../internals/set-species');
5
6
  var aFunction = require('../internals/a-function');
6
7
  var anObject = require('../internals/an-object');
7
8
  var isObject = require('../internals/is-object');
8
9
  var anInstance = require('../internals/an-instance');
10
+ var defineProperty = require('../internals/object-define-property').f;
11
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
9
12
  var redefineAll = require('../internals/redefine-all');
10
- var hide = require('../internals/hide');
11
13
  var getIterator = require('../internals/get-iterator');
12
14
  var iterate = require('../internals/iterate');
13
15
  var hostReportErrors = require('../internals/host-report-errors');
14
- var defineProperty = require('../internals/object-define-property').f;
15
- var InternalStateModule = require('../internals/internal-state');
16
16
  var wellKnownSymbol = require('../internals/well-known-symbol');
17
- var DESCRIPTORS = require('../internals/descriptors');
17
+ var InternalStateModule = require('../internals/internal-state');
18
18
 
19
19
  var OBSERVABLE = wellKnownSymbol('observable');
20
20
  var getInternalState = InternalStateModule.get;
21
21
  var setInternalState = InternalStateModule.set;
22
- var BREAK = iterate.BREAK;
23
22
 
24
23
  var getMethod = function (fn) {
25
24
  return fn == null ? undefined : aFunction(fn);
@@ -104,8 +103,8 @@ SubscriptionObserver.prototype = redefineAll({}, {
104
103
  if (!subscriptionClosed(subscriptionState)) {
105
104
  var observer = subscriptionState.observer;
106
105
  try {
107
- var m = getMethod(observer.next);
108
- if (m) m.call(observer, value);
106
+ var nextMethod = getMethod(observer.next);
107
+ if (nextMethod) nextMethod.call(observer, value);
109
108
  } catch (error) {
110
109
  hostReportErrors(error);
111
110
  }
@@ -118,8 +117,8 @@ SubscriptionObserver.prototype = redefineAll({}, {
118
117
  var observer = subscriptionState.observer;
119
118
  close(subscription, subscriptionState);
120
119
  try {
121
- var m = getMethod(observer.error);
122
- if (m) m.call(observer, value);
120
+ var errorMethod = getMethod(observer.error);
121
+ if (errorMethod) errorMethod.call(observer, value);
123
122
  else hostReportErrors(value);
124
123
  } catch (err) {
125
124
  hostReportErrors(err);
@@ -133,8 +132,8 @@ SubscriptionObserver.prototype = redefineAll({}, {
133
132
  var observer = subscriptionState.observer;
134
133
  close(subscription, subscriptionState);
135
134
  try {
136
- var m = getMethod(observer.complete);
137
- if (m) m.call(observer);
135
+ var completeMethod = getMethod(observer.complete);
136
+ if (completeMethod) completeMethod.call(observer);
138
137
  } catch (error) {
139
138
  hostReportErrors(error);
140
139
  } cleanupSubscription(subscriptionState);
@@ -156,11 +155,11 @@ var $Observable = function Observable(subscriber) {
156
155
 
157
156
  redefineAll($Observable.prototype, {
158
157
  subscribe: function subscribe(observer) {
159
- var argumentsLength = arguments.length;
158
+ var length = arguments.length;
160
159
  return new Subscription(typeof observer === 'function' ? {
161
160
  next: observer,
162
- error: argumentsLength > 1 ? arguments[1] : undefined,
163
- complete: argumentsLength > 2 ? arguments[2] : undefined
161
+ error: length > 1 ? arguments[1] : undefined,
162
+ complete: length > 2 ? arguments[2] : undefined
164
163
  } : isObject(observer) ? observer : {}, getInternalState(this).subscriber);
165
164
  }
166
165
  });
@@ -168,9 +167,9 @@ redefineAll($Observable.prototype, {
168
167
  redefineAll($Observable, {
169
168
  from: function from(x) {
170
169
  var C = typeof this === 'function' ? this : $Observable;
171
- var method = getMethod(anObject(x)[OBSERVABLE]);
172
- if (method) {
173
- var observable = anObject(method.call(x));
170
+ var observableMethod = getMethod(anObject(x)[OBSERVABLE]);
171
+ if (observableMethod) {
172
+ var observable = anObject(observableMethod.call(x));
174
173
  return observable.constructor === C ? observable : new C(function (observer) {
175
174
  return observable.subscribe(observer);
176
175
  });
@@ -179,25 +178,27 @@ redefineAll($Observable, {
179
178
  return new C(function (observer) {
180
179
  iterate(iterator, function (it) {
181
180
  observer.next(it);
182
- if (observer.closed) return BREAK;
181
+ if (observer.closed) return iterate.stop();
183
182
  }, undefined, false, true);
184
183
  observer.complete();
185
184
  });
186
185
  },
187
186
  of: function of() {
188
- for (var i = 0, argumentsLength = arguments.length, items = new Array(argumentsLength); i < argumentsLength;) {
189
- items[i] = arguments[i++];
190
- }
191
- return new (typeof this === 'function' ? this : $Observable)(function (observer) {
192
- for (var j = 0; j < items.length; ++j) {
193
- observer.next(items[j]);
187
+ var C = typeof this === 'function' ? this : $Observable;
188
+ var length = arguments.length;
189
+ var items = new Array(length);
190
+ var index = 0;
191
+ while (index < length) items[index] = arguments[index++];
192
+ return new C(function (observer) {
193
+ for (var i = 0; i < length; i++) {
194
+ observer.next(items[i]);
194
195
  if (observer.closed) return;
195
196
  } observer.complete();
196
197
  });
197
198
  }
198
199
  });
199
200
 
200
- hide($Observable.prototype, OBSERVABLE, function () { return this; });
201
+ createNonEnumerableProperty($Observable.prototype, OBSERVABLE, function () { return this; });
201
202
 
202
203
  $({ global: true }, {
203
204
  Observable: $Observable
@@ -1,43 +1,2 @@
1
- 'use strict';
2
- var $ = require('../internals/export');
3
- var aFunction = require('../internals/a-function');
4
- var newPromiseCapabilityModule = require('../internals/new-promise-capability');
5
- var perform = require('../internals/perform');
6
- var iterate = require('../internals/iterate');
7
-
8
- // `Promise.allSettled` method
9
- // https://github.com/tc39/proposal-promise-allSettled
10
- $({ target: 'Promise', stat: true }, {
11
- allSettled: function allSettled(iterable) {
12
- var C = this;
13
- var capability = newPromiseCapabilityModule.f(C);
14
- var resolve = capability.resolve;
15
- var reject = capability.reject;
16
- var result = perform(function () {
17
- var promiseResolve = aFunction(C.resolve);
18
- var values = [];
19
- var counter = 0;
20
- var remaining = 1;
21
- iterate(iterable, function (promise) {
22
- var index = counter++;
23
- var alreadyCalled = false;
24
- values.push(undefined);
25
- remaining++;
26
- promiseResolve.call(C, promise).then(function (value) {
27
- if (alreadyCalled) return;
28
- alreadyCalled = true;
29
- values[index] = { status: 'fulfilled', value: value };
30
- --remaining || resolve(values);
31
- }, function (e) {
32
- if (alreadyCalled) return;
33
- alreadyCalled = true;
34
- values[index] = { status: 'rejected', reason: e };
35
- --remaining || resolve(values);
36
- });
37
- });
38
- --remaining || resolve(values);
39
- });
40
- if (result.error) reject(result.value);
41
- return capability.promise;
42
- }
43
- });
1
+ // TODO: Remove from `core-js@4`
2
+ require('./es.promise.all-settled.js');
@@ -1,4 +1,5 @@
1
1
  var $ = require('../internals/export');
2
+ // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
2
3
  var Set = require('../modules/es.set');
3
4
  var ReflectMetadataModule = require('../internals/reflect-metadata');
4
5
  var anObject = require('../internals/an-object');
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
4
4
  var anObject = require('../internals/an-object');
5
5
  var bind = require('../internals/bind-context');
6
6
  var getSetIterator = require('../internals/get-set-iterator');
7
+ var iterate = require('../internals/iterate');
7
8
 
8
9
  // `Set.prototype.every` method
9
10
  // https://github.com/tc39/proposal-collection-methods
@@ -12,9 +13,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
12
13
  var set = anObject(this);
13
14
  var iterator = getSetIterator(set);
14
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
15
- var step, value;
16
- while (!(step = iterator.next()).done) {
17
- if (!boundFunction(value = step.value, value, set)) return false;
18
- } return true;
16
+ return !iterate(iterator, function (value) {
17
+ if (!boundFunction(value, value, set)) return iterate.stop();
18
+ }, undefined, false, true).stopped;
19
19
  }
20
20
  });
@@ -7,6 +7,7 @@ var aFunction = require('../internals/a-function');
7
7
  var bind = require('../internals/bind-context');
8
8
  var speciesConstructor = require('../internals/species-constructor');
9
9
  var getSetIterator = require('../internals/get-set-iterator');
10
+ var iterate = require('../internals/iterate');
10
11
 
11
12
  // `Set.prototype.filter` method
12
13
  // https://github.com/tc39/proposal-collection-methods
@@ -17,10 +18,9 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
17
18
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
18
19
  var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
19
20
  var adder = aFunction(newSet.add);
20
- var step, value;
21
- while (!(step = iterator.next()).done) {
22
- if (boundFunction(value = step.value, value, set)) adder.call(newSet, value);
23
- }
21
+ iterate(iterator, function (value) {
22
+ if (boundFunction(value, value, set)) adder.call(newSet, value);
23
+ }, undefined, false, true);
24
24
  return newSet;
25
25
  }
26
26
  });
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
4
4
  var anObject = require('../internals/an-object');
5
5
  var bind = require('../internals/bind-context');
6
6
  var getSetIterator = require('../internals/get-set-iterator');
7
+ var iterate = require('../internals/iterate');
7
8
 
8
9
  // `Set.prototype.find` method
9
10
  // https://github.com/tc39/proposal-collection-methods
@@ -12,9 +13,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
12
13
  var set = anObject(this);
13
14
  var iterator = getSetIterator(set);
14
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
15
- var step, value;
16
- while (!(step = iterator.next()).done) {
17
- if (boundFunction(value = step.value, value, set)) return value;
18
- }
16
+ return iterate(iterator, function (value) {
17
+ if (boundFunction(value, value, set)) return iterate.stop(value);
18
+ }, undefined, false, true).result;
19
19
  }
20
20
  });
@@ -5,16 +5,14 @@ var anObject = require('../internals/an-object');
5
5
  var aFunction = require('../internals/a-function');
6
6
  var iterate = require('../internals/iterate');
7
7
 
8
- var BREAK = iterate.BREAK;
9
-
10
8
  // `Set.prototype.isDisjointFrom` method
11
9
  // https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom
12
10
  $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
11
  isDisjointFrom: function isDisjointFrom(iterable) {
14
12
  var set = anObject(this);
15
13
  var hasCheck = aFunction(set.has);
16
- return iterate(iterable, function (value) {
17
- if (hasCheck.call(set, value) === true) return BREAK;
18
- }) !== BREAK;
14
+ return !iterate(iterable, function (value) {
15
+ if (hasCheck.call(set, value) === true) return iterate.stop();
16
+ }).stopped;
19
17
  }
20
18
  });
@@ -7,8 +7,6 @@ var aFunction = require('../internals/a-function');
7
7
  var getIterator = require('../internals/get-iterator');
8
8
  var iterate = require('../internals/iterate');
9
9
 
10
- var BREAK = iterate.BREAK;
11
-
12
10
  // `Set.prototype.isSubsetOf` method
13
11
  // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf
14
12
  $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
@@ -20,8 +18,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
20
18
  otherSet = new (getBuiltIn('Set'))(iterable);
21
19
  hasCheck = aFunction(otherSet.has);
22
20
  }
23
- return iterate(iterator, function (value) {
24
- if (hasCheck.call(otherSet, value) === false) return BREAK;
25
- }, undefined, false, true) !== BREAK;
21
+ return !iterate(iterator, function (value) {
22
+ if (hasCheck.call(otherSet, value) === false) return iterate.stop();
23
+ }, undefined, false, true).stopped;
26
24
  }
27
25
  });
@@ -5,16 +5,14 @@ var anObject = require('../internals/an-object');
5
5
  var aFunction = require('../internals/a-function');
6
6
  var iterate = require('../internals/iterate');
7
7
 
8
- var BREAK = iterate.BREAK;
9
-
10
8
  // `Set.prototype.isSupersetOf` method
11
9
  // https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf
12
10
  $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
13
11
  isSupersetOf: function isSupersetOf(iterable) {
14
12
  var set = anObject(this);
15
13
  var hasCheck = aFunction(set.has);
16
- return iterate(iterable, function (value) {
17
- if (hasCheck.call(set, value) === false) return BREAK;
18
- }) !== BREAK;
14
+ return !iterate(iterable, function (value) {
15
+ if (hasCheck.call(set, value) === false) return iterate.stop();
16
+ }).stopped;
19
17
  }
20
18
  });
@@ -3,6 +3,7 @@ var $ = require('../internals/export');
3
3
  var IS_PURE = require('../internals/is-pure');
4
4
  var anObject = require('../internals/an-object');
5
5
  var getSetIterator = require('../internals/get-set-iterator');
6
+ var iterate = require('../internals/iterate');
6
7
 
7
8
  // `Set.prototype.join` method
8
9
  // https://github.com/tc39/proposal-collection-methods
@@ -12,8 +13,7 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
12
13
  var iterator = getSetIterator(set);
13
14
  var sep = separator === undefined ? ',' : String(separator);
14
15
  var result = [];
15
- var step;
16
- while (!(step = iterator.next()).done) result.push(step.value);
16
+ iterate(iterator, result.push, result, false, true);
17
17
  return result.join(sep);
18
18
  }
19
19
  });
@@ -7,6 +7,7 @@ var aFunction = require('../internals/a-function');
7
7
  var bind = require('../internals/bind-context');
8
8
  var speciesConstructor = require('../internals/species-constructor');
9
9
  var getSetIterator = require('../internals/get-set-iterator');
10
+ var iterate = require('../internals/iterate');
10
11
 
11
12
  // `Set.prototype.map` method
12
13
  // https://github.com/tc39/proposal-collection-methods
@@ -17,10 +18,9 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
17
18
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
18
19
  var newSet = new (speciesConstructor(set, getBuiltIn('Set')))();
19
20
  var adder = aFunction(newSet.add);
20
- var step, value;
21
- while (!(step = iterator.next()).done) {
22
- adder.call(newSet, boundFunction(value = step.value, value, set));
23
- }
21
+ iterate(iterator, function (value) {
22
+ adder.call(newSet, boundFunction(value, value, set));
23
+ }, undefined, false, true);
24
24
  return newSet;
25
25
  }
26
26
  });
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
4
4
  var anObject = require('../internals/an-object');
5
5
  var aFunction = require('../internals/a-function');
6
6
  var getSetIterator = require('../internals/get-set-iterator');
7
+ var iterate = require('../internals/iterate');
7
8
 
8
9
  // `Set.prototype.reduce` method
9
10
  // https://github.com/tc39/proposal-collection-methods
@@ -11,17 +12,18 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
11
12
  reduce: function reduce(callbackfn /* , initialValue */) {
12
13
  var set = anObject(this);
13
14
  var iterator = getSetIterator(set);
14
- var accumulator, step, value;
15
+ var noInitial = arguments.length < 2;
16
+ var accumulator = noInitial ? undefined : arguments[1];
15
17
  aFunction(callbackfn);
16
- if (arguments.length > 1) accumulator = arguments[1];
17
- else {
18
- step = iterator.next();
19
- if (step.done) throw TypeError('Reduce of empty set with no initial value');
20
- accumulator = step.value;
21
- }
22
- while (!(step = iterator.next()).done) {
23
- accumulator = callbackfn(accumulator, value = step.value, value, set);
24
- }
18
+ iterate(iterator, function (value) {
19
+ if (noInitial) {
20
+ noInitial = false;
21
+ accumulator = value;
22
+ } else {
23
+ accumulator = callbackfn(accumulator, value, value, set);
24
+ }
25
+ }, undefined, false, true);
26
+ if (noInitial) throw TypeError('Reduce of empty set with no initial value');
25
27
  return accumulator;
26
28
  }
27
29
  });
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
4
4
  var anObject = require('../internals/an-object');
5
5
  var bind = require('../internals/bind-context');
6
6
  var getSetIterator = require('../internals/get-set-iterator');
7
+ var iterate = require('../internals/iterate');
7
8
 
8
9
  // `Set.prototype.some` method
9
10
  // https://github.com/tc39/proposal-collection-methods
@@ -12,9 +13,8 @@ $({ target: 'Set', proto: true, real: true, forced: IS_PURE }, {
12
13
  var set = anObject(this);
13
14
  var iterator = getSetIterator(set);
14
15
  var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
15
- var step, value;
16
- while (!(step = iterator.next()).done) {
17
- if (boundFunction(value = step.value, value, set)) return true;
18
- } return false;
16
+ return iterate(iterator, function (value) {
17
+ if (boundFunction(value, value, set)) return iterate.stop();
18
+ }, undefined, false, true).stopped;
19
19
  }
20
20
  });
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var codePointAt = require('../internals/string-at');
3
+ var charAt = require('../internals/string-multibyte').charAt;
4
4
 
5
5
  // `String.prototype.at` method
6
6
  // https://github.com/mathiasbynens/String.prototype.at
7
7
  $({ target: 'String', proto: true }, {
8
8
  at: function at(pos) {
9
- return codePointAt(this, pos, true);
9
+ return charAt(this, pos);
10
10
  }
11
11
  });
@@ -3,8 +3,10 @@ var $ = require('../internals/export');
3
3
  var createIteratorConstructor = require('../internals/create-iterator-constructor');
4
4
  var requireObjectCoercible = require('../internals/require-object-coercible');
5
5
  var InternalStateModule = require('../internals/internal-state');
6
- var codePointAt = require('../internals/string-at');
6
+ var StringMultibyteModule = require('../internals/string-multibyte');
7
7
 
8
+ var codeAt = StringMultibyteModule.codeAt;
9
+ var charAt = StringMultibyteModule.charAt;
8
10
  var STRING_ITERATOR = 'String Iterator';
9
11
  var setInternalState = InternalStateModule.set;
10
12
  var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
@@ -22,9 +24,9 @@ var $StringIterator = createIteratorConstructor(function StringIterator(string)
22
24
  var index = state.index;
23
25
  var point;
24
26
  if (index >= string.length) return { value: undefined, done: true };
25
- point = codePointAt(string, index, true);
27
+ point = charAt(string, index);
26
28
  state.index += point.length;
27
- return { value: { codePoint: codePointAt(point, 0), position: index }, done: false };
29
+ return { value: { codePoint: codeAt(point, 0), position: index }, done: false };
28
30
  });
29
31
 
30
32
  // `String.prototype.codePoints` method
@@ -1,3 +1,2 @@
1
1
  // TODO: Remove from `core-js@4`
2
- require('./es.symbol.match-all');
3
2
  require('./es.string.match-all');
@@ -1,38 +1,34 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var hide = require('../internals/hide');
4
3
  var requireObjectCoercible = require('../internals/require-object-coercible');
5
- var anObject = require('../internals/an-object');
6
4
  var isRegExp = require('../internals/is-regexp');
7
5
  var getRegExpFlags = require('../internals/regexp-flags');
8
- var speciesConstructor = require('../internals/species-constructor');
9
6
  var wellKnownSymbol = require('../internals/well-known-symbol');
10
7
  var IS_PURE = require('../internals/is-pure');
11
8
 
12
- var REPLACE_ALL = wellKnownSymbol('replaceAll');
9
+ var REPLACE = wellKnownSymbol('replace');
13
10
  var RegExpPrototype = RegExp.prototype;
14
11
 
15
- var $replaceAll = function (string, replaceValue) {
16
- var rx = anObject(this);
17
- var flags = String('flags' in RegExpPrototype ? rx.flags : getRegExpFlags.call(rx));
18
- if (!~flags.indexOf('g')) {
19
- rx = new (speciesConstructor(rx, RegExp))(rx.source, flags + 'g');
20
- }
21
- return String(string).replace(rx, replaceValue);
22
- };
23
-
24
12
  // `String.prototype.replaceAll` method
25
13
  // https://github.com/tc39/proposal-string-replace-all
26
14
  $({ target: 'String', proto: true }, {
27
15
  replaceAll: function replaceAll(searchValue, replaceValue) {
28
16
  var O = requireObjectCoercible(this);
29
- var replacer, string, searchString, template, result, i;
17
+ var IS_REG_EXP, flags, replacer, string, searchString, template, result, index;
30
18
  if (searchValue != null) {
31
- replacer = searchValue[REPLACE_ALL];
19
+ IS_REG_EXP = isRegExp(searchValue);
20
+ if (IS_REG_EXP) {
21
+ flags = String(requireObjectCoercible('flags' in RegExpPrototype
22
+ ? searchValue.flags
23
+ : getRegExpFlags.call(searchValue)
24
+ ));
25
+ if (!~flags.indexOf('g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
26
+ }
27
+ replacer = searchValue[REPLACE];
32
28
  if (replacer !== undefined) {
33
29
  return replacer.call(searchValue, O, replaceValue);
34
- } else if (IS_PURE && isRegExp(searchValue)) {
35
- return $replaceAll.call(searchValue, O, replaceValue);
30
+ } else if (IS_PURE && IS_REG_EXP) {
31
+ return String(O).replace(searchValue, replaceValue);
36
32
  }
37
33
  }
38
34
  string = String(O);
@@ -42,12 +38,10 @@ $({ target: 'String', proto: true }, {
42
38
  return template.join(String(replaceValue));
43
39
  }
44
40
  result = template[0];
45
- for (i = 1; i < template.length; i++) {
46
- result += String(replaceValue(searchString, i - 1, string));
47
- result += template[i];
41
+ for (index = 1; index < template.length; index++) {
42
+ result += String(replaceValue(searchString, index - 1, string));
43
+ result += template[index];
48
44
  }
49
45
  return result;
50
46
  }
51
47
  });
52
-
53
- IS_PURE || REPLACE_ALL in RegExpPrototype || hide(RegExpPrototype, REPLACE_ALL, $replaceAll);
@@ -0,0 +1,5 @@
1
+ var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
2
+
3
+ // `Symbol.asyncDispose` well-known symbol
4
+ // https://github.com/tc39/proposal-using-statement
5
+ defineWellKnownSymbol('asyncDispose');
@@ -1,5 +1,5 @@
1
1
  var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
2
2
 
3
- // `Symbol.patternMatch` well-known symbol
3
+ // `Symbol.dispose` well-known symbol
4
4
  // https://github.com/tc39/proposal-using-statement
5
5
  defineWellKnownSymbol('dispose');
@@ -1,5 +1,4 @@
1
+ // TODO: remove from `core-js@4`
1
2
  var defineWellKnownSymbol = require('../internals/define-well-known-symbol');
2
3
 
3
- // `Symbol.replaceAll` well-known symbol
4
- // https://tc39.github.io/proposal-string-replaceall/
5
4
  defineWellKnownSymbol('replaceAll');
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var IS_PURE = require('../internals/is-pure');
4
+ var $upsert = require('../internals/map-upsert');
5
+
6
+ // `WeakMap.prototype.upsert` method
7
+ // https://github.com/thumbsupep/proposal-upsert
8
+ $({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
9
+ upsert: $upsert
10
+ });
@@ -1,14 +1,14 @@
1
1
  var global = require('../internals/global');
2
2
  var DOMIterables = require('../internals/dom-iterables');
3
3
  var forEach = require('../internals/array-for-each');
4
- var hide = require('../internals/hide');
4
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
5
5
 
6
6
  for (var COLLECTION_NAME in DOMIterables) {
7
7
  var Collection = global[COLLECTION_NAME];
8
8
  var CollectionPrototype = Collection && Collection.prototype;
9
9
  // some Chrome versions have non-configurable methods on DOMTokenList
10
10
  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {
11
- hide(CollectionPrototype, 'forEach', forEach);
11
+ createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);
12
12
  } catch (error) {
13
13
  CollectionPrototype.forEach = forEach;
14
14
  }
@@ -1,7 +1,7 @@
1
1
  var global = require('../internals/global');
2
2
  var DOMIterables = require('../internals/dom-iterables');
3
3
  var ArrayIteratorMethods = require('../modules/es.array.iterator');
4
- var hide = require('../internals/hide');
4
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
5
5
  var wellKnownSymbol = require('../internals/well-known-symbol');
6
6
 
7
7
  var ITERATOR = wellKnownSymbol('iterator');
@@ -14,15 +14,17 @@ for (var COLLECTION_NAME in DOMIterables) {
14
14
  if (CollectionPrototype) {
15
15
  // some Chrome versions have non-configurable methods on DOMTokenList
16
16
  if (CollectionPrototype[ITERATOR] !== ArrayValues) try {
17
- hide(CollectionPrototype, ITERATOR, ArrayValues);
17
+ createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);
18
18
  } catch (error) {
19
19
  CollectionPrototype[ITERATOR] = ArrayValues;
20
20
  }
21
- if (!CollectionPrototype[TO_STRING_TAG]) hide(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
21
+ if (!CollectionPrototype[TO_STRING_TAG]) {
22
+ createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
23
+ }
22
24
  if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {
23
25
  // some Chrome versions have non-configurable methods on DOMTokenList
24
26
  if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {
25
- hide(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
27
+ createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
26
28
  } catch (error) {
27
29
  CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];
28
30
  }
@@ -3,7 +3,12 @@ var task = require('../internals/task');
3
3
 
4
4
  var FORCED = !global.setImmediate || !global.clearImmediate;
5
5
 
6
+ // http://w3c.github.io/setImmediate/
6
7
  require('../internals/export')({ global: true, bind: true, enumerable: true, forced: FORCED }, {
8
+ // `setImmediate` method
9
+ // http://w3c.github.io/setImmediate/#si-setImmediate
7
10
  setImmediate: task.set,
11
+ // `clearImmediate` method
12
+ // http://w3c.github.io/setImmediate/#si-clearImmediate
8
13
  clearImmediate: task.clear
9
14
  });