core-js-pure 3.1.2 → 3.2.1

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 (727) hide show
  1. package/README.md +3 -3
  2. package/es/array/concat.js +2 -1
  3. package/es/array/copy-within.js +2 -1
  4. package/es/array/entries.js +2 -1
  5. package/es/array/every.js +2 -1
  6. package/es/array/fill.js +2 -1
  7. package/es/array/filter.js +2 -1
  8. package/es/array/find-index.js +2 -1
  9. package/es/array/find.js +2 -1
  10. package/es/array/flat-map.js +2 -1
  11. package/es/array/flat.js +2 -1
  12. package/es/array/for-each.js +2 -1
  13. package/es/array/from.js +2 -1
  14. package/es/array/includes.js +2 -1
  15. package/es/array/index-of.js +2 -1
  16. package/es/array/index.js +2 -1
  17. package/es/array/is-array.js +2 -1
  18. package/es/array/iterator.js +2 -1
  19. package/es/array/join.js +2 -1
  20. package/es/array/keys.js +2 -1
  21. package/es/array/last-index-of.js +2 -1
  22. package/es/array/map.js +2 -1
  23. package/es/array/of.js +2 -1
  24. package/es/array/reduce-right.js +2 -1
  25. package/es/array/reduce.js +2 -1
  26. package/es/array/reverse.js +2 -1
  27. package/es/array/slice.js +2 -1
  28. package/es/array/some.js +2 -1
  29. package/es/array/sort.js +2 -1
  30. package/es/array/splice.js +2 -1
  31. package/es/array/values.js +2 -1
  32. package/es/array/virtual/concat.js +2 -1
  33. package/es/array/virtual/copy-within.js +2 -1
  34. package/es/array/virtual/entries.js +2 -1
  35. package/es/array/virtual/every.js +2 -1
  36. package/es/array/virtual/fill.js +2 -1
  37. package/es/array/virtual/filter.js +2 -1
  38. package/es/array/virtual/find-index.js +2 -1
  39. package/es/array/virtual/find.js +2 -1
  40. package/es/array/virtual/flat-map.js +2 -1
  41. package/es/array/virtual/flat.js +2 -1
  42. package/es/array/virtual/for-each.js +2 -1
  43. package/es/array/virtual/includes.js +2 -1
  44. package/es/array/virtual/index-of.js +2 -1
  45. package/es/array/virtual/index.js +2 -1
  46. package/es/array/virtual/iterator.js +2 -1
  47. package/es/array/virtual/join.js +2 -1
  48. package/es/array/virtual/keys.js +2 -1
  49. package/es/array/virtual/last-index-of.js +2 -1
  50. package/es/array/virtual/map.js +2 -1
  51. package/es/array/virtual/reduce-right.js +2 -1
  52. package/es/array/virtual/reduce.js +2 -1
  53. package/es/array/virtual/reverse.js +2 -1
  54. package/es/array/virtual/slice.js +2 -1
  55. package/es/array/virtual/some.js +2 -1
  56. package/es/array/virtual/sort.js +2 -1
  57. package/es/array/virtual/splice.js +2 -1
  58. package/es/array/virtual/values.js +2 -1
  59. package/es/array-buffer/constructor.js +2 -1
  60. package/es/array-buffer/index.js +2 -1
  61. package/es/array-buffer/is-view.js +2 -1
  62. package/es/data-view/index.js +2 -1
  63. package/es/date/index.js +2 -1
  64. package/es/date/now.js +2 -1
  65. package/es/date/to-iso-string.js +2 -1
  66. package/es/date/to-json.js +2 -1
  67. package/es/function/bind.js +2 -1
  68. package/es/function/has-instance.js +2 -1
  69. package/es/function/index.js +2 -1
  70. package/es/function/virtual/bind.js +2 -1
  71. package/es/function/virtual/index.js +2 -1
  72. package/es/index.js +1 -0
  73. package/es/instance/bind.js +1 -0
  74. package/es/instance/code-point-at.js +1 -0
  75. package/es/instance/concat.js +1 -0
  76. package/es/instance/copy-within.js +1 -0
  77. package/es/instance/ends-with.js +1 -0
  78. package/es/instance/entries.js +1 -0
  79. package/es/instance/every.js +1 -0
  80. package/es/instance/fill.js +1 -0
  81. package/es/instance/filter.js +1 -0
  82. package/es/instance/find-index.js +1 -0
  83. package/es/instance/find.js +1 -0
  84. package/es/instance/flags.js +1 -0
  85. package/es/instance/flat-map.js +1 -0
  86. package/es/instance/flat.js +1 -0
  87. package/es/instance/for-each.js +1 -0
  88. package/es/instance/includes.js +1 -0
  89. package/es/instance/index-of.js +1 -0
  90. package/es/instance/keys.js +1 -0
  91. package/es/instance/last-index-of.js +1 -0
  92. package/es/instance/map.js +1 -0
  93. package/es/instance/match-all.js +1 -0
  94. package/es/instance/pad-end.js +1 -0
  95. package/es/instance/pad-start.js +1 -0
  96. package/es/instance/reduce-right.js +1 -0
  97. package/es/instance/reduce.js +1 -0
  98. package/es/instance/repeat.js +1 -0
  99. package/es/instance/reverse.js +1 -0
  100. package/es/instance/slice.js +1 -0
  101. package/es/instance/some.js +1 -0
  102. package/es/instance/sort.js +1 -0
  103. package/es/instance/splice.js +1 -0
  104. package/es/instance/starts-with.js +1 -0
  105. package/es/instance/trim-end.js +1 -0
  106. package/es/instance/trim-left.js +1 -0
  107. package/es/instance/trim-right.js +1 -0
  108. package/es/instance/trim-start.js +1 -0
  109. package/es/instance/trim.js +1 -0
  110. package/es/instance/values.js +1 -0
  111. package/es/json/index.js +0 -1
  112. package/es/map/index.js +2 -1
  113. package/es/math/acosh.js +2 -1
  114. package/es/math/asinh.js +2 -1
  115. package/es/math/atanh.js +2 -1
  116. package/es/math/cbrt.js +2 -1
  117. package/es/math/clz32.js +2 -1
  118. package/es/math/cosh.js +2 -1
  119. package/es/math/expm1.js +2 -1
  120. package/es/math/fround.js +2 -1
  121. package/es/math/hypot.js +2 -1
  122. package/es/math/imul.js +2 -1
  123. package/es/math/index.js +2 -1
  124. package/es/math/log10.js +2 -1
  125. package/es/math/log1p.js +2 -1
  126. package/es/math/log2.js +2 -1
  127. package/es/math/sign.js +2 -1
  128. package/es/math/sinh.js +2 -1
  129. package/es/math/tanh.js +2 -1
  130. package/es/math/trunc.js +2 -1
  131. package/es/number/index.js +2 -1
  132. package/es/number/is-finite.js +2 -1
  133. package/es/number/is-integer.js +2 -1
  134. package/es/number/is-nan.js +2 -1
  135. package/es/number/is-safe-integer.js +2 -1
  136. package/es/number/parse-float.js +2 -1
  137. package/es/number/parse-int.js +2 -1
  138. package/es/number/to-fixed.js +2 -1
  139. package/es/number/to-precision.js +2 -1
  140. package/es/number/virtual/index.js +2 -1
  141. package/es/number/virtual/to-fixed.js +2 -1
  142. package/es/number/virtual/to-precision.js +2 -1
  143. package/es/object/assign.js +2 -1
  144. package/es/object/create.js +3 -1
  145. package/es/object/define-getter.js +2 -1
  146. package/es/object/define-properties.js +3 -1
  147. package/es/object/define-property.js +3 -1
  148. package/es/object/define-setter.js +2 -1
  149. package/es/object/entries.js +2 -1
  150. package/es/object/freeze.js +2 -1
  151. package/es/object/from-entries.js +2 -1
  152. package/es/object/get-own-property-descriptor.js +3 -1
  153. package/es/object/get-own-property-descriptors.js +2 -1
  154. package/es/object/get-own-property-names.js +3 -1
  155. package/es/object/get-own-property-symbols.js +2 -1
  156. package/es/object/get-prototype-of.js +2 -1
  157. package/es/object/index.js +2 -1
  158. package/es/object/is-extensible.js +2 -1
  159. package/es/object/is-frozen.js +2 -1
  160. package/es/object/is-sealed.js +2 -1
  161. package/es/object/is.js +2 -1
  162. package/es/object/keys.js +2 -1
  163. package/es/object/lookup-getter.js +2 -1
  164. package/es/object/lookup-setter.js +2 -1
  165. package/es/object/prevent-extensions.js +2 -1
  166. package/es/object/seal.js +2 -1
  167. package/es/object/set-prototype-of.js +2 -1
  168. package/es/object/values.js +2 -1
  169. package/es/parse-float.js +2 -1
  170. package/es/parse-int.js +2 -1
  171. package/es/promise/all-settled.js +11 -0
  172. package/es/promise/finally.js +2 -1
  173. package/es/promise/index.js +3 -1
  174. package/es/reflect/apply.js +2 -1
  175. package/es/reflect/construct.js +2 -1
  176. package/es/reflect/define-property.js +2 -1
  177. package/es/reflect/delete-property.js +2 -1
  178. package/es/reflect/get-own-property-descriptor.js +2 -1
  179. package/es/reflect/get-prototype-of.js +2 -1
  180. package/es/reflect/get.js +2 -1
  181. package/es/reflect/has.js +2 -1
  182. package/es/reflect/index.js +2 -1
  183. package/es/reflect/is-extensible.js +2 -1
  184. package/es/reflect/own-keys.js +2 -1
  185. package/es/reflect/prevent-extensions.js +2 -1
  186. package/es/reflect/set-prototype-of.js +2 -1
  187. package/es/reflect/set.js +2 -1
  188. package/es/regexp/match.js +3 -1
  189. package/es/regexp/replace.js +3 -1
  190. package/es/regexp/search.js +3 -1
  191. package/es/regexp/split.js +3 -1
  192. package/es/set/index.js +2 -1
  193. package/es/string/anchor.js +2 -1
  194. package/es/string/big.js +2 -1
  195. package/es/string/blink.js +2 -1
  196. package/es/string/bold.js +2 -1
  197. package/es/string/code-point-at.js +2 -1
  198. package/es/string/ends-with.js +2 -1
  199. package/es/string/fixed.js +2 -1
  200. package/es/string/fontcolor.js +2 -1
  201. package/es/string/fontsize.js +2 -1
  202. package/es/string/from-code-point.js +2 -1
  203. package/es/string/includes.js +2 -1
  204. package/es/string/index.js +2 -1
  205. package/es/string/italics.js +2 -1
  206. package/es/string/iterator.js +3 -1
  207. package/es/string/link.js +2 -1
  208. package/es/string/match-all.js +2 -1
  209. package/es/string/match.js +2 -1
  210. package/es/string/pad-end.js +2 -1
  211. package/es/string/pad-start.js +2 -1
  212. package/es/string/raw.js +2 -1
  213. package/es/string/repeat.js +2 -1
  214. package/es/string/replace.js +2 -1
  215. package/es/string/search.js +2 -1
  216. package/es/string/small.js +2 -1
  217. package/es/string/split.js +2 -1
  218. package/es/string/starts-with.js +2 -1
  219. package/es/string/strike.js +2 -1
  220. package/es/string/sub.js +2 -1
  221. package/es/string/sup.js +2 -1
  222. package/es/string/trim-end.js +2 -1
  223. package/es/string/trim-left.js +2 -1
  224. package/es/string/trim-right.js +2 -1
  225. package/es/string/trim-start.js +2 -1
  226. package/es/string/trim.js +2 -1
  227. package/es/string/virtual/anchor.js +2 -1
  228. package/es/string/virtual/big.js +2 -1
  229. package/es/string/virtual/blink.js +2 -1
  230. package/es/string/virtual/bold.js +2 -1
  231. package/es/string/virtual/code-point-at.js +2 -1
  232. package/es/string/virtual/ends-with.js +2 -1
  233. package/es/string/virtual/fixed.js +2 -1
  234. package/es/string/virtual/fontcolor.js +2 -1
  235. package/es/string/virtual/fontsize.js +2 -1
  236. package/es/string/virtual/includes.js +2 -1
  237. package/es/string/virtual/index.js +2 -1
  238. package/es/string/virtual/italics.js +2 -1
  239. package/es/string/virtual/iterator.js +2 -1
  240. package/es/string/virtual/link.js +2 -1
  241. package/es/string/virtual/match-all.js +2 -1
  242. package/es/string/virtual/pad-end.js +2 -1
  243. package/es/string/virtual/pad-start.js +2 -1
  244. package/es/string/virtual/repeat.js +2 -1
  245. package/es/string/virtual/small.js +2 -1
  246. package/es/string/virtual/starts-with.js +2 -1
  247. package/es/string/virtual/strike.js +2 -1
  248. package/es/string/virtual/sub.js +2 -1
  249. package/es/string/virtual/sup.js +2 -1
  250. package/es/string/virtual/trim-end.js +2 -1
  251. package/es/string/virtual/trim-left.js +2 -1
  252. package/es/string/virtual/trim-right.js +2 -1
  253. package/es/string/virtual/trim-start.js +2 -1
  254. package/es/string/virtual/trim.js +2 -1
  255. package/es/symbol/async-iterator.js +2 -1
  256. package/es/symbol/for.js +2 -1
  257. package/es/symbol/has-instance.js +2 -1
  258. package/es/symbol/index.js +2 -1
  259. package/es/symbol/is-concat-spreadable.js +2 -1
  260. package/es/symbol/iterator.js +2 -1
  261. package/es/symbol/key-for.js +2 -1
  262. package/es/symbol/match-all.js +2 -1
  263. package/es/symbol/match.js +2 -1
  264. package/es/symbol/replace.js +2 -1
  265. package/es/symbol/search.js +2 -1
  266. package/es/symbol/species.js +3 -1
  267. package/es/symbol/split.js +2 -1
  268. package/es/symbol/to-primitive.js +2 -1
  269. package/es/symbol/to-string-tag.js +2 -1
  270. package/es/symbol/unscopables.js +2 -1
  271. package/es/typed-array/float32-array.js +2 -1
  272. package/es/typed-array/float64-array.js +2 -1
  273. package/es/typed-array/int16-array.js +2 -1
  274. package/es/typed-array/int32-array.js +2 -1
  275. package/es/typed-array/int8-array.js +2 -1
  276. package/es/typed-array/uint16-array.js +2 -1
  277. package/es/typed-array/uint32-array.js +2 -1
  278. package/es/typed-array/uint8-array.js +2 -1
  279. package/es/typed-array/uint8-clamped-array.js +2 -1
  280. package/es/weak-map/index.js +2 -1
  281. package/es/weak-set/index.js +2 -1
  282. package/features/aggregate-error.js +2 -1
  283. package/features/array/index.js +1 -0
  284. package/features/array/is-template-object.js +4 -0
  285. package/features/composite-key.js +2 -1
  286. package/features/composite-symbol.js +2 -1
  287. package/features/dom-collections/for-each.js +1 -3
  288. package/features/dom-collections/index.js +1 -11
  289. package/features/dom-collections/iterator.js +1 -3
  290. package/features/global-this.js +1 -1
  291. package/features/instance/at.js +1 -0
  292. package/features/instance/code-points.js +1 -0
  293. package/features/instance/replace-all.js +1 -0
  294. package/features/map/delete-all.js +2 -1
  295. package/features/map/every.js +2 -1
  296. package/features/map/filter.js +2 -1
  297. package/features/map/find-key.js +2 -1
  298. package/features/map/find.js +2 -1
  299. package/features/map/from.js +5 -1
  300. package/features/map/group-by.js +3 -1
  301. package/features/map/includes.js +2 -1
  302. package/features/map/index.js +1 -0
  303. package/features/map/key-by.js +3 -1
  304. package/features/map/key-of.js +2 -1
  305. package/features/map/map-keys.js +2 -1
  306. package/features/map/map-values.js +2 -1
  307. package/features/map/merge.js +2 -1
  308. package/features/map/of.js +5 -1
  309. package/features/map/reduce.js +2 -1
  310. package/features/map/some.js +2 -1
  311. package/features/map/update-or-insert.js +5 -0
  312. package/features/map/update.js +2 -1
  313. package/features/math/clamp.js +2 -1
  314. package/features/math/degrees.js +2 -1
  315. package/features/math/fscale.js +2 -1
  316. package/features/math/iaddh.js +2 -1
  317. package/features/math/imulh.js +2 -1
  318. package/features/math/isubh.js +2 -1
  319. package/features/math/radians.js +2 -1
  320. package/features/math/scale.js +2 -1
  321. package/features/math/seeded-prng.js +2 -1
  322. package/features/math/signbit.js +2 -1
  323. package/features/math/umulh.js +2 -1
  324. package/features/number/from-string.js +2 -1
  325. package/features/observable/index.js +2 -1
  326. package/features/promise/all-settled.js +2 -7
  327. package/features/promise/any.js +3 -1
  328. package/features/promise/index.js +1 -0
  329. package/features/promise/try.js +3 -1
  330. package/features/reflect/define-metadata.js +2 -1
  331. package/features/reflect/delete-metadata.js +4 -1
  332. package/features/reflect/get-metadata-keys.js +2 -1
  333. package/features/reflect/get-metadata.js +2 -1
  334. package/features/reflect/get-own-metadata-keys.js +2 -1
  335. package/features/reflect/get-own-metadata.js +2 -1
  336. package/features/reflect/has-metadata.js +2 -1
  337. package/features/reflect/has-own-metadata.js +2 -1
  338. package/features/reflect/metadata.js +2 -1
  339. package/features/set/add-all.js +2 -1
  340. package/features/set/delete-all.js +2 -1
  341. package/features/set/difference.js +4 -1
  342. package/features/set/every.js +2 -1
  343. package/features/set/filter.js +2 -1
  344. package/features/set/find.js +2 -1
  345. package/features/set/from.js +5 -1
  346. package/features/set/intersection.js +2 -1
  347. package/features/set/is-disjoint-from.js +2 -1
  348. package/features/set/is-subset-of.js +4 -1
  349. package/features/set/is-superset-of.js +2 -1
  350. package/features/set/join.js +2 -1
  351. package/features/set/map.js +2 -1
  352. package/features/set/of.js +5 -1
  353. package/features/set/reduce.js +2 -1
  354. package/features/set/some.js +2 -1
  355. package/features/set/symmetric-difference.js +4 -1
  356. package/features/set/union.js +4 -1
  357. package/features/string/at.js +2 -1
  358. package/features/string/replace-all.js +2 -1
  359. package/features/string/virtual/at.js +2 -1
  360. package/features/string/virtual/replace-all.js +2 -1
  361. package/features/symbol/async-dispose.js +4 -0
  362. package/features/symbol/dispose.js +2 -1
  363. package/features/symbol/index.js +1 -0
  364. package/features/symbol/observable.js +2 -1
  365. package/features/symbol/pattern-match.js +2 -1
  366. package/features/symbol/replace-all.js +2 -1
  367. package/features/url/index.js +1 -5
  368. package/features/url/to-json.js +1 -1
  369. package/features/url-search-params/index.js +1 -3
  370. package/features/weak-map/delete-all.js +2 -1
  371. package/features/weak-map/from.js +5 -1
  372. package/features/weak-map/of.js +5 -1
  373. package/features/weak-set/add-all.js +2 -1
  374. package/features/weak-set/delete-all.js +2 -1
  375. package/features/weak-set/from.js +5 -1
  376. package/features/weak-set/of.js +5 -1
  377. package/internals/a-possible-prototype.js +7 -0
  378. package/internals/advance-string-index.js +2 -2
  379. package/internals/array-copy-within.js +3 -1
  380. package/internals/array-for-each.js +5 -7
  381. package/internals/array-from.js +1 -1
  382. package/internals/array-includes.js +12 -7
  383. package/internals/{array-methods.js → array-iteration.js} +30 -18
  384. package/internals/array-last-index-of.js +6 -4
  385. package/internals/array-method-has-species-support.js +3 -1
  386. package/internals/array-reduce.js +30 -21
  387. package/internals/array-species-create.js +3 -1
  388. package/internals/check-correctness-of-iteration.js +3 -1
  389. package/internals/classof.js +3 -1
  390. package/internals/collection-delete-all.js +3 -1
  391. package/internals/collection-from.js +3 -2
  392. package/internals/collection-strong.js +1 -0
  393. package/internals/collection-weak.js +6 -5
  394. package/internals/collection.js +5 -4
  395. package/internals/composite-key.js +1 -0
  396. package/internals/correct-is-regexp-logic.js +3 -1
  397. package/internals/correct-prototype-getter.js +3 -1
  398. package/internals/create-html.js +1 -0
  399. package/internals/date-to-iso-string.js +12 -13
  400. package/internals/define-iterator.js +5 -3
  401. package/internals/descriptors.js +3 -1
  402. package/internals/document-create-element.js +5 -3
  403. package/internals/forced-string-trim-method.js +1 -0
  404. package/internals/freezing.js +3 -1
  405. package/internals/function-bind.js +4 -3
  406. package/internals/function-to-string.js +3 -1
  407. package/internals/get-iterator-method.js +3 -1
  408. package/internals/html.js +2 -2
  409. package/internals/indexed-object.js +2 -1
  410. package/internals/inherit-if-required.js +13 -6
  411. package/internals/internal-metadata.js +4 -2
  412. package/internals/internal-state.js +3 -1
  413. package/internals/is-array-iterator-method.js +4 -2
  414. package/internals/is-forced.js +1 -0
  415. package/internals/is-integer.js +1 -0
  416. package/internals/is-iterable.js +3 -1
  417. package/internals/is-regexp.js +3 -1
  418. package/internals/iterate.js +19 -10
  419. package/internals/iterators-core.js +3 -1
  420. package/internals/math-expm1.js +2 -1
  421. package/internals/math-fround.js +3 -1
  422. package/internals/math-log1p.js +3 -1
  423. package/internals/microtask.js +4 -2
  424. package/internals/native-promise-constructor.js +3 -0
  425. package/internals/native-url.js +4 -2
  426. package/internals/native-weak-map.js +3 -1
  427. package/internals/new-promise-capability.js +1 -1
  428. package/internals/not-a-regexp.js +7 -0
  429. package/internals/number-is-finite.js +3 -1
  430. package/internals/object-assign.js +3 -1
  431. package/internals/object-create.js +5 -2
  432. package/internals/object-define-properties.js +4 -2
  433. package/internals/object-define-property.js +3 -0
  434. package/internals/object-get-own-property-descriptor.js +3 -0
  435. package/internals/object-get-own-property-names-external.js +2 -1
  436. package/internals/object-get-own-property-names.js +5 -2
  437. package/internals/object-get-prototype-of.js +5 -2
  438. package/internals/object-keys-internal.js +2 -2
  439. package/internals/object-keys.js +2 -1
  440. package/internals/object-property-is-enumerable.js +5 -3
  441. package/internals/object-set-prototype-of.js +10 -6
  442. package/internals/object-to-array.js +25 -15
  443. package/internals/object-to-string.js +3 -1
  444. package/internals/own-keys.js +2 -2
  445. package/internals/parse-float.js +10 -6
  446. package/internals/parse-int.js +9 -5
  447. package/internals/punycode-to-ascii.js +2 -4
  448. package/internals/reflect-metadata.js +5 -2
  449. package/internals/regexp-flags.js +1 -0
  450. package/internals/set-species.js +11 -6
  451. package/internals/set-to-string-tag.js +3 -1
  452. package/internals/shared-key.js +4 -2
  453. package/internals/shared.js +2 -1
  454. package/internals/species-constructor.js +3 -1
  455. package/internals/string-multibyte.js +27 -0
  456. package/internals/string-pad.js +25 -11
  457. package/internals/string-trim.js +23 -9
  458. package/internals/task.js +1 -0
  459. package/internals/to-absolute-index.js +1 -0
  460. package/internals/to-length.js +1 -0
  461. package/internals/to-primitive.js +8 -6
  462. package/internals/typed-arrays-constructors-requires-wrappers.js +1 -0
  463. package/internals/uid.js +1 -1
  464. package/internals/user-agent.js +2 -3
  465. package/internals/well-known-symbol.js +5 -2
  466. package/modules/es.array.concat.js +9 -4
  467. package/modules/es.array.copy-within.js +7 -3
  468. package/modules/es.array.every.js +5 -5
  469. package/modules/es.array.fill.js +8 -2
  470. package/modules/es.array.filter.js +5 -5
  471. package/modules/es.array.find-index.js +7 -4
  472. package/modules/es.array.find.js +7 -4
  473. package/modules/es.array.flat-map.js +3 -2
  474. package/modules/es.array.flat.js +3 -2
  475. package/modules/es.array.for-each.js +4 -1
  476. package/modules/es.array.from.js +7 -3
  477. package/modules/es.array.includes.js +6 -4
  478. package/modules/es.array.index-of.js +7 -4
  479. package/modules/es.array.is-array.js +6 -1
  480. package/modules/es.array.iterator.js +1 -0
  481. package/modules/es.array.join.js +7 -3
  482. package/modules/es.array.last-index-of.js +4 -3
  483. package/modules/es.array.map.js +5 -5
  484. package/modules/es.array.of.js +4 -2
  485. package/modules/es.array.reduce-right.js +5 -5
  486. package/modules/es.array.reduce.js +5 -5
  487. package/modules/es.array.reverse.js +3 -1
  488. package/modules/es.array.slice.js +6 -4
  489. package/modules/es.array.some.js +5 -5
  490. package/modules/es.array.sort.js +5 -2
  491. package/modules/es.array.species.js +3 -1
  492. package/modules/es.array.splice.js +4 -3
  493. package/modules/es.array.unscopables.flat-map.js +3 -1
  494. package/modules/es.array.unscopables.flat.js +3 -1
  495. package/modules/es.date.now.js +3 -1
  496. package/modules/es.date.to-iso-string.js +2 -1
  497. package/modules/es.date.to-json.js +4 -2
  498. package/modules/es.function.bind.js +5 -2
  499. package/modules/es.function.has-instance.js +3 -1
  500. package/modules/es.json.to-string-tag.js +4 -1
  501. package/modules/es.map.js +6 -3
  502. package/modules/es.math.acosh.js +3 -1
  503. package/modules/es.math.asinh.js +3 -1
  504. package/modules/es.math.atanh.js +3 -1
  505. package/modules/es.math.cbrt.js +3 -1
  506. package/modules/es.math.clz32.js +3 -1
  507. package/modules/es.math.cosh.js +3 -1
  508. package/modules/es.math.expm1.js +3 -4
  509. package/modules/es.math.fround.js +4 -1
  510. package/modules/es.math.hypot.js +8 -1
  511. package/modules/es.math.imul.js +5 -2
  512. package/modules/es.math.log10.js +3 -1
  513. package/modules/es.math.log1p.js +4 -1
  514. package/modules/es.math.log2.js +3 -1
  515. package/modules/es.math.sign.js +6 -1
  516. package/modules/es.math.sinh.js +5 -2
  517. package/modules/es.math.tanh.js +3 -1
  518. package/modules/es.math.to-string-tag.js +3 -1
  519. package/modules/es.math.trunc.js +3 -1
  520. package/modules/es.number.epsilon.js +5 -1
  521. package/modules/es.number.is-finite.js +4 -3
  522. package/modules/es.number.is-integer.js +5 -2
  523. package/modules/es.number.is-nan.js +3 -1
  524. package/modules/es.number.is-safe-integer.js +3 -1
  525. package/modules/es.number.max-safe-integer.js +5 -1
  526. package/modules/es.number.min-safe-integer.js +5 -1
  527. package/modules/es.number.parse-float.js +2 -1
  528. package/modules/es.number.parse-int.js +2 -1
  529. package/modules/es.number.to-fixed.js +67 -58
  530. package/modules/es.number.to-precision.js +8 -4
  531. package/modules/es.object.assign.js +4 -1
  532. package/modules/es.object.create.js +7 -3
  533. package/modules/es.object.define-getter.js +5 -3
  534. package/modules/es.object.define-properties.js +4 -2
  535. package/modules/es.object.define-property.js +4 -2
  536. package/modules/es.object.define-setter.js +5 -3
  537. package/modules/es.object.entries.js +4 -3
  538. package/modules/es.object.freeze.js +6 -3
  539. package/modules/es.object.from-entries.js +2 -1
  540. package/modules/es.object.get-own-property-descriptor.js +5 -2
  541. package/modules/es.object.get-own-property-descriptors.js +5 -4
  542. package/modules/es.object.get-own-property-names.js +5 -2
  543. package/modules/es.object.get-prototype-of.js +5 -4
  544. package/modules/es.object.is-extensible.js +5 -2
  545. package/modules/es.object.is-frozen.js +5 -2
  546. package/modules/es.object.is-sealed.js +5 -2
  547. package/modules/es.object.is.js +6 -1
  548. package/modules/es.object.keys.js +5 -2
  549. package/modules/es.object.lookup-getter.js +5 -3
  550. package/modules/es.object.lookup-setter.js +5 -3
  551. package/modules/es.object.prevent-extensions.js +6 -3
  552. package/modules/es.object.seal.js +6 -3
  553. package/modules/es.object.set-prototype-of.js +5 -2
  554. package/modules/es.object.values.js +4 -3
  555. package/modules/es.parse-float.js +2 -1
  556. package/modules/es.parse-int.js +2 -1
  557. package/modules/es.promise.all-settled.js +43 -0
  558. package/modules/es.promise.finally.js +10 -1
  559. package/modules/es.promise.js +48 -25
  560. package/modules/es.reflect.apply.js +7 -3
  561. package/modules/es.reflect.construct.js +7 -4
  562. package/modules/es.reflect.define-property.js +8 -6
  563. package/modules/es.reflect.delete-property.js +3 -2
  564. package/modules/es.reflect.get-own-property-descriptor.js +4 -3
  565. package/modules/es.reflect.get-prototype-of.js +3 -2
  566. package/modules/es.reflect.get.js +7 -4
  567. package/modules/es.reflect.has.js +3 -1
  568. package/modules/es.reflect.is-extensible.js +3 -1
  569. package/modules/es.reflect.own-keys.js +6 -1
  570. package/modules/es.reflect.prevent-extensions.js +2 -1
  571. package/modules/es.reflect.set-prototype-of.js +6 -3
  572. package/modules/es.reflect.set.js +7 -4
  573. package/modules/es.regexp.constructor.js +3 -1
  574. package/modules/es.set.js +6 -3
  575. package/modules/es.string.anchor.js +3 -2
  576. package/modules/es.string.big.js +3 -2
  577. package/modules/es.string.blink.js +3 -2
  578. package/modules/es.string.bold.js +3 -2
  579. package/modules/es.string.code-point-at.js +4 -3
  580. package/modules/es.string.ends-with.js +9 -7
  581. package/modules/es.string.fixed.js +3 -2
  582. package/modules/es.string.fontcolor.js +3 -2
  583. package/modules/es.string.fontsize.js +3 -2
  584. package/modules/es.string.from-code-point.js +3 -1
  585. package/modules/es.string.includes.js +7 -7
  586. package/modules/es.string.italics.js +3 -2
  587. package/modules/es.string.iterator.js +3 -2
  588. package/modules/es.string.link.js +3 -2
  589. package/modules/es.string.match-all.js +6 -3
  590. package/modules/es.string.pad-end.js +4 -3
  591. package/modules/es.string.pad-start.js +4 -3
  592. package/modules/es.string.raw.js +2 -1
  593. package/modules/es.string.repeat.js +5 -2
  594. package/modules/es.string.small.js +3 -2
  595. package/modules/es.string.starts-with.js +11 -7
  596. package/modules/es.string.strike.js +3 -2
  597. package/modules/es.string.sub.js +3 -2
  598. package/modules/es.string.sup.js +3 -2
  599. package/modules/es.string.trim-end.js +7 -4
  600. package/modules/es.string.trim-start.js +7 -4
  601. package/modules/es.string.trim.js +5 -4
  602. package/modules/es.symbol.async-iterator.js +3 -1
  603. package/modules/es.symbol.has-instance.js +3 -1
  604. package/modules/es.symbol.is-concat-spreadable.js +3 -1
  605. package/modules/es.symbol.iterator.js +3 -1
  606. package/modules/es.symbol.js +107 -95
  607. package/modules/es.symbol.match-all.js +3 -1
  608. package/modules/es.symbol.match.js +3 -1
  609. package/modules/es.symbol.replace.js +3 -1
  610. package/modules/es.symbol.search.js +3 -1
  611. package/modules/es.symbol.species.js +3 -1
  612. package/modules/es.symbol.split.js +3 -1
  613. package/modules/es.symbol.to-primitive.js +3 -1
  614. package/modules/es.symbol.to-string-tag.js +3 -1
  615. package/modules/es.symbol.unscopables.js +3 -1
  616. package/modules/es.weak-map.js +6 -4
  617. package/modules/es.weak-set.js +6 -3
  618. package/modules/esnext.aggregate-error.js +6 -4
  619. package/modules/esnext.array.is-template-object.js +28 -0
  620. package/modules/esnext.composite-key.js +2 -1
  621. package/modules/esnext.composite-symbol.js +2 -1
  622. package/modules/esnext.global-this.js +6 -1
  623. package/modules/esnext.map.delete-all.js +3 -3
  624. package/modules/esnext.map.every.js +7 -6
  625. package/modules/esnext.map.filter.js +7 -6
  626. package/modules/esnext.map.find-key.js +7 -6
  627. package/modules/esnext.map.find.js +7 -6
  628. package/modules/esnext.map.from.js +5 -2
  629. package/modules/esnext.map.group-by.js +2 -1
  630. package/modules/esnext.map.includes.js +7 -8
  631. package/modules/esnext.map.key-by.js +2 -1
  632. package/modules/esnext.map.key-of.js +7 -8
  633. package/modules/esnext.map.map-keys.js +7 -6
  634. package/modules/esnext.map.map-values.js +7 -6
  635. package/modules/esnext.map.merge.js +3 -1
  636. package/modules/esnext.map.of.js +5 -2
  637. package/modules/esnext.map.reduce.js +8 -6
  638. package/modules/esnext.map.some.js +7 -6
  639. package/modules/esnext.map.update-or-insert.js +18 -0
  640. package/modules/esnext.map.update.js +6 -3
  641. package/modules/esnext.math.clamp.js +3 -1
  642. package/modules/esnext.math.deg-per-rad.js +5 -1
  643. package/modules/esnext.math.degrees.js +5 -3
  644. package/modules/esnext.math.fscale.js +3 -1
  645. package/modules/esnext.math.iaddh.js +3 -1
  646. package/modules/esnext.math.imulh.js +3 -1
  647. package/modules/esnext.math.isubh.js +3 -1
  648. package/modules/esnext.math.rad-per-deg.js +5 -1
  649. package/modules/esnext.math.radians.js +3 -1
  650. package/modules/esnext.math.scale.js +6 -1
  651. package/modules/esnext.math.seeded-prng.js +4 -2
  652. package/modules/esnext.math.signbit.js +8 -4
  653. package/modules/esnext.math.umulh.js +3 -1
  654. package/modules/esnext.number.from-string.js +3 -1
  655. package/modules/esnext.observable.js +33 -26
  656. package/modules/esnext.promise.all-settled.js +2 -42
  657. package/modules/esnext.promise.any.js +5 -3
  658. package/modules/esnext.promise.try.js +4 -3
  659. package/modules/esnext.reflect.define-metadata.js +3 -1
  660. package/modules/esnext.reflect.delete-metadata.js +3 -1
  661. package/modules/esnext.reflect.get-metadata-keys.js +4 -1
  662. package/modules/esnext.reflect.get-metadata.js +3 -1
  663. package/modules/esnext.reflect.get-own-metadata-keys.js +3 -1
  664. package/modules/esnext.reflect.get-own-metadata.js +3 -1
  665. package/modules/esnext.reflect.has-metadata.js +3 -1
  666. package/modules/esnext.reflect.has-own-metadata.js +3 -1
  667. package/modules/esnext.reflect.metadata.js +3 -1
  668. package/modules/esnext.set.add-all.js +3 -1
  669. package/modules/esnext.set.delete-all.js +3 -1
  670. package/modules/esnext.set.difference.js +3 -1
  671. package/modules/esnext.set.every.js +7 -5
  672. package/modules/esnext.set.filter.js +7 -5
  673. package/modules/esnext.set.find.js +7 -5
  674. package/modules/esnext.set.from.js +5 -2
  675. package/modules/esnext.set.intersection.js +3 -1
  676. package/modules/esnext.set.is-disjoint-from.js +6 -5
  677. package/modules/esnext.set.is-subset-of.js +6 -5
  678. package/modules/esnext.set.is-superset-of.js +6 -5
  679. package/modules/esnext.set.join.js +5 -3
  680. package/modules/esnext.set.map.js +7 -5
  681. package/modules/esnext.set.of.js +5 -2
  682. package/modules/esnext.set.reduce.js +8 -5
  683. package/modules/esnext.set.some.js +7 -5
  684. package/modules/esnext.set.symmetric-difference.js +3 -1
  685. package/modules/esnext.set.union.js +3 -1
  686. package/modules/esnext.string.at.js +4 -3
  687. package/modules/esnext.string.code-points.js +8 -4
  688. package/modules/esnext.string.replace-all.js +9 -6
  689. package/modules/esnext.symbol.async-dispose.js +5 -0
  690. package/modules/esnext.symbol.dispose.js +4 -2
  691. package/modules/esnext.symbol.observable.js +4 -1
  692. package/modules/esnext.symbol.pattern-match.js +3 -1
  693. package/modules/esnext.symbol.replace-all.js +3 -1
  694. package/modules/esnext.weak-map.delete-all.js +3 -3
  695. package/modules/esnext.weak-map.from.js +5 -2
  696. package/modules/esnext.weak-map.of.js +5 -2
  697. package/modules/esnext.weak-set.add-all.js +3 -2
  698. package/modules/esnext.weak-set.delete-all.js +3 -2
  699. package/modules/esnext.weak-set.from.js +5 -2
  700. package/modules/esnext.weak-set.of.js +5 -2
  701. package/modules/web.dom-collections.iterator.js +3 -1
  702. package/modules/web.immediate.js +6 -0
  703. package/modules/web.queue-microtask.js +9 -5
  704. package/modules/web.timers.js +15 -9
  705. package/modules/web.url-search-params.js +59 -42
  706. package/modules/web.url.js +53 -47
  707. package/package.json +2 -2
  708. package/proposals/array-is-template-object.js +1 -0
  709. package/proposals/map-update-or-insert.js +1 -0
  710. package/proposals/promise-all-settled.js +1 -0
  711. package/proposals/string-match-all.js +0 -2
  712. package/proposals/using-statement.js +1 -0
  713. package/scripts/postinstall.js +20 -8
  714. package/stable/dom-collections/index.js +2 -1
  715. package/stable/dom-collections/iterator.js +2 -1
  716. package/stable/promise/all-settled.js +1 -0
  717. package/stage/1.js +2 -3
  718. package/stage/2.js +3 -0
  719. package/stage/3.js +0 -1
  720. package/stage/4.js +1 -0
  721. package/web/queue-microtask.js +2 -1
  722. package/web/url-search-params.js +2 -1
  723. package/web/url.js +2 -1
  724. package/internals/enum-keys.js +0 -16
  725. package/internals/string-at.js +0 -16
  726. package/internals/validate-set-prototype-of-arguments.js +0 -9
  727. package/internals/validate-string-method-arguments.js +0 -9
@@ -3,6 +3,8 @@ var toObject = require('../internals/to-object');
3
3
  var toAbsoluteIndex = require('../internals/to-absolute-index');
4
4
  var toLength = require('../internals/to-length');
5
5
 
6
+ var min = Math.min;
7
+
6
8
  // `Array.prototype.copyWithin` method implementation
7
9
  // https://tc39.github.io/ecma262/#sec-array.prototype.copywithin
8
10
  module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
@@ -11,7 +13,7 @@ module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /*
11
13
  var to = toAbsoluteIndex(target, len);
12
14
  var from = toAbsoluteIndex(start, len);
13
15
  var end = arguments.length > 2 ? arguments[2] : undefined;
14
- var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
16
+ var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
15
17
  var inc = 1;
16
18
  if (from < to && to < from + count) {
17
19
  inc = -1;
@@ -1,11 +1,9 @@
1
1
  'use strict';
2
- var nativeForEach = [].forEach;
3
- var internalForEach = require('../internals/array-methods')(0);
4
-
5
- var SLOPPY_METHOD = require('../internals/sloppy-array-method')('forEach');
2
+ var $forEach = require('../internals/array-iteration').forEach;
3
+ var sloppyArrayMethod = require('../internals/sloppy-array-method');
6
4
 
7
5
  // `Array.prototype.forEach` method implementation
8
6
  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
9
- module.exports = SLOPPY_METHOD ? function forEach(callbackfn /* , thisArg */) {
10
- return internalForEach(this, callbackfn, arguments[1]);
11
- } : nativeForEach;
7
+ module.exports = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {
8
+ return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
9
+ } : [].forEach;
@@ -7,7 +7,7 @@ var toLength = require('../internals/to-length');
7
7
  var createProperty = require('../internals/create-property');
8
8
  var getIteratorMethod = require('../internals/get-iterator-method');
9
9
 
10
- // `Array.from` method
10
+ // `Array.from` method implementation
11
11
  // https://tc39.github.io/ecma262/#sec-array.from
12
12
  module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
13
13
  var O = toObject(arrayLike);
@@ -3,11 +3,7 @@ var toLength = require('../internals/to-length');
3
3
  var toAbsoluteIndex = require('../internals/to-absolute-index');
4
4
 
5
5
  // `Array.prototype.{ indexOf, includes }` methods implementation
6
- // false -> Array#indexOf
7
- // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
8
- // true -> Array#includes
9
- // https://tc39.github.io/ecma262/#sec-array.prototype.includes
10
- module.exports = function (IS_INCLUDES) {
6
+ var createMethod = function (IS_INCLUDES) {
11
7
  return function ($this, el, fromIndex) {
12
8
  var O = toIndexedObject($this);
13
9
  var length = toLength(O.length);
@@ -20,8 +16,17 @@ module.exports = function (IS_INCLUDES) {
20
16
  // eslint-disable-next-line no-self-compare
21
17
  if (value != value) return true;
22
18
  // Array#indexOf ignores holes, Array#includes - not
23
- } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
24
- if (O[index] === el) return IS_INCLUDES || index || 0;
19
+ } else for (;length > index; index++) {
20
+ if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
25
21
  } return !IS_INCLUDES && -1;
26
22
  };
27
23
  };
24
+
25
+ module.exports = {
26
+ // `Array.prototype.includes` method
27
+ // https://tc39.github.io/ecma262/#sec-array.prototype.includes
28
+ includes: createMethod(true),
29
+ // `Array.prototype.indexOf` method
30
+ // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
31
+ indexOf: createMethod(false)
32
+ };
@@ -4,35 +4,23 @@ var toObject = require('../internals/to-object');
4
4
  var toLength = require('../internals/to-length');
5
5
  var arraySpeciesCreate = require('../internals/array-species-create');
6
6
 
7
+ var push = [].push;
8
+
7
9
  // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
8
- // 0 -> Array#forEach
9
- // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
10
- // 1 -> Array#map
11
- // https://tc39.github.io/ecma262/#sec-array.prototype.map
12
- // 2 -> Array#filter
13
- // https://tc39.github.io/ecma262/#sec-array.prototype.filter
14
- // 3 -> Array#some
15
- // https://tc39.github.io/ecma262/#sec-array.prototype.some
16
- // 4 -> Array#every
17
- // https://tc39.github.io/ecma262/#sec-array.prototype.every
18
- // 5 -> Array#find
19
- // https://tc39.github.io/ecma262/#sec-array.prototype.find
20
- // 6 -> Array#findIndex
21
- // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
22
- module.exports = function (TYPE, specificCreate) {
10
+ var createMethod = function (TYPE) {
23
11
  var IS_MAP = TYPE == 1;
24
12
  var IS_FILTER = TYPE == 2;
25
13
  var IS_SOME = TYPE == 3;
26
14
  var IS_EVERY = TYPE == 4;
27
15
  var IS_FIND_INDEX = TYPE == 6;
28
16
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
29
- var create = specificCreate || arraySpeciesCreate;
30
- return function ($this, callbackfn, that) {
17
+ return function ($this, callbackfn, that, specificCreate) {
31
18
  var O = toObject($this);
32
19
  var self = IndexedObject(O);
33
20
  var boundFunction = bind(callbackfn, that, 3);
34
21
  var length = toLength(self.length);
35
22
  var index = 0;
23
+ var create = specificCreate || arraySpeciesCreate;
36
24
  var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
37
25
  var value, result;
38
26
  for (;length > index; index++) if (NO_HOLES || index in self) {
@@ -44,10 +32,34 @@ module.exports = function (TYPE, specificCreate) {
44
32
  case 3: return true; // some
45
33
  case 5: return value; // find
46
34
  case 6: return index; // findIndex
47
- case 2: target.push(value); // filter
35
+ case 2: push.call(target, value); // filter
48
36
  } else if (IS_EVERY) return false; // every
49
37
  }
50
38
  }
51
39
  return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
52
40
  };
53
41
  };
42
+
43
+ module.exports = {
44
+ // `Array.prototype.forEach` method
45
+ // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
46
+ forEach: createMethod(0),
47
+ // `Array.prototype.map` method
48
+ // https://tc39.github.io/ecma262/#sec-array.prototype.map
49
+ map: createMethod(1),
50
+ // `Array.prototype.filter` method
51
+ // https://tc39.github.io/ecma262/#sec-array.prototype.filter
52
+ filter: createMethod(2),
53
+ // `Array.prototype.some` method
54
+ // https://tc39.github.io/ecma262/#sec-array.prototype.some
55
+ some: createMethod(3),
56
+ // `Array.prototype.every` method
57
+ // https://tc39.github.io/ecma262/#sec-array.prototype.every
58
+ every: createMethod(4),
59
+ // `Array.prototype.find` method
60
+ // https://tc39.github.io/ecma262/#sec-array.prototype.find
61
+ find: createMethod(5),
62
+ // `Array.prototype.findIndex` method
63
+ // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
64
+ findIndex: createMethod(6)
65
+ };
@@ -2,10 +2,12 @@
2
2
  var toIndexedObject = require('../internals/to-indexed-object');
3
3
  var toInteger = require('../internals/to-integer');
4
4
  var toLength = require('../internals/to-length');
5
- var nativeLastIndexOf = [].lastIndexOf;
5
+ var sloppyArrayMethod = require('../internals/sloppy-array-method');
6
6
 
7
+ var min = Math.min;
8
+ var nativeLastIndexOf = [].lastIndexOf;
7
9
  var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
8
- var SLOPPY_METHOD = require('../internals/sloppy-array-method')('lastIndexOf');
10
+ var SLOPPY_METHOD = sloppyArrayMethod('lastIndexOf');
9
11
 
10
12
  // `Array.prototype.lastIndexOf` method implementation
11
13
  // https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof
@@ -15,8 +17,8 @@ module.exports = (NEGATIVE_ZERO || SLOPPY_METHOD) ? function lastIndexOf(searchE
15
17
  var O = toIndexedObject(this);
16
18
  var length = toLength(O.length);
17
19
  var index = length - 1;
18
- if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));
20
+ if (arguments.length > 1) index = min(index, toInteger(arguments[1]));
19
21
  if (index < 0) index = length + index;
20
- for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;
22
+ for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;
21
23
  return -1;
22
24
  } : nativeLastIndexOf;
@@ -1,5 +1,7 @@
1
1
  var fails = require('../internals/fails');
2
- var SPECIES = require('../internals/well-known-symbol')('species');
2
+ var wellKnownSymbol = require('../internals/well-known-symbol');
3
+
4
+ var SPECIES = wellKnownSymbol('species');
3
5
 
4
6
  module.exports = function (METHOD_NAME) {
5
7
  return !fails(function () {
@@ -4,28 +4,37 @@ var IndexedObject = require('../internals/indexed-object');
4
4
  var toLength = require('../internals/to-length');
5
5
 
6
6
  // `Array.prototype.{ reduce, reduceRight }` methods implementation
7
- // https://tc39.github.io/ecma262/#sec-array.prototype.reduce
8
- // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
9
- module.exports = function (that, callbackfn, argumentsLength, memo, isRight) {
10
- aFunction(callbackfn);
11
- var O = toObject(that);
12
- var self = IndexedObject(O);
13
- var length = toLength(O.length);
14
- var index = isRight ? length - 1 : 0;
15
- var i = isRight ? -1 : 1;
16
- if (argumentsLength < 2) while (true) {
17
- if (index in self) {
18
- memo = self[index];
7
+ var createMethod = function (IS_RIGHT) {
8
+ return function (that, callbackfn, argumentsLength, memo) {
9
+ aFunction(callbackfn);
10
+ var O = toObject(that);
11
+ var self = IndexedObject(O);
12
+ var length = toLength(O.length);
13
+ var index = IS_RIGHT ? length - 1 : 0;
14
+ var i = IS_RIGHT ? -1 : 1;
15
+ if (argumentsLength < 2) while (true) {
16
+ if (index in self) {
17
+ memo = self[index];
18
+ index += i;
19
+ break;
20
+ }
19
21
  index += i;
20
- break;
22
+ if (IS_RIGHT ? index < 0 : length <= index) {
23
+ throw TypeError('Reduce of empty array with no initial value');
24
+ }
21
25
  }
22
- index += i;
23
- if (isRight ? index < 0 : length <= index) {
24
- throw TypeError('Reduce of empty array with no initial value');
26
+ for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {
27
+ memo = callbackfn(memo, self[index], index, O);
25
28
  }
26
- }
27
- for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {
28
- memo = callbackfn(memo, self[index], index, O);
29
- }
30
- return memo;
29
+ return memo;
30
+ };
31
+ };
32
+
33
+ module.exports = {
34
+ // `Array.prototype.reduce` method
35
+ // https://tc39.github.io/ecma262/#sec-array.prototype.reduce
36
+ left: createMethod(false),
37
+ // `Array.prototype.reduceRight` method
38
+ // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
39
+ right: createMethod(true)
31
40
  };
@@ -1,6 +1,8 @@
1
1
  var isObject = require('../internals/is-object');
2
2
  var isArray = require('../internals/is-array');
3
- var SPECIES = require('../internals/well-known-symbol')('species');
3
+ var wellKnownSymbol = require('../internals/well-known-symbol');
4
+
5
+ var SPECIES = wellKnownSymbol('species');
4
6
 
5
7
  // `ArraySpeciesCreate` abstract operation
6
8
  // https://tc39.github.io/ecma262/#sec-arrayspeciescreate
@@ -1,4 +1,6 @@
1
- var ITERATOR = require('../internals/well-known-symbol')('iterator');
1
+ var wellKnownSymbol = require('../internals/well-known-symbol');
2
+
3
+ var ITERATOR = wellKnownSymbol('iterator');
2
4
  var SAFE_CLOSING = false;
3
5
 
4
6
  try {
@@ -1,5 +1,7 @@
1
1
  var classofRaw = require('../internals/classof-raw');
2
- var TO_STRING_TAG = require('../internals/well-known-symbol')('toStringTag');
2
+ var wellKnownSymbol = require('../internals/well-known-symbol');
3
+
4
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
3
5
  // ES3 wrong here
4
6
  var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
5
7
 
@@ -7,8 +7,10 @@ module.exports = function (/* ...elements */) {
7
7
  var collection = anObject(this);
8
8
  var remover = aFunction(collection['delete']);
9
9
  var allDeleted = true;
10
+ var wasDeleted;
10
11
  for (var k = 0, len = arguments.length; k < len; k++) {
11
- allDeleted = allDeleted && remover.call(collection, arguments[k]);
12
+ wasDeleted = remover.call(collection, arguments[k]);
13
+ allDeleted = allDeleted && wasDeleted;
12
14
  }
13
15
  return !!allDeleted;
14
16
  };
@@ -5,7 +5,8 @@ var bind = require('../internals/bind-context');
5
5
  var iterate = require('../internals/iterate');
6
6
 
7
7
  module.exports = function from(source /* , mapFn, thisArg */) {
8
- var mapFn = arguments[1];
8
+ var length = arguments.length;
9
+ var mapFn = length > 1 ? arguments[1] : undefined;
9
10
  var mapping, A, n, boundFunction;
10
11
  aFunction(this);
11
12
  mapping = mapFn !== undefined;
@@ -14,7 +15,7 @@ module.exports = function from(source /* , mapFn, thisArg */) {
14
15
  A = [];
15
16
  if (mapping) {
16
17
  n = 0;
17
- boundFunction = bind(mapFn, arguments[2], 2);
18
+ boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined, 2);
18
19
  iterate(source, function (nextItem) {
19
20
  A.push(boundFunction(nextItem, n++));
20
21
  });
@@ -10,6 +10,7 @@ var setSpecies = require('../internals/set-species');
10
10
  var DESCRIPTORS = require('../internals/descriptors');
11
11
  var fastKey = require('../internals/internal-metadata').fastKey;
12
12
  var InternalStateModule = require('../internals/internal-state');
13
+
13
14
  var setInternalState = InternalStateModule.set;
14
15
  var internalStateGetterFor = InternalStateModule.getterFor;
15
16
 
@@ -5,13 +5,14 @@ var anObject = require('../internals/an-object');
5
5
  var isObject = require('../internals/is-object');
6
6
  var anInstance = require('../internals/an-instance');
7
7
  var iterate = require('../internals/iterate');
8
- var createArrayMethod = require('../internals/array-methods');
8
+ var ArrayIterationModule = require('../internals/array-iteration');
9
9
  var $has = require('../internals/has');
10
10
  var InternalStateModule = require('../internals/internal-state');
11
+
11
12
  var setInternalState = InternalStateModule.set;
12
13
  var internalStateGetterFor = InternalStateModule.getterFor;
13
- var arrayFind = createArrayMethod(5);
14
- var arrayFindIndex = createArrayMethod(6);
14
+ var find = ArrayIterationModule.find;
15
+ var findIndex = ArrayIterationModule.findIndex;
15
16
  var id = 0;
16
17
 
17
18
  // fallback for uncaught frozen keys
@@ -24,7 +25,7 @@ var UncaughtFrozenStore = function () {
24
25
  };
25
26
 
26
27
  var findUncaughtFrozen = function (store, key) {
27
- return arrayFind(store.entries, function (it) {
28
+ return find(store.entries, function (it) {
28
29
  return it[0] === key;
29
30
  });
30
31
  };
@@ -43,7 +44,7 @@ UncaughtFrozenStore.prototype = {
43
44
  else this.entries.push([key, value]);
44
45
  },
45
46
  'delete': function (key) {
46
- var index = arrayFindIndex(this.entries, function (it) {
47
+ var index = findIndex(this.entries, function (it) {
47
48
  return it[0] === key;
48
49
  });
49
50
  if (~index) this.entries.splice(index, 1);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
+ var $ = require('./export');
2
3
  var global = require('../internals/global');
3
- var $export = require('./export');
4
4
  var InternalMetadataModule = require('../internals/internal-metadata');
5
5
  var fails = require('../internals/fails');
6
6
  var hide = require('../internals/hide');
@@ -9,9 +9,10 @@ var anInstance = require('../internals/an-instance');
9
9
  var isObject = require('../internals/is-object');
10
10
  var setToStringTag = require('../internals/set-to-string-tag');
11
11
  var defineProperty = require('../internals/object-define-property').f;
12
- var each = require('../internals/array-methods')(0);
12
+ var forEach = require('../internals/array-iteration').forEach;
13
13
  var DESCRIPTORS = require('../internals/descriptors');
14
14
  var InternalStateModule = require('../internals/internal-state');
15
+
15
16
  var setInternalState = InternalStateModule.set;
16
17
  var internalStateGetterFor = InternalStateModule.getterFor;
17
18
 
@@ -39,7 +40,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common, IS_MAP, IS_WEAK) {
39
40
 
40
41
  var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
41
42
 
42
- each(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) {
43
+ forEach(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) {
43
44
  var IS_ADDER = KEY == 'add' || KEY == 'set';
44
45
  if (KEY in NativePrototype && !(IS_WEAK && KEY == 'clear')) hide(Constructor.prototype, KEY, function (a, b) {
45
46
  var collection = getInternalState(this).collection;
@@ -59,7 +60,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common, IS_MAP, IS_WEAK) {
59
60
  setToStringTag(Constructor, CONSTRUCTOR_NAME, false, true);
60
61
 
61
62
  exported[CONSTRUCTOR_NAME] = Constructor;
62
- $export({ global: true, forced: true }, exported);
63
+ $({ global: true, forced: true }, exported);
63
64
 
64
65
  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);
65
66
 
@@ -1,3 +1,4 @@
1
+ // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
1
2
  var Map = require('../modules/es.map');
2
3
  var WeakMap = require('../modules/es.weak-map');
3
4
  var create = require('../internals/object-create');
@@ -1,4 +1,6 @@
1
- var MATCH = require('../internals/well-known-symbol')('match');
1
+ var wellKnownSymbol = require('../internals/well-known-symbol');
2
+
3
+ var MATCH = wellKnownSymbol('match');
2
4
 
3
5
  module.exports = function (METHOD_NAME) {
4
6
  var regexp = /./;
@@ -1,4 +1,6 @@
1
- module.exports = !require('../internals/fails')(function () {
1
+ var fails = require('../internals/fails');
2
+
3
+ module.exports = !fails(function () {
2
4
  function F() { /* empty */ }
3
5
  F.prototype.constructor = null;
4
6
  return Object.getPrototypeOf(new F()) !== F.prototype;
@@ -1,4 +1,5 @@
1
1
  var requireObjectCoercible = require('../internals/require-object-coercible');
2
+
2
3
  var quot = /"/g;
3
4
 
4
5
  // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
@@ -1,12 +1,11 @@
1
1
  'use strict';
2
2
  var fails = require('../internals/fails');
3
- var prototype = Date.prototype;
4
- var getTime = prototype.getTime;
5
- var nativeDateToISOString = prototype.toISOString;
3
+ var padStart = require('../internals/string-pad').start;
6
4
 
7
- var leadingZero = function (number) {
8
- return number > 9 ? number : '0' + number;
9
- };
5
+ var abs = Math.abs;
6
+ var DatePrototype = Date.prototype;
7
+ var getTime = DatePrototype.getTime;
8
+ var nativeDateToISOString = DatePrototype.toISOString;
10
9
 
11
10
  // `Date.prototype.toISOString` method implementation
12
11
  // https://tc39.github.io/ecma262/#sec-date.prototype.toisostring
@@ -21,12 +20,12 @@ module.exports = (fails(function () {
21
20
  var year = date.getUTCFullYear();
22
21
  var milliseconds = date.getUTCMilliseconds();
23
22
  var sign = year < 0 ? '-' : year > 9999 ? '+' : '';
24
- return sign + ('00000' + Math.abs(year)).slice(sign ? -6 : -4) +
25
- '-' + leadingZero(date.getUTCMonth() + 1) +
26
- '-' + leadingZero(date.getUTCDate()) +
27
- 'T' + leadingZero(date.getUTCHours()) +
28
- ':' + leadingZero(date.getUTCMinutes()) +
29
- ':' + leadingZero(date.getUTCSeconds()) +
30
- '.' + (milliseconds > 99 ? milliseconds : '0' + leadingZero(milliseconds)) +
23
+ return sign + padStart(abs(year), sign ? 6 : 4, 0) +
24
+ '-' + padStart(date.getUTCMonth() + 1, 2, 0) +
25
+ '-' + padStart(date.getUTCDate(), 2, 0) +
26
+ 'T' + padStart(date.getUTCHours(), 2, 0) +
27
+ ':' + padStart(date.getUTCMinutes(), 2, 0) +
28
+ ':' + padStart(date.getUTCSeconds(), 2, 0) +
29
+ '.' + padStart(milliseconds, 3, 0) +
31
30
  'Z';
32
31
  } : nativeDateToISOString;
@@ -1,17 +1,19 @@
1
1
  'use strict';
2
- var $export = require('../internals/export');
2
+ var $ = require('../internals/export');
3
3
  var createIteratorConstructor = require('../internals/create-iterator-constructor');
4
4
  var getPrototypeOf = require('../internals/object-get-prototype-of');
5
5
  var setPrototypeOf = require('../internals/object-set-prototype-of');
6
6
  var setToStringTag = require('../internals/set-to-string-tag');
7
7
  var hide = require('../internals/hide');
8
8
  var redefine = require('../internals/redefine');
9
+ var wellKnownSymbol = require('../internals/well-known-symbol');
9
10
  var IS_PURE = require('../internals/is-pure');
10
- var ITERATOR = require('../internals/well-known-symbol')('iterator');
11
11
  var Iterators = require('../internals/iterators');
12
12
  var IteratorsCore = require('../internals/iterators-core');
13
+
13
14
  var IteratorPrototype = IteratorsCore.IteratorPrototype;
14
15
  var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
16
+ var ITERATOR = wellKnownSymbol('iterator');
15
17
  var KEYS = 'keys';
16
18
  var VALUES = 'values';
17
19
  var ENTRIES = 'entries';
@@ -81,7 +83,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I
81
83
  if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
82
84
  redefine(IterablePrototype, KEY, methods[KEY]);
83
85
  }
84
- } else $export({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
86
+ } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
85
87
  }
86
88
 
87
89
  return methods;
@@ -1,4 +1,6 @@
1
+ var fails = require('../internals/fails');
2
+
1
3
  // Thank's IE8 for his funny defineProperty
2
- module.exports = !require('../internals/fails')(function () {
4
+ module.exports = !fails(function () {
3
5
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
4
6
  });
@@ -1,8 +1,10 @@
1
+ var global = require('../internals/global');
1
2
  var isObject = require('../internals/is-object');
2
- var document = require('../internals/global').document;
3
+
4
+ var document = global.document;
3
5
  // typeof document.createElement is 'object' in old IE
4
- var exist = isObject(document) && isObject(document.createElement);
6
+ var EXISTS = isObject(document) && isObject(document.createElement);
5
7
 
6
8
  module.exports = function (it) {
7
- return exist ? document.createElement(it) : {};
9
+ return EXISTS ? document.createElement(it) : {};
8
10
  };
@@ -1,5 +1,6 @@
1
1
  var fails = require('../internals/fails');
2
2
  var whitespaces = require('../internals/whitespaces');
3
+
3
4
  var non = '\u200B\u0085\u180E';
4
5
 
5
6
  // check that a method works with the correct list
@@ -1,3 +1,5 @@
1
- module.exports = !require('../internals/fails')(function () {
1
+ var fails = require('../internals/fails');
2
+
3
+ module.exports = !fails(function () {
2
4
  return Object.isExtensible(Object.preventExtensions({}));
3
5
  });
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
  var aFunction = require('../internals/a-function');
3
3
  var isObject = require('../internals/is-object');
4
- var arraySlice = [].slice;
4
+
5
+ var slice = [].slice;
5
6
  var factories = {};
6
7
 
7
8
  var construct = function (C, argsLength, args) {
@@ -16,9 +17,9 @@ var construct = function (C, argsLength, args) {
16
17
  // https://tc39.github.io/ecma262/#sec-function.prototype.bind
17
18
  module.exports = Function.bind || function bind(that /* , ...args */) {
18
19
  var fn = aFunction(this);
19
- var partArgs = arraySlice.call(arguments, 1);
20
+ var partArgs = slice.call(arguments, 1);
20
21
  var boundFunction = function bound(/* args... */) {
21
- var args = partArgs.concat(arraySlice.call(arguments));
22
+ var args = partArgs.concat(slice.call(arguments));
22
23
  return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);
23
24
  };
24
25
  if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;
@@ -1 +1,3 @@
1
- module.exports = require('../internals/shared')('native-function-to-string', Function.toString);
1
+ var shared = require('../internals/shared');
2
+
3
+ module.exports = shared('native-function-to-string', Function.toString);
@@ -1,6 +1,8 @@
1
1
  var classof = require('../internals/classof');
2
- var ITERATOR = require('../internals/well-known-symbol')('iterator');
3
2
  var Iterators = require('../internals/iterators');
3
+ var wellKnownSymbol = require('../internals/well-known-symbol');
4
+
5
+ var ITERATOR = wellKnownSymbol('iterator');
4
6
 
5
7
  module.exports = function (it) {
6
8
  if (it != undefined) return it[ITERATOR]
package/internals/html.js CHANGED
@@ -1,3 +1,3 @@
1
- var document = require('../internals/global').document;
1
+ var getBuiltIn = require('../internals/get-built-in');
2
2
 
3
- module.exports = document && document.documentElement;
3
+ module.exports = getBuiltIn('document', 'documentElement');
@@ -1,8 +1,9 @@
1
- // fallback for non-array-like ES3 and non-enumerable old V8 strings
2
1
  var fails = require('../internals/fails');
3
2
  var classof = require('../internals/classof-raw');
3
+
4
4
  var split = ''.split;
5
5
 
6
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
6
7
  module.exports = fails(function () {
7
8
  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
8
9
  // eslint-disable-next-line no-prototype-builtins
@@ -1,10 +1,17 @@
1
1
  var isObject = require('../internals/is-object');
2
2
  var setPrototypeOf = require('../internals/object-set-prototype-of');
3
3
 
4
- module.exports = function (that, target, C) {
5
- var S = target.constructor;
6
- var P;
7
- if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
8
- setPrototypeOf(that, P);
9
- } return that;
4
+ // makes subclassing work correct for wrapped built-ins
5
+ module.exports = function ($this, dummy, Wrapper) {
6
+ var NewTarget, NewTargetPrototype;
7
+ if (
8
+ // it can work only with native `setPrototypeOf`
9
+ setPrototypeOf &&
10
+ // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
11
+ typeof (NewTarget = dummy.constructor) == 'function' &&
12
+ NewTarget !== Wrapper &&
13
+ isObject(NewTargetPrototype = NewTarget.prototype) &&
14
+ NewTargetPrototype !== Wrapper.prototype
15
+ ) setPrototypeOf($this, NewTargetPrototype);
16
+ return $this;
10
17
  };