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
package/internals/uid.js CHANGED
@@ -2,5 +2,5 @@ var id = 0;
2
2
  var postfix = Math.random();
3
3
 
4
4
  module.exports = function (key) {
5
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + postfix).toString(36));
5
+ return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
6
6
  };
@@ -1,5 +1,3 @@
1
- var global = require('../internals/global');
1
+ var getBuiltIn = require('../internals/get-built-in');
2
2
 
3
- var navigator = global.navigator;
4
-
5
- module.exports = navigator && navigator.userAgent || '';
3
+ module.exports = getBuiltIn('navigator', 'userAgent') || '';
@@ -1,15 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var arrayMethods = require('../internals/array-methods');
3
+ var $every = require('../internals/array-iteration').every;
4
4
  var sloppyArrayMethod = require('../internals/sloppy-array-method');
5
5
 
6
- var internalEvery = arrayMethods(4);
7
- var SLOPPY_METHOD = sloppyArrayMethod('every');
8
-
9
6
  // `Array.prototype.every` method
10
7
  // https://tc39.github.io/ecma262/#sec-array.prototype.every
11
- $({ target: 'Array', proto: true, forced: SLOPPY_METHOD }, {
8
+ $({ target: 'Array', proto: true, forced: sloppyArrayMethod('every') }, {
12
9
  every: function every(callbackfn /* , thisArg */) {
13
- return internalEvery(this, callbackfn, arguments[1]);
10
+ return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
14
11
  }
15
12
  });
@@ -4,7 +4,9 @@ var addToUnscopables = require('../internals/add-to-unscopables');
4
4
 
5
5
  // `Array.prototype.fill` method
6
6
  // https://tc39.github.io/ecma262/#sec-array.prototype.fill
7
- $({ target: 'Array', proto: true }, { fill: fill });
7
+ $({ target: 'Array', proto: true }, {
8
+ fill: fill
9
+ });
8
10
 
9
11
  // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
10
12
  addToUnscopables('fill');
@@ -1,16 +1,13 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var arrayMethods = require('../internals/array-methods');
3
+ var $filter = require('../internals/array-iteration').filter;
4
4
  var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
5
5
 
6
- var internalFilter = arrayMethods(2);
7
- var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
8
-
9
6
  // `Array.prototype.filter` method
10
7
  // https://tc39.github.io/ecma262/#sec-array.prototype.filter
11
8
  // with adding support of @@species
12
- $({ target: 'Array', proto: true, forced: !SPECIES_SUPPORT }, {
9
+ $({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('filter') }, {
13
10
  filter: function filter(callbackfn /* , thisArg */) {
14
- return internalFilter(this, callbackfn, arguments[1]);
11
+ return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
15
12
  }
16
13
  });
@@ -1,9 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var arrayMethods = require('../internals/array-methods');
3
+ var $findIndex = require('../internals/array-iteration').findIndex;
4
4
  var addToUnscopables = require('../internals/add-to-unscopables');
5
5
 
6
- var internalFindIndex = arrayMethods(6);
7
6
  var FIND_INDEX = 'findIndex';
8
7
  var SKIPS_HOLES = true;
9
8
 
@@ -14,7 +13,7 @@ if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; })
14
13
  // https://tc39.github.io/ecma262/#sec-array.prototype.findindex
15
14
  $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
16
15
  findIndex: function findIndex(callbackfn /* , that = undefined */) {
17
- return internalFindIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
16
+ return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
18
17
  }
19
18
  });
20
19
 
@@ -1,9 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var arrayMethods = require('../internals/array-methods');
3
+ var $find = require('../internals/array-iteration').find;
4
4
  var addToUnscopables = require('../internals/add-to-unscopables');
5
5
 
6
- var internalFind = arrayMethods(5);
7
6
  var FIND = 'find';
8
7
  var SKIPS_HOLES = true;
9
8
 
@@ -14,7 +13,7 @@ if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
14
13
  // https://tc39.github.io/ecma262/#sec-array.prototype.find
15
14
  $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
16
15
  find: function find(callbackfn /* , that = undefined */) {
17
- return internalFind(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
16
+ return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
18
17
  }
19
18
  });
20
19
 
@@ -15,7 +15,7 @@ $({ target: 'Array', proto: true }, {
15
15
  var A;
16
16
  aFunction(callbackfn);
17
17
  A = arraySpeciesCreate(O, 0);
18
- A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);
18
+ A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
19
19
  return A;
20
20
  }
21
21
  });
@@ -10,7 +10,7 @@ var arraySpeciesCreate = require('../internals/array-species-create');
10
10
  // https://github.com/tc39/proposal-flatMap
11
11
  $({ target: 'Array', proto: true }, {
12
12
  flat: function flat(/* depthArg = 1 */) {
13
- var depthArg = arguments[0];
13
+ var depthArg = arguments.length ? arguments[0] : undefined;
14
14
  var O = toObject(this);
15
15
  var sourceLen = toLength(O.length);
16
16
  var A = arraySpeciesCreate(O, 0);
@@ -1,15 +1,13 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var arrayIncludes = require('../internals/array-includes');
3
+ var $includes = require('../internals/array-includes').includes;
4
4
  var addToUnscopables = require('../internals/add-to-unscopables');
5
5
 
6
- var internalIncludes = arrayIncludes(true);
7
-
8
6
  // `Array.prototype.includes` method
9
7
  // https://tc39.github.io/ecma262/#sec-array.prototype.includes
10
8
  $({ target: 'Array', proto: true }, {
11
9
  includes: function includes(el /* , fromIndex = 0 */) {
12
- return internalIncludes(this, el, arguments.length > 1 ? arguments[1] : undefined);
10
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
13
11
  }
14
12
  });
15
13
 
@@ -1,9 +1,8 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var $indexOf = require('../internals/array-includes').indexOf;
3
4
  var sloppyArrayMethod = require('../internals/sloppy-array-method');
4
- var arrayIncludes = require('../internals/array-includes');
5
5
 
6
- var internalIndexOf = arrayIncludes(false);
7
6
  var nativeIndexOf = [].indexOf;
8
7
 
9
8
  var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
@@ -16,6 +15,6 @@ $({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || SLOPPY_METHOD }, {
16
15
  return NEGATIVE_ZERO
17
16
  // convert -0 to +0
18
17
  ? nativeIndexOf.apply(this, arguments) || 0
19
- : internalIndexOf(this, searchElement, arguments[1]);
18
+ : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
20
19
  }
21
20
  });
@@ -3,4 +3,6 @@ var isArray = require('../internals/is-array');
3
3
 
4
4
  // `Array.isArray` method
5
5
  // https://tc39.github.io/ecma262/#sec-array.isarray
6
- $({ target: 'Array', stat: true }, { isArray: isArray });
6
+ $({ target: 'Array', stat: true }, {
7
+ isArray: isArray
8
+ });
@@ -1,16 +1,13 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var arrayMethods = require('../internals/array-methods');
3
+ var $map = require('../internals/array-iteration').map;
4
4
  var arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');
5
5
 
6
- var internalMap = arrayMethods(1);
7
- var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
8
-
9
6
  // `Array.prototype.map` method
10
7
  // https://tc39.github.io/ecma262/#sec-array.prototype.map
11
8
  // with adding support of @@species
12
- $({ target: 'Array', proto: true, forced: !SPECIES_SUPPORT }, {
9
+ $({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('map') }, {
13
10
  map: function map(callbackfn /* , thisArg */) {
14
- return internalMap(this, callbackfn, arguments[1]);
11
+ return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
15
12
  }
16
13
  });
@@ -1,13 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var internalReduce = require('../internals/array-reduce');
3
+ var $reduceRight = require('../internals/array-reduce').right;
4
4
  var sloppyArrayMethod = require('../internals/sloppy-array-method');
5
- var SLOPPY_METHOD = sloppyArrayMethod('reduceRight');
6
5
 
7
6
  // `Array.prototype.reduceRight` method
8
7
  // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
9
- $({ target: 'Array', proto: true, forced: SLOPPY_METHOD }, {
8
+ $({ target: 'Array', proto: true, forced: sloppyArrayMethod('reduceRight') }, {
10
9
  reduceRight: function reduceRight(callbackfn /* , initialValue */) {
11
- return internalReduce(this, callbackfn, arguments.length, arguments[1], true);
10
+ return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
12
11
  }
13
12
  });
@@ -1,14 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var internalReduce = require('../internals/array-reduce');
3
+ var $reduce = require('../internals/array-reduce').left;
4
4
  var sloppyArrayMethod = require('../internals/sloppy-array-method');
5
5
 
6
- var SLOPPY_METHOD = sloppyArrayMethod('reduce');
7
-
8
6
  // `Array.prototype.reduce` method
9
7
  // https://tc39.github.io/ecma262/#sec-array.prototype.reduce
10
- $({ target: 'Array', proto: true, forced: SLOPPY_METHOD }, {
8
+ $({ target: 'Array', proto: true, forced: sloppyArrayMethod('reduce') }, {
11
9
  reduce: function reduce(callbackfn /* , initialValue */) {
12
- return internalReduce(this, callbackfn, arguments.length, arguments[1], false);
10
+ return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
13
11
  }
14
12
  });
@@ -13,12 +13,10 @@ var SPECIES = wellKnownSymbol('species');
13
13
  var nativeSlice = [].slice;
14
14
  var max = Math.max;
15
15
 
16
- var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
17
-
18
16
  // `Array.prototype.slice` method
19
17
  // https://tc39.github.io/ecma262/#sec-array.prototype.slice
20
18
  // fallback for not array-like ES3 strings and DOM objects
21
- $({ target: 'Array', proto: true, forced: !SPECIES_SUPPORT }, {
19
+ $({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('slice') }, {
22
20
  slice: function slice(start, end) {
23
21
  var O = toIndexedObject(this);
24
22
  var length = toLength(O.length);
@@ -1,15 +1,12 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
- var arrayMethods = require('../internals/array-methods');
3
+ var $some = require('../internals/array-iteration').some;
4
4
  var sloppyArrayMethod = require('../internals/sloppy-array-method');
5
5
 
6
- var internalSome = arrayMethods(3);
7
- var SLOPPY_METHOD = sloppyArrayMethod('some');
8
-
9
6
  // `Array.prototype.some` method
10
7
  // https://tc39.github.io/ecma262/#sec-array.prototype.some
11
- $({ target: 'Array', proto: true, forced: SLOPPY_METHOD }, {
8
+ $({ target: 'Array', proto: true, forced: sloppyArrayMethod('some') }, {
12
9
  some: function some(callbackfn /* , thisArg */) {
13
- return internalSome(this, callbackfn, arguments[1]);
10
+ return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
14
11
  }
15
12
  });
@@ -13,12 +13,10 @@ var min = Math.min;
13
13
  var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
14
14
  var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
15
15
 
16
- var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');
17
-
18
16
  // `Array.prototype.splice` method
19
17
  // https://tc39.github.io/ecma262/#sec-array.prototype.splice
20
18
  // with adding support of @@species
21
- $({ target: 'Array', proto: true, forced: !SPECIES_SUPPORT }, {
19
+ $({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('splice') }, {
22
20
  splice: function splice(start, deleteCount /* , ...items */) {
23
21
  var O = toObject(this);
24
22
  var len = toLength(O.length);
@@ -1,4 +1,4 @@
1
- var hide = require('../internals/hide');
1
+ var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
2
2
  var dateToPrimitive = require('../internals/date-to-primitive');
3
3
  var wellKnownSymbol = require('../internals/well-known-symbol');
4
4
 
@@ -7,4 +7,6 @@ var DatePrototype = Date.prototype;
7
7
 
8
8
  // `Date.prototype[@@toPrimitive]` method
9
9
  // https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive
10
- if (!(TO_PRIMITIVE in DatePrototype)) hide(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
10
+ if (!(TO_PRIMITIVE in DatePrototype)) {
11
+ createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
12
+ }
@@ -0,0 +1,8 @@
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 }, {
7
+ globalThis: global
8
+ });
package/modules/es.map.js CHANGED
@@ -5,5 +5,5 @@ var collectionStrong = require('../internals/collection-strong');
5
5
  // `Map` constructor
6
6
  // https://tc39.github.io/ecma262/#sec-map-objects
7
7
  module.exports = collection('Map', function (get) {
8
- return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
8
+ return function Map() { return get(this, arguments.length ? arguments[0] : undefined); };
9
9
  }, collectionStrong, true);
@@ -1,11 +1,16 @@
1
1
  var $ = require('../internals/export');
2
2
 
3
+ var $hypot = Math.hypot;
3
4
  var abs = Math.abs;
4
5
  var sqrt = Math.sqrt;
5
6
 
7
+ // Chrome 77 bug
8
+ // https://bugs.chromium.org/p/v8/issues/detail?id=9546
9
+ var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;
10
+
6
11
  // `Math.hypot` method
7
12
  // https://tc39.github.io/ecma262/#sec-math.hypot
8
- $({ target: 'Math', stat: true }, {
13
+ $({ target: 'Math', stat: true, forced: BUGGY }, {
9
14
  hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
10
15
  var sum = 0;
11
16
  var i = 0;
@@ -12,7 +12,7 @@ var create = require('../internals/object-create');
12
12
  var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
13
13
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
14
14
  var defineProperty = require('../internals/object-define-property').f;
15
- var internalStringTrim = require('../internals/string-trim');
15
+ var trim = require('../internals/string-trim').trim;
16
16
 
17
17
  var NUMBER = 'Number';
18
18
  var NativeNumber = global[NUMBER];
@@ -20,15 +20,14 @@ var NumberPrototype = NativeNumber.prototype;
20
20
 
21
21
  // Opera ~12 has broken Object#toString
22
22
  var BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;
23
- var NATIVE_TRIM = 'trim' in String.prototype;
24
23
 
25
24
  // `ToNumber` abstract operation
26
25
  // https://tc39.github.io/ecma262/#sec-tonumber
27
26
  var toNumber = function (argument) {
28
27
  var it = toPrimitive(argument, false);
29
- var first, third, radix, maxCode, digits, length, i, code;
28
+ var first, third, radix, maxCode, digits, length, index, code;
30
29
  if (typeof it == 'string' && it.length > 2) {
31
- it = NATIVE_TRIM ? it.trim() : internalStringTrim(it, 3);
30
+ it = trim(it);
32
31
  first = it.charCodeAt(0);
33
32
  if (first === 43 || first === 45) {
34
33
  third = it.charCodeAt(2);
@@ -41,8 +40,8 @@ var toNumber = function (argument) {
41
40
  }
42
41
  digits = it.slice(2);
43
42
  length = digits.length;
44
- for (i = 0; i < length; i++) {
45
- code = digits.charCodeAt(i);
43
+ for (index = 0; index < length; index++) {
44
+ code = digits.charCodeAt(index);
46
45
  // parseInt parses a string to a first unavailable symbol
47
46
  // but ToNumber should return NaN if a string contains unavailable symbols
48
47
  if (code < 48 || code > maxCode) return NaN;
@@ -56,11 +55,11 @@ var toNumber = function (argument) {
56
55
  if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {
57
56
  var NumberWrapper = function Number(value) {
58
57
  var it = arguments.length < 1 ? 0 : value;
59
- var that = this;
60
- return that instanceof NumberWrapper
58
+ var dummy = this;
59
+ return dummy instanceof NumberWrapper
61
60
  // check on 1..constructor(foo) case
62
- && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(that); }) : classof(that) != NUMBER)
63
- ? inheritIfRequired(new NativeNumber(toNumber(it)), that, NumberWrapper) : toNumber(it);
61
+ && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)
62
+ ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);
64
63
  };
65
64
  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (
66
65
  // ES3:
@@ -7,38 +7,6 @@ var fails = require('../internals/fails');
7
7
 
8
8
  var nativeToFixed = 1.0.toFixed;
9
9
  var floor = Math.floor;
10
- var data = [0, 0, 0, 0, 0, 0];
11
-
12
- var multiply = function (n, c) {
13
- var i = -1;
14
- var c2 = c;
15
- while (++i < 6) {
16
- c2 += n * data[i];
17
- data[i] = c2 % 1e7;
18
- c2 = floor(c2 / 1e7);
19
- }
20
- };
21
-
22
- var divide = function (n) {
23
- var i = 6;
24
- var c = 0;
25
- while (--i >= 0) {
26
- c += data[i];
27
- data[i] = floor(c / n);
28
- c = (c % n) * 1e7;
29
- }
30
- };
31
-
32
- var numToString = function () {
33
- var i = 6;
34
- var s = '';
35
- while (--i >= 0) {
36
- if (s !== '' || i === 0 || data[i] !== 0) {
37
- var t = String(data[i]);
38
- s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;
39
- }
40
- } return s;
41
- };
42
10
 
43
11
  var pow = function (x, n, acc) {
44
12
  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
@@ -70,28 +38,62 @@ var FORCED = nativeToFixed && (
70
38
  // `Number.prototype.toFixed` method
71
39
  // https://tc39.github.io/ecma262/#sec-number.prototype.tofixed
72
40
  $({ target: 'Number', proto: true, forced: FORCED }, {
41
+ // eslint-disable-next-line max-statements
73
42
  toFixed: function toFixed(fractionDigits) {
74
- var x = thisNumberValue(this);
75
- var f = toInteger(fractionDigits);
76
- var s = '';
77
- var m = '0';
43
+ var number = thisNumberValue(this);
44
+ var fractDigits = toInteger(fractionDigits);
45
+ var data = [0, 0, 0, 0, 0, 0];
46
+ var sign = '';
47
+ var result = '0';
78
48
  var e, z, j, k;
79
- if (f < 0 || f > 20) throw RangeError('Incorrect fraction digits');
49
+
50
+ var multiply = function (n, c) {
51
+ var index = -1;
52
+ var c2 = c;
53
+ while (++index < 6) {
54
+ c2 += n * data[index];
55
+ data[index] = c2 % 1e7;
56
+ c2 = floor(c2 / 1e7);
57
+ }
58
+ };
59
+
60
+ var divide = function (n) {
61
+ var index = 6;
62
+ var c = 0;
63
+ while (--index >= 0) {
64
+ c += data[index];
65
+ data[index] = floor(c / n);
66
+ c = (c % n) * 1e7;
67
+ }
68
+ };
69
+
70
+ var dataToString = function () {
71
+ var index = 6;
72
+ var s = '';
73
+ while (--index >= 0) {
74
+ if (s !== '' || index === 0 || data[index] !== 0) {
75
+ var t = String(data[index]);
76
+ s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;
77
+ }
78
+ } return s;
79
+ };
80
+
81
+ if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');
80
82
  // eslint-disable-next-line no-self-compare
81
- if (x != x) return 'NaN';
82
- if (x <= -1e21 || x >= 1e21) return String(x);
83
- if (x < 0) {
84
- s = '-';
85
- x = -x;
83
+ if (number != number) return 'NaN';
84
+ if (number <= -1e21 || number >= 1e21) return String(number);
85
+ if (number < 0) {
86
+ sign = '-';
87
+ number = -number;
86
88
  }
87
- if (x > 1e-21) {
88
- e = log(x * pow(2, 69, 1)) - 69;
89
- z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
89
+ if (number > 1e-21) {
90
+ e = log(number * pow(2, 69, 1)) - 69;
91
+ z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);
90
92
  z *= 0x10000000000000;
91
93
  e = 52 - e;
92
94
  if (e > 0) {
93
95
  multiply(0, z);
94
- j = f;
96
+ j = fractDigits;
95
97
  while (j >= 7) {
96
98
  multiply(1e7, 0);
97
99
  j -= 7;
@@ -105,18 +107,20 @@ $({ target: 'Number', proto: true, forced: FORCED }, {
105
107
  divide(1 << j);
106
108
  multiply(1, 1);
107
109
  divide(2);
108
- m = numToString();
110
+ result = dataToString();
109
111
  } else {
110
112
  multiply(0, z);
111
113
  multiply(1 << -e, 0);
112
- m = numToString() + repeat.call('0', f);
114
+ result = dataToString() + repeat.call('0', fractDigits);
113
115
  }
114
116
  }
115
- if (f > 0) {
116
- k = m.length;
117
- m = s + (k <= f ? '0.' + repeat.call('0', f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
117
+ if (fractDigits > 0) {
118
+ k = result.length;
119
+ result = sign + (k <= fractDigits
120
+ ? '0.' + repeat.call('0', fractDigits - k) + result
121
+ : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));
118
122
  } else {
119
- m = s + m;
120
- } return m;
123
+ result = sign + result;
124
+ } return result;
121
125
  }
122
126
  });
@@ -1,10 +1,10 @@
1
1
  var $ = require('../internals/export');
2
- var objectToArray = require('../internals/object-to-array');
2
+ var $entries = require('../internals/object-to-array').entries;
3
3
 
4
4
  // `Object.entries` method
5
5
  // https://tc39.github.io/ecma262/#sec-object.entries
6
6
  $({ target: 'Object', stat: true }, {
7
7
  entries: function entries(O) {
8
- return objectToArray(O, true);
8
+ return $entries(O);
9
9
  }
10
10
  });
@@ -13,10 +13,10 @@ $({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
13
13
  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
14
14
  var keys = ownKeys(O);
15
15
  var result = {};
16
- var i = 0;
16
+ var index = 0;
17
17
  var key, descriptor;
18
- while (keys.length > i) {
19
- descriptor = getOwnPropertyDescriptor(O, key = keys[i++]);
18
+ while (keys.length > index) {
19
+ descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);
20
20
  if (descriptor !== undefined) createProperty(result, key, descriptor);
21
21
  }
22
22
  return result;
@@ -3,6 +3,7 @@ var fails = require('../internals/fails');
3
3
  var toObject = require('../internals/to-object');
4
4
  var nativeGetPrototypeOf = require('../internals/object-get-prototype-of');
5
5
  var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
6
+
6
7
  var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });
7
8
 
8
9
  // `Object.getPrototypeOf` method
@@ -1,10 +1,10 @@
1
1
  var $ = require('../internals/export');
2
- var objectToArray = require('../internals/object-to-array');
2
+ var $values = require('../internals/object-to-array').values;
3
3
 
4
4
  // `Object.values` method
5
5
  // https://tc39.github.io/ecma262/#sec-object.values
6
6
  $({ target: 'Object', stat: true }, {
7
7
  values: function values(O) {
8
- return objectToArray(O);
8
+ return $values(O);
9
9
  }
10
10
  });
@@ -0,0 +1,43 @@
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
+ });