core-js 3.15.1 → 3.16.2

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 (592) hide show
  1. package/README.md +2 -3
  2. package/es/aggregate-error.js +1 -1
  3. package/es/array/entries.js +1 -0
  4. package/es/array/index.js +2 -1
  5. package/es/array/iterator.js +1 -0
  6. package/es/array/keys.js +1 -0
  7. package/es/array/values.js +1 -0
  8. package/es/array/virtual/entries.js +1 -0
  9. package/es/array/virtual/index.js +1 -0
  10. package/es/array/virtual/iterator.js +1 -0
  11. package/es/array/virtual/keys.js +1 -0
  12. package/es/array/virtual/values.js +1 -0
  13. package/es/escape.js +2 -2
  14. package/es/get-iterator-method.js +5 -0
  15. package/es/get-iterator.js +5 -0
  16. package/es/is-iterable.js +5 -0
  17. package/es/map/index.js +1 -1
  18. package/es/promise/all-settled.js +2 -1
  19. package/es/promise/any.js +2 -1
  20. package/es/promise/finally.js +1 -0
  21. package/es/promise/index.js +1 -1
  22. package/es/reflect/index.js +1 -0
  23. package/es/reflect/to-string-tag.js +1 -0
  24. package/es/regexp/constructor.js +3 -0
  25. package/es/regexp/match.js +1 -0
  26. package/es/regexp/replace.js +1 -0
  27. package/es/regexp/search.js +1 -0
  28. package/es/regexp/split.js +1 -0
  29. package/es/set/index.js +2 -2
  30. package/es/string/index.js +1 -0
  31. package/es/string/iterator.js +1 -0
  32. package/es/string/match-all.js +2 -0
  33. package/es/string/replace-all.js +2 -0
  34. package/es/string/virtual/index.js +2 -0
  35. package/es/string/virtual/iterator.js +1 -0
  36. package/es/string/virtual/match-all.js +2 -0
  37. package/es/string/virtual/replace-all.js +2 -0
  38. package/es/symbol/is-concat-spreadable.js +1 -1
  39. package/es/symbol/iterator.js +3 -2
  40. package/es/symbol/match-all.js +2 -0
  41. package/es/symbol/match.js +1 -0
  42. package/es/symbol/replace.js +1 -0
  43. package/es/symbol/search.js +1 -0
  44. package/es/symbol/split.js +1 -0
  45. package/es/symbol/to-primitive.js +1 -0
  46. package/es/symbol/to-string-tag.js +2 -2
  47. package/es/typed-array/entries.js +1 -0
  48. package/es/typed-array/iterator.js +1 -0
  49. package/es/typed-array/keys.js +1 -0
  50. package/es/typed-array/methods.js +2 -1
  51. package/es/typed-array/values.js +1 -0
  52. package/es/unescape.js +2 -2
  53. package/es/weak-map/index.js +1 -1
  54. package/es/weak-set/index.js +1 -1
  55. package/features/array/concat.js +1 -1
  56. package/features/array/copy-within.js +1 -1
  57. package/features/array/entries.js +1 -1
  58. package/features/array/every.js +1 -1
  59. package/features/array/fill.js +1 -1
  60. package/features/array/filter-out.js +1 -0
  61. package/features/array/filter-reject.js +4 -0
  62. package/features/array/filter.js +1 -1
  63. package/features/array/find-index.js +1 -1
  64. package/features/array/find.js +1 -1
  65. package/features/array/flat-map.js +1 -1
  66. package/features/array/flat.js +1 -1
  67. package/features/array/for-each.js +1 -1
  68. package/features/array/from.js +1 -1
  69. package/features/array/group-by.js +4 -0
  70. package/features/array/includes.js +1 -1
  71. package/features/array/index-of.js +1 -1
  72. package/features/array/index.js +4 -1
  73. package/features/array/is-array.js +1 -1
  74. package/features/array/iterator.js +1 -1
  75. package/features/array/join.js +1 -1
  76. package/features/array/keys.js +1 -1
  77. package/features/array/last-index-of.js +1 -1
  78. package/features/array/map.js +1 -1
  79. package/features/array/of.js +1 -1
  80. package/features/array/reduce-right.js +1 -1
  81. package/features/array/reduce.js +1 -1
  82. package/features/array/reverse.js +1 -1
  83. package/features/array/slice.js +1 -1
  84. package/features/array/some.js +1 -1
  85. package/features/array/sort.js +1 -1
  86. package/features/array/splice.js +1 -1
  87. package/features/array/values.js +1 -1
  88. package/features/array/virtual/concat.js +1 -1
  89. package/features/array/virtual/copy-within.js +1 -1
  90. package/features/array/virtual/entries.js +1 -1
  91. package/features/array/virtual/every.js +1 -1
  92. package/features/array/virtual/fill.js +1 -1
  93. package/features/array/virtual/filter-out.js +1 -0
  94. package/features/array/virtual/filter-reject.js +4 -0
  95. package/features/array/virtual/filter.js +1 -1
  96. package/features/array/virtual/find-index.js +1 -1
  97. package/features/array/virtual/find.js +1 -1
  98. package/features/array/virtual/flat-map.js +1 -1
  99. package/features/array/virtual/flat.js +1 -1
  100. package/features/array/virtual/for-each.js +1 -1
  101. package/features/array/virtual/group-by.js +4 -0
  102. package/features/array/virtual/includes.js +1 -1
  103. package/features/array/virtual/index-of.js +1 -1
  104. package/features/array/virtual/index.js +4 -1
  105. package/features/array/virtual/iterator.js +1 -1
  106. package/features/array/virtual/join.js +1 -1
  107. package/features/array/virtual/keys.js +1 -1
  108. package/features/array/virtual/last-index-of.js +1 -1
  109. package/features/array/virtual/map.js +1 -1
  110. package/features/array/virtual/reduce-right.js +1 -1
  111. package/features/array/virtual/reduce.js +1 -1
  112. package/features/array/virtual/reverse.js +1 -1
  113. package/features/array/virtual/slice.js +1 -1
  114. package/features/array/virtual/some.js +1 -1
  115. package/features/array/virtual/sort.js +1 -1
  116. package/features/array/virtual/splice.js +1 -1
  117. package/features/array/virtual/values.js +1 -1
  118. package/features/array-buffer/constructor.js +1 -1
  119. package/features/array-buffer/index.js +1 -1
  120. package/features/array-buffer/is-view.js +1 -1
  121. package/features/array-buffer/slice.js +1 -1
  122. package/features/async-iterator/as-indexed-pairs.js +0 -2
  123. package/features/async-iterator/drop.js +0 -2
  124. package/features/async-iterator/every.js +0 -2
  125. package/features/async-iterator/filter.js +0 -2
  126. package/features/async-iterator/find.js +0 -2
  127. package/features/async-iterator/flat-map.js +0 -2
  128. package/features/async-iterator/for-each.js +0 -2
  129. package/features/async-iterator/from.js +1 -0
  130. package/features/async-iterator/index.js +1 -0
  131. package/features/async-iterator/map.js +0 -2
  132. package/features/async-iterator/reduce.js +0 -2
  133. package/features/async-iterator/some.js +0 -2
  134. package/features/async-iterator/take.js +0 -2
  135. package/features/async-iterator/to-array.js +0 -2
  136. package/features/data-view/index.js +1 -1
  137. package/features/date/index.js +1 -1
  138. package/features/date/now.js +1 -1
  139. package/features/date/to-iso-string.js +1 -1
  140. package/features/date/to-json.js +1 -1
  141. package/features/date/to-primitive.js +1 -1
  142. package/features/date/to-string.js +1 -1
  143. package/features/function/bind.js +1 -1
  144. package/features/function/has-instance.js +1 -1
  145. package/features/function/index.js +1 -1
  146. package/features/function/name.js +1 -1
  147. package/features/function/virtual/bind.js +1 -1
  148. package/features/function/virtual/index.js +1 -1
  149. package/features/get-iterator-method.js +2 -4
  150. package/features/get-iterator.js +2 -4
  151. package/features/global-this.js +1 -1
  152. package/features/index.js +4 -0
  153. package/features/instance/bind.js +1 -1
  154. package/features/instance/code-point-at.js +1 -1
  155. package/features/instance/concat.js +1 -1
  156. package/features/instance/copy-within.js +1 -1
  157. package/features/instance/ends-with.js +1 -1
  158. package/features/instance/every.js +1 -1
  159. package/features/instance/fill.js +1 -1
  160. package/features/instance/filter-out.js +1 -0
  161. package/features/instance/filter-reject.js +8 -0
  162. package/features/instance/filter.js +1 -1
  163. package/features/instance/find-index.js +1 -1
  164. package/features/instance/find.js +1 -1
  165. package/features/instance/flags.js +1 -1
  166. package/features/instance/flat-map.js +1 -1
  167. package/features/instance/flat.js +1 -1
  168. package/features/instance/group-by.js +8 -0
  169. package/features/instance/includes.js +1 -1
  170. package/features/instance/index-of.js +1 -1
  171. package/features/instance/last-index-of.js +1 -1
  172. package/features/instance/map.js +1 -1
  173. package/features/instance/match-all.js +1 -1
  174. package/features/instance/pad-end.js +1 -1
  175. package/features/instance/pad-start.js +1 -1
  176. package/features/instance/reduce-right.js +1 -1
  177. package/features/instance/reduce.js +1 -1
  178. package/features/instance/repeat.js +1 -1
  179. package/features/instance/reverse.js +1 -1
  180. package/features/instance/slice.js +1 -1
  181. package/features/instance/some.js +1 -1
  182. package/features/instance/sort.js +1 -1
  183. package/features/instance/splice.js +1 -1
  184. package/features/instance/starts-with.js +1 -1
  185. package/features/instance/trim-end.js +1 -1
  186. package/features/instance/trim-left.js +1 -1
  187. package/features/instance/trim-right.js +1 -1
  188. package/features/instance/trim-start.js +1 -1
  189. package/features/instance/trim.js +1 -1
  190. package/features/is-iterable.js +2 -4
  191. package/features/iterator/as-indexed-pairs.js +0 -2
  192. package/features/iterator/drop.js +0 -2
  193. package/features/iterator/every.js +0 -2
  194. package/features/iterator/filter.js +0 -2
  195. package/features/iterator/find.js +0 -2
  196. package/features/iterator/flat-map.js +0 -2
  197. package/features/iterator/for-each.js +0 -2
  198. package/features/iterator/from.js +1 -0
  199. package/features/iterator/index.js +1 -0
  200. package/features/iterator/map.js +0 -2
  201. package/features/iterator/reduce.js +0 -2
  202. package/features/iterator/some.js +0 -2
  203. package/features/iterator/take.js +0 -2
  204. package/features/iterator/to-array.js +0 -2
  205. package/features/json/index.js +1 -1
  206. package/features/json/stringify.js +1 -1
  207. package/features/json/to-string-tag.js +1 -1
  208. package/features/map/from.js +1 -0
  209. package/features/map/index.js +1 -1
  210. package/features/map/of.js +1 -2
  211. package/features/math/acosh.js +1 -1
  212. package/features/math/asinh.js +1 -1
  213. package/features/math/atanh.js +1 -1
  214. package/features/math/cbrt.js +1 -1
  215. package/features/math/clz32.js +1 -1
  216. package/features/math/cosh.js +1 -1
  217. package/features/math/expm1.js +1 -1
  218. package/features/math/fround.js +1 -1
  219. package/features/math/hypot.js +1 -1
  220. package/features/math/imul.js +1 -1
  221. package/features/math/index.js +1 -1
  222. package/features/math/log10.js +1 -1
  223. package/features/math/log1p.js +1 -1
  224. package/features/math/log2.js +1 -1
  225. package/features/math/sign.js +1 -1
  226. package/features/math/sinh.js +1 -1
  227. package/features/math/tanh.js +1 -1
  228. package/features/math/to-string-tag.js +1 -1
  229. package/features/math/trunc.js +1 -1
  230. package/features/number/constructor.js +1 -1
  231. package/features/number/epsilon.js +1 -1
  232. package/features/number/index.js +1 -1
  233. package/features/number/is-finite.js +1 -1
  234. package/features/number/is-integer.js +1 -1
  235. package/features/number/is-nan.js +1 -1
  236. package/features/number/is-safe-integer.js +1 -1
  237. package/features/number/max-safe-integer.js +1 -1
  238. package/features/number/min-safe-integer.js +1 -1
  239. package/features/number/parse-float.js +1 -1
  240. package/features/number/parse-int.js +1 -1
  241. package/features/number/range.js +1 -0
  242. package/features/number/to-fixed.js +1 -1
  243. package/features/number/to-precision.js +1 -1
  244. package/features/number/virtual/index.js +1 -1
  245. package/features/number/virtual/to-fixed.js +1 -1
  246. package/features/number/virtual/to-precision.js +1 -1
  247. package/features/object/assign.js +1 -1
  248. package/features/object/create.js +1 -1
  249. package/features/object/define-getter.js +1 -1
  250. package/features/object/define-properties.js +1 -1
  251. package/features/object/define-property.js +1 -1
  252. package/features/object/define-setter.js +1 -1
  253. package/features/object/entries.js +1 -1
  254. package/features/object/freeze.js +1 -1
  255. package/features/object/from-entries.js +1 -1
  256. package/features/object/get-own-property-descriptor.js +1 -1
  257. package/features/object/get-own-property-descriptors.js +1 -1
  258. package/features/object/get-own-property-names.js +1 -1
  259. package/features/object/get-own-property-symbols.js +1 -1
  260. package/features/object/get-prototype-of.js +1 -1
  261. package/features/object/index.js +1 -1
  262. package/features/object/is-extensible.js +1 -1
  263. package/features/object/is-frozen.js +1 -1
  264. package/features/object/is-sealed.js +1 -1
  265. package/features/object/is.js +1 -1
  266. package/features/object/keys.js +1 -1
  267. package/features/object/lookup-getter.js +1 -1
  268. package/features/object/lookup-setter.js +1 -1
  269. package/features/object/prevent-extensions.js +1 -1
  270. package/features/object/seal.js +1 -1
  271. package/features/object/set-prototype-of.js +1 -1
  272. package/features/object/to-string.js +1 -1
  273. package/features/object/values.js +1 -1
  274. package/features/parse-float.js +1 -1
  275. package/features/parse-int.js +1 -1
  276. package/features/promise/all-settled.js +1 -1
  277. package/features/promise/any.js +1 -1
  278. package/features/promise/finally.js +1 -1
  279. package/features/promise/index.js +1 -1
  280. package/features/reflect/apply.js +1 -1
  281. package/features/reflect/construct.js +1 -1
  282. package/features/reflect/define-property.js +1 -1
  283. package/features/reflect/delete-property.js +1 -1
  284. package/features/reflect/get-own-property-descriptor.js +1 -1
  285. package/features/reflect/get-prototype-of.js +1 -1
  286. package/features/reflect/get.js +1 -1
  287. package/features/reflect/has.js +1 -1
  288. package/features/reflect/index.js +1 -1
  289. package/features/reflect/is-extensible.js +1 -1
  290. package/features/reflect/own-keys.js +1 -1
  291. package/features/reflect/prevent-extensions.js +1 -1
  292. package/features/reflect/set-prototype-of.js +1 -1
  293. package/features/reflect/set.js +1 -1
  294. package/features/regexp/constructor.js +1 -1
  295. package/features/regexp/flags.js +1 -1
  296. package/features/regexp/index.js +1 -1
  297. package/features/regexp/match.js +1 -1
  298. package/features/regexp/replace.js +1 -1
  299. package/features/regexp/search.js +1 -1
  300. package/features/regexp/split.js +1 -1
  301. package/features/regexp/sticky.js +1 -1
  302. package/features/regexp/test.js +1 -1
  303. package/features/regexp/to-string.js +1 -1
  304. package/features/set/difference.js +1 -0
  305. package/features/set/from.js +1 -0
  306. package/features/set/index.js +1 -1
  307. package/features/set/intersection.js +3 -0
  308. package/features/set/is-disjoint-from.js +3 -0
  309. package/features/set/is-subset-of.js +1 -0
  310. package/features/set/is-superset-of.js +3 -0
  311. package/features/set/of.js +1 -2
  312. package/features/set/symmetric-difference.js +1 -0
  313. package/features/set/union.js +1 -0
  314. package/features/string/anchor.js +1 -1
  315. package/features/string/big.js +1 -1
  316. package/features/string/blink.js +1 -1
  317. package/features/string/bold.js +1 -1
  318. package/features/string/code-point-at.js +1 -1
  319. package/features/string/code-points.js +1 -0
  320. package/features/string/ends-with.js +1 -1
  321. package/features/string/fixed.js +1 -1
  322. package/features/string/fontcolor.js +1 -1
  323. package/features/string/fontsize.js +1 -1
  324. package/features/string/from-code-point.js +1 -1
  325. package/features/string/includes.js +1 -1
  326. package/features/string/index.js +1 -1
  327. package/features/string/italics.js +1 -1
  328. package/features/string/iterator.js +1 -1
  329. package/features/string/link.js +1 -1
  330. package/features/string/match-all.js +1 -1
  331. package/features/string/match.js +1 -1
  332. package/features/string/pad-end.js +1 -1
  333. package/features/string/pad-start.js +1 -1
  334. package/features/string/raw.js +1 -1
  335. package/features/string/repeat.js +1 -1
  336. package/features/string/replace-all.js +1 -1
  337. package/features/string/replace.js +1 -1
  338. package/features/string/search.js +1 -1
  339. package/features/string/small.js +1 -1
  340. package/features/string/split.js +1 -1
  341. package/features/string/starts-with.js +1 -1
  342. package/features/string/strike.js +1 -1
  343. package/features/string/sub.js +1 -1
  344. package/features/string/sup.js +1 -1
  345. package/features/string/trim-end.js +1 -1
  346. package/features/string/trim-left.js +1 -1
  347. package/features/string/trim-right.js +1 -1
  348. package/features/string/trim-start.js +1 -1
  349. package/features/string/trim.js +1 -1
  350. package/features/string/virtual/anchor.js +1 -1
  351. package/features/string/virtual/big.js +1 -1
  352. package/features/string/virtual/blink.js +1 -1
  353. package/features/string/virtual/bold.js +1 -1
  354. package/features/string/virtual/code-point-at.js +1 -1
  355. package/features/string/virtual/code-points.js +1 -0
  356. package/features/string/virtual/ends-with.js +1 -1
  357. package/features/string/virtual/fixed.js +1 -1
  358. package/features/string/virtual/fontcolor.js +1 -1
  359. package/features/string/virtual/fontsize.js +1 -1
  360. package/features/string/virtual/includes.js +1 -1
  361. package/features/string/virtual/index.js +1 -1
  362. package/features/string/virtual/italics.js +1 -1
  363. package/features/string/virtual/iterator.js +1 -1
  364. package/features/string/virtual/link.js +1 -1
  365. package/features/string/virtual/match-all.js +1 -1
  366. package/features/string/virtual/pad-end.js +1 -1
  367. package/features/string/virtual/pad-start.js +1 -1
  368. package/features/string/virtual/repeat.js +1 -1
  369. package/features/string/virtual/replace-all.js +1 -1
  370. package/features/string/virtual/small.js +1 -1
  371. package/features/string/virtual/starts-with.js +1 -1
  372. package/features/string/virtual/strike.js +1 -1
  373. package/features/string/virtual/sub.js +1 -1
  374. package/features/string/virtual/sup.js +1 -1
  375. package/features/string/virtual/trim-end.js +1 -1
  376. package/features/string/virtual/trim-left.js +1 -1
  377. package/features/string/virtual/trim-right.js +1 -1
  378. package/features/string/virtual/trim-start.js +1 -1
  379. package/features/string/virtual/trim.js +1 -1
  380. package/features/symbol/async-iterator.js +1 -1
  381. package/features/symbol/for.js +1 -1
  382. package/features/symbol/has-instance.js +1 -1
  383. package/features/symbol/index.js +1 -1
  384. package/features/symbol/is-concat-spreadable.js +1 -1
  385. package/features/symbol/iterator.js +1 -1
  386. package/features/symbol/key-for.js +1 -1
  387. package/features/symbol/match-all.js +1 -1
  388. package/features/symbol/match.js +1 -1
  389. package/features/symbol/replace.js +1 -1
  390. package/features/symbol/search.js +1 -1
  391. package/features/symbol/species.js +1 -1
  392. package/features/symbol/split.js +1 -1
  393. package/features/symbol/to-primitive.js +1 -1
  394. package/features/symbol/to-string-tag.js +1 -1
  395. package/features/symbol/unscopables.js +1 -1
  396. package/features/typed-array/copy-within.js +3 -1
  397. package/features/typed-array/entries.js +3 -1
  398. package/features/typed-array/every.js +3 -1
  399. package/features/typed-array/fill.js +3 -1
  400. package/features/typed-array/filter-out.js +1 -0
  401. package/features/typed-array/filter-reject.js +1 -0
  402. package/features/typed-array/filter.js +3 -1
  403. package/features/typed-array/find-index.js +3 -1
  404. package/features/typed-array/find.js +3 -1
  405. package/features/typed-array/float32-array.js +2 -1
  406. package/features/typed-array/float64-array.js +2 -1
  407. package/features/typed-array/for-each.js +3 -1
  408. package/features/typed-array/from.js +3 -1
  409. package/features/typed-array/group-by.js +1 -0
  410. package/features/typed-array/includes.js +3 -1
  411. package/features/typed-array/index-of.js +3 -1
  412. package/features/typed-array/index.js +4 -1
  413. package/features/typed-array/int16-array.js +2 -1
  414. package/features/typed-array/int32-array.js +2 -1
  415. package/features/typed-array/int8-array.js +2 -1
  416. package/features/typed-array/iterator.js +3 -1
  417. package/features/typed-array/join.js +3 -1
  418. package/features/typed-array/keys.js +3 -1
  419. package/features/typed-array/last-index-of.js +3 -1
  420. package/features/typed-array/map.js +3 -1
  421. package/features/typed-array/methods.js +12 -0
  422. package/features/typed-array/of.js +3 -1
  423. package/features/typed-array/reduce-right.js +3 -1
  424. package/features/typed-array/reduce.js +3 -1
  425. package/features/typed-array/reverse.js +3 -1
  426. package/features/typed-array/set.js +3 -1
  427. package/features/typed-array/slice.js +3 -1
  428. package/features/typed-array/some.js +3 -1
  429. package/features/typed-array/sort.js +3 -1
  430. package/features/typed-array/subarray.js +3 -1
  431. package/features/typed-array/to-locale-string.js +3 -1
  432. package/features/typed-array/to-string.js +3 -1
  433. package/features/typed-array/uint16-array.js +2 -1
  434. package/features/typed-array/uint32-array.js +2 -1
  435. package/features/typed-array/uint8-array.js +2 -1
  436. package/features/typed-array/uint8-clamped-array.js +2 -1
  437. package/features/typed-array/values.js +3 -1
  438. package/features/weak-map/from.js +1 -0
  439. package/features/weak-map/index.js +2 -1
  440. package/features/weak-map/of.js +1 -2
  441. package/features/weak-set/from.js +1 -0
  442. package/features/weak-set/index.js +2 -1
  443. package/features/weak-set/of.js +1 -2
  444. package/internals/array-buffer-view-core.js +16 -10
  445. package/internals/array-from-constructor-and-list.js +7 -0
  446. package/internals/array-group-by.js +33 -0
  447. package/internals/array-iteration-from-last.js +6 -6
  448. package/internals/array-iteration.js +6 -6
  449. package/internals/array-species-constructor.js +20 -0
  450. package/internals/array-species-create.js +2 -15
  451. package/internals/collection.js +1 -1
  452. package/internals/create-html.js +3 -2
  453. package/internals/create-property.js +2 -2
  454. package/internals/date-to-primitive.js +5 -4
  455. package/internals/engine-is-ios-pebble.js +4 -0
  456. package/internals/engine-is-ios.js +1 -1
  457. package/internals/engine-v8-version.js +2 -1
  458. package/internals/get-built-in.js +1 -3
  459. package/internals/get-map-iterator.js +1 -4
  460. package/internals/get-set-iterator.js +1 -4
  461. package/internals/internal-metadata.js +33 -3
  462. package/internals/is-symbol.js +9 -0
  463. package/internals/microtask.js +2 -1
  464. package/internals/number-parse-float.js +2 -1
  465. package/internals/number-parse-int.js +2 -1
  466. package/internals/object-create.js +7 -3
  467. package/internals/object-define-property.js +2 -2
  468. package/internals/object-get-own-property-descriptor.js +2 -2
  469. package/internals/ordinary-to-primitive.js +11 -0
  470. package/internals/regexp-exec.js +6 -4
  471. package/internals/regexp-sticky-helpers.js +5 -6
  472. package/internals/regexp-unsupported-dot-all.js +5 -2
  473. package/internals/regexp-unsupported-ncg.js +5 -2
  474. package/internals/set-global.js +2 -2
  475. package/internals/shared.js +1 -1
  476. package/internals/string-multibyte.js +3 -2
  477. package/internals/string-pad.js +3 -2
  478. package/internals/string-repeat.js +2 -1
  479. package/internals/string-trim.js +2 -1
  480. package/internals/task.js +9 -4
  481. package/internals/to-primitive.js +17 -9
  482. package/internals/to-property-key.js +9 -0
  483. package/internals/to-string.js +6 -0
  484. package/internals/typed-array-constructor.js +13 -5
  485. package/internals/typed-array-from-species-and-list.js +3 -8
  486. package/internals/typed-array-species-constructor.js +11 -0
  487. package/modules/es.aggregate-error.js +2 -1
  488. package/modules/es.array.sort.js +2 -1
  489. package/modules/es.date.get-year.js +6 -1
  490. package/modules/es.date.to-json.js +1 -1
  491. package/modules/es.date.to-string.js +1 -1
  492. package/modules/es.escape.js +2 -1
  493. package/modules/es.number.constructor.js +3 -1
  494. package/modules/es.object.lookup-getter.js +2 -2
  495. package/modules/es.object.lookup-setter.js +2 -2
  496. package/modules/es.promise.js +3 -2
  497. package/modules/es.reflect.define-property.js +2 -2
  498. package/modules/es.regexp.constructor.js +3 -2
  499. package/modules/es.regexp.to-string.js +3 -2
  500. package/modules/es.string.ends-with.js +3 -2
  501. package/modules/es.string.includes.js +3 -2
  502. package/modules/es.string.iterator.js +2 -1
  503. package/modules/es.string.match-all.js +6 -5
  504. package/modules/es.string.match.js +7 -6
  505. package/modules/es.string.raw.js +3 -2
  506. package/modules/es.string.replace-all.js +7 -6
  507. package/modules/es.string.replace.js +12 -10
  508. package/modules/es.string.search.js +6 -5
  509. package/modules/es.string.split.js +8 -6
  510. package/modules/es.string.starts-with.js +3 -2
  511. package/modules/es.string.substr.js +2 -1
  512. package/modules/es.symbol.js +8 -13
  513. package/modules/es.typed-array.map.js +2 -3
  514. package/modules/es.typed-array.slice.js +3 -4
  515. package/modules/es.typed-array.subarray.js +3 -2
  516. package/modules/es.unescape.js +2 -1
  517. package/modules/es.weak-map.js +1 -1
  518. package/modules/esnext.array.filter-out.js +3 -2
  519. package/modules/esnext.array.filter-reject.js +14 -0
  520. package/modules/esnext.array.group-by.js +16 -0
  521. package/modules/esnext.map.merge.js +2 -1
  522. package/modules/esnext.string.at-alternative.js +3 -2
  523. package/modules/esnext.string.code-points.js +2 -1
  524. package/modules/esnext.typed-array.filter-out.js +3 -2
  525. package/modules/esnext.typed-array.filter-reject.js +14 -0
  526. package/modules/esnext.typed-array.group-by.js +14 -0
  527. package/modules/web.url-search-params.js +56 -36
  528. package/modules/web.url.js +14 -13
  529. package/package.json +3 -4
  530. package/postinstall.js +4 -2
  531. package/proposals/array-filtering.js +4 -0
  532. package/proposals/array-grouping.js +3 -0
  533. package/stable/aggregate-error.js +1 -0
  534. package/stable/dom-collections/index.js +1 -0
  535. package/stable/dom-collections/iterator.js +1 -0
  536. package/stable/get-iterator-method.js +4 -0
  537. package/stable/get-iterator.js +4 -0
  538. package/stable/is-iterable.js +4 -0
  539. package/stable/map/index.js +1 -0
  540. package/stable/object/from-entries.js +1 -0
  541. package/stable/object/index.js +1 -0
  542. package/stable/promise/all-settled.js +1 -0
  543. package/stable/promise/any.js +1 -0
  544. package/stable/promise/index.js +1 -0
  545. package/stable/set/index.js +1 -0
  546. package/stable/symbol/index.js +1 -0
  547. package/stable/symbol/iterator.js +1 -0
  548. package/stable/typed-array/copy-within.js +3 -1
  549. package/stable/typed-array/entries.js +3 -1
  550. package/stable/typed-array/every.js +3 -1
  551. package/stable/typed-array/fill.js +3 -1
  552. package/stable/typed-array/filter.js +3 -1
  553. package/stable/typed-array/find-index.js +3 -1
  554. package/stable/typed-array/find.js +3 -1
  555. package/stable/typed-array/float32-array.js +1 -0
  556. package/stable/typed-array/float64-array.js +1 -0
  557. package/stable/typed-array/for-each.js +3 -1
  558. package/stable/typed-array/from.js +3 -1
  559. package/stable/typed-array/includes.js +3 -1
  560. package/stable/typed-array/index-of.js +3 -1
  561. package/stable/typed-array/int16-array.js +1 -0
  562. package/stable/typed-array/int32-array.js +1 -0
  563. package/stable/typed-array/int8-array.js +1 -0
  564. package/stable/typed-array/iterator.js +3 -1
  565. package/stable/typed-array/join.js +3 -1
  566. package/stable/typed-array/keys.js +3 -1
  567. package/stable/typed-array/last-index-of.js +3 -1
  568. package/stable/typed-array/map.js +3 -1
  569. package/stable/typed-array/methods.js +3 -0
  570. package/stable/typed-array/of.js +3 -1
  571. package/stable/typed-array/reduce-right.js +3 -1
  572. package/stable/typed-array/reduce.js +3 -1
  573. package/stable/typed-array/reverse.js +3 -1
  574. package/stable/typed-array/set.js +3 -1
  575. package/stable/typed-array/slice.js +3 -1
  576. package/stable/typed-array/some.js +3 -1
  577. package/stable/typed-array/sort.js +3 -1
  578. package/stable/typed-array/subarray.js +3 -1
  579. package/stable/typed-array/to-locale-string.js +3 -1
  580. package/stable/typed-array/to-string.js +3 -1
  581. package/stable/typed-array/uint16-array.js +1 -0
  582. package/stable/typed-array/uint32-array.js +1 -0
  583. package/stable/typed-array/uint8-array.js +1 -0
  584. package/stable/typed-array/uint8-clamped-array.js +1 -0
  585. package/stable/typed-array/values.js +3 -1
  586. package/stable/url-search-params/index.js +1 -0
  587. package/stable/weak-map/index.js +1 -0
  588. package/stable/weak-set/index.js +1 -0
  589. package/stage/1.js +1 -0
  590. package/stage/2.js +0 -1
  591. package/stage/3.js +1 -0
  592. package/es/array/virtual/filter-out.js +0 -4
@@ -2,7 +2,7 @@ var DESCRIPTORS = require('../internals/descriptors');
2
2
  var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
3
3
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
4
4
  var toIndexedObject = require('../internals/to-indexed-object');
5
- var toPrimitive = require('../internals/to-primitive');
5
+ var toPropertyKey = require('../internals/to-property-key');
6
6
  var has = require('../internals/has');
7
7
  var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
8
8
 
@@ -13,7 +13,7 @@ var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
13
13
  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
14
14
  exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
15
15
  O = toIndexedObject(O);
16
- P = toPrimitive(P, true);
16
+ P = toPropertyKey(P);
17
17
  if (IE8_DOM_DEFINE) try {
18
18
  return $getOwnPropertyDescriptor(O, P);
19
19
  } catch (error) { /* empty */ }
@@ -0,0 +1,11 @@
1
+ var isObject = require('../internals/is-object');
2
+
3
+ // `OrdinaryToPrimitive` abstract operation
4
+ // https://tc39.es/ecma262/#sec-ordinarytoprimitive
5
+ module.exports = function (input, pref) {
6
+ var fn, val;
7
+ if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
8
+ if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
9
+ if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
10
+ throw TypeError("Can't convert object to primitive value");
11
+ };
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
- /* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
2
+ /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
3
3
  /* eslint-disable regexp/no-useless-quantifier -- testing */
4
+ var toString = require('../internals/to-string');
4
5
  var regexpFlags = require('../internals/regexp-flags');
5
6
  var stickyHelpers = require('../internals/regexp-sticky-helpers');
6
7
  var shared = require('../internals/shared');
@@ -31,9 +32,10 @@ var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPP
31
32
 
32
33
  if (PATCH) {
33
34
  // eslint-disable-next-line max-statements -- TODO
34
- patchedExec = function exec(str) {
35
+ patchedExec = function exec(string) {
35
36
  var re = this;
36
37
  var state = getInternalState(re);
38
+ var str = toString(string);
37
39
  var raw = state.raw;
38
40
  var result, reCopy, lastIndex, match, i, object, group;
39
41
 
@@ -57,9 +59,9 @@ if (PATCH) {
57
59
  flags += 'g';
58
60
  }
59
61
 
60
- strCopy = String(str).slice(re.lastIndex);
62
+ strCopy = str.slice(re.lastIndex);
61
63
  // Support anchored sticky behavior.
62
- if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
64
+ if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\n')) {
63
65
  source = '(?: ' + source + ')';
64
66
  strCopy = ' ' + strCopy;
65
67
  charsAdded++;
@@ -1,19 +1,18 @@
1
1
  var fails = require('../internals/fails');
2
+ var global = require('../internals/global');
2
3
 
3
- // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
4
- var RE = function (s, f) {
5
- return RegExp(s, f);
6
- };
4
+ // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
5
+ var $RegExp = global.RegExp;
7
6
 
8
7
  exports.UNSUPPORTED_Y = fails(function () {
9
- var re = RE('a', 'y');
8
+ var re = $RegExp('a', 'y');
10
9
  re.lastIndex = 2;
11
10
  return re.exec('abcd') != null;
12
11
  });
13
12
 
14
13
  exports.BROKEN_CARET = fails(function () {
15
14
  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
16
- var re = RE('^r', 'gy');
15
+ var re = $RegExp('^r', 'gy');
17
16
  re.lastIndex = 2;
18
17
  return re.exec('str') != null;
19
18
  });
@@ -1,7 +1,10 @@
1
1
  var fails = require('./fails');
2
+ var global = require('../internals/global');
3
+
4
+ // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
5
+ var $RegExp = global.RegExp;
2
6
 
3
7
  module.exports = fails(function () {
4
- // babel-minify transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
5
- var re = RegExp('.', (typeof '').charAt(0));
8
+ var re = $RegExp('.', 's');
6
9
  return !(re.dotAll && re.exec('\n') && re.flags === 's');
7
10
  });
@@ -1,8 +1,11 @@
1
1
  var fails = require('./fails');
2
+ var global = require('../internals/global');
3
+
4
+ // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
5
+ var $RegExp = global.RegExp;
2
6
 
3
7
  module.exports = fails(function () {
4
- // babel-minify transpiles RegExp('.', 'g') -> /./g and it causes SyntaxError
5
- var re = RegExp('(?<a>b)', (typeof '').charAt(5));
8
+ var re = $RegExp('(?<a>b)', 'g');
6
9
  return re.exec('b').groups.a !== 'b' ||
7
10
  'b'.replace(re, '$<a>c') !== 'bc';
8
11
  });
@@ -1,9 +1,9 @@
1
1
  var global = require('../internals/global');
2
- var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
3
2
 
4
3
  module.exports = function (key, value) {
5
4
  try {
6
- createNonEnumerableProperty(global, key, value);
5
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
6
+ Object.defineProperty(global, key, { value: value, configurable: true, writable: true });
7
7
  } catch (error) {
8
8
  global[key] = value;
9
9
  } return value;
@@ -4,7 +4,7 @@ var store = require('../internals/shared-store');
4
4
  (module.exports = function (key, value) {
5
5
  return store[key] || (store[key] = value !== undefined ? value : {});
6
6
  })('versions', []).push({
7
- version: '3.15.1',
7
+ version: '3.16.2',
8
8
  mode: IS_PURE ? 'pure' : 'global',
9
9
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
10
10
  });
@@ -1,10 +1,11 @@
1
1
  var toInteger = require('../internals/to-integer');
2
+ var toString = require('../internals/to-string');
2
3
  var requireObjectCoercible = require('../internals/require-object-coercible');
3
4
 
4
- // `String.prototype.{ codePointAt, at }` methods implementation
5
+ // `String.prototype.codePointAt` methods implementation
5
6
  var createMethod = function (CONVERT_TO_STRING) {
6
7
  return function ($this, pos) {
7
- var S = String(requireObjectCoercible($this));
8
+ var S = toString(requireObjectCoercible($this));
8
9
  var position = toInteger(pos);
9
10
  var size = S.length;
10
11
  var first, second;
@@ -1,5 +1,6 @@
1
1
  // https://github.com/tc39/proposal-string-pad-start-end
2
2
  var toLength = require('../internals/to-length');
3
+ var toString = require('../internals/to-string');
3
4
  var repeat = require('../internals/string-repeat');
4
5
  var requireObjectCoercible = require('../internals/require-object-coercible');
5
6
 
@@ -8,9 +9,9 @@ var ceil = Math.ceil;
8
9
  // `String.prototype.{ padStart, padEnd }` methods implementation
9
10
  var createMethod = function (IS_END) {
10
11
  return function ($this, maxLength, fillString) {
11
- var S = String(requireObjectCoercible($this));
12
+ var S = toString(requireObjectCoercible($this));
12
13
  var stringLength = S.length;
13
- var fillStr = fillString === undefined ? ' ' : String(fillString);
14
+ var fillStr = fillString === undefined ? ' ' : toString(fillString);
14
15
  var intMaxLength = toLength(maxLength);
15
16
  var fillLen, stringFiller;
16
17
  if (intMaxLength <= stringLength || fillStr == '') return S;
@@ -1,11 +1,12 @@
1
1
  'use strict';
2
2
  var toInteger = require('../internals/to-integer');
3
+ var toString = require('../internals/to-string');
3
4
  var requireObjectCoercible = require('../internals/require-object-coercible');
4
5
 
5
6
  // `String.prototype.repeat` method implementation
6
7
  // https://tc39.es/ecma262/#sec-string.prototype.repeat
7
8
  module.exports = function repeat(count) {
8
- var str = String(requireObjectCoercible(this));
9
+ var str = toString(requireObjectCoercible(this));
9
10
  var result = '';
10
11
  var n = toInteger(count);
11
12
  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');
@@ -1,4 +1,5 @@
1
1
  var requireObjectCoercible = require('../internals/require-object-coercible');
2
+ var toString = require('../internals/to-string');
2
3
  var whitespaces = require('../internals/whitespaces');
3
4
 
4
5
  var whitespace = '[' + whitespaces + ']';
@@ -8,7 +9,7 @@ var rtrim = RegExp(whitespace + whitespace + '*$');
8
9
  // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
9
10
  var createMethod = function (TYPE) {
10
11
  return function ($this) {
11
- var string = String(requireObjectCoercible($this));
12
+ var string = toString(requireObjectCoercible($this));
12
13
  if (TYPE & 1) string = string.replace(ltrim, '');
13
14
  if (TYPE & 2) string = string.replace(rtrim, '');
14
15
  return string;
package/internals/task.js CHANGED
@@ -6,7 +6,6 @@ var createElement = require('../internals/document-create-element');
6
6
  var IS_IOS = require('../internals/engine-is-ios');
7
7
  var IS_NODE = require('../internals/engine-is-node');
8
8
 
9
- var location = global.location;
10
9
  var set = global.setImmediate;
11
10
  var clear = global.clearImmediate;
12
11
  var process = global.process;
@@ -15,7 +14,12 @@ var Dispatch = global.Dispatch;
15
14
  var counter = 0;
16
15
  var queue = {};
17
16
  var ONREADYSTATECHANGE = 'onreadystatechange';
18
- var defer, channel, port;
17
+ var location, defer, channel, port;
18
+
19
+ try {
20
+ // Deno throws a ReferenceError on `location` access without `--location` flag
21
+ location = global.location;
22
+ } catch (error) { /* empty */ }
19
23
 
20
24
  var run = function (id) {
21
25
  // eslint-disable-next-line no-prototype-builtins -- safe
@@ -38,15 +42,16 @@ var listener = function (event) {
38
42
 
39
43
  var post = function (id) {
40
44
  // old engines have not location.origin
41
- global.postMessage(id + '', location.protocol + '//' + location.host);
45
+ global.postMessage(String(id), location.protocol + '//' + location.host);
42
46
  };
43
47
 
44
48
  // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
45
49
  if (!set || !clear) {
46
50
  set = function setImmediate(fn) {
47
51
  var args = [];
52
+ var argumentsLength = arguments.length;
48
53
  var i = 1;
49
- while (arguments.length > i) args.push(arguments[i++]);
54
+ while (argumentsLength > i) args.push(arguments[i++]);
50
55
  queue[++counter] = function () {
51
56
  // eslint-disable-next-line no-new-func -- spec requirement
52
57
  (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);
@@ -1,14 +1,22 @@
1
1
  var isObject = require('../internals/is-object');
2
+ var isSymbol = require('../internals/is-symbol');
3
+ var ordinaryToPrimitive = require('../internals/ordinary-to-primitive');
4
+ var wellKnownSymbol = require('../internals/well-known-symbol');
5
+
6
+ var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
2
7
 
3
8
  // `ToPrimitive` abstract operation
4
9
  // https://tc39.es/ecma262/#sec-toprimitive
5
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
6
- // and the second argument - flag - preferred type is a string
7
- module.exports = function (input, PREFERRED_STRING) {
8
- if (!isObject(input)) return input;
9
- var fn, val;
10
- if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
11
- if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
12
- if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
13
- throw TypeError("Can't convert object to primitive value");
10
+ module.exports = function (input, pref) {
11
+ if (!isObject(input) || isSymbol(input)) return input;
12
+ var exoticToPrim = input[TO_PRIMITIVE];
13
+ var result;
14
+ if (exoticToPrim !== undefined) {
15
+ if (pref === undefined) pref = 'default';
16
+ result = exoticToPrim.call(input, pref);
17
+ if (!isObject(result) || isSymbol(result)) return result;
18
+ throw TypeError("Can't convert object to primitive value");
19
+ }
20
+ if (pref === undefined) pref = 'number';
21
+ return ordinaryToPrimitive(input, pref);
14
22
  };
@@ -0,0 +1,9 @@
1
+ var toPrimitive = require('../internals/to-primitive');
2
+ var isSymbol = require('../internals/is-symbol');
3
+
4
+ // `ToPropertyKey` abstract operation
5
+ // https://tc39.es/ecma262/#sec-topropertykey
6
+ module.exports = function (argument) {
7
+ var key = toPrimitive(argument, 'string');
8
+ return isSymbol(key) ? key : String(key);
9
+ };
@@ -0,0 +1,6 @@
1
+ var isSymbol = require('../internals/is-symbol');
2
+
3
+ module.exports = function (argument) {
4
+ if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');
5
+ return String(argument);
6
+ };
@@ -8,13 +8,15 @@ var ArrayBufferModule = require('../internals/array-buffer');
8
8
  var anInstance = require('../internals/an-instance');
9
9
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
10
10
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
11
+ var isInteger = require('../internals/is-integer');
11
12
  var toLength = require('../internals/to-length');
12
13
  var toIndex = require('../internals/to-index');
13
14
  var toOffset = require('../internals/to-offset');
14
- var toPrimitive = require('../internals/to-primitive');
15
+ var toPropertyKey = require('../internals/to-property-key');
15
16
  var has = require('../internals/has');
16
17
  var classof = require('../internals/classof');
17
18
  var isObject = require('../internals/is-object');
19
+ var isSymbol = require('../internals/is-symbol');
18
20
  var create = require('../internals/object-create');
19
21
  var setPrototypeOf = require('../internals/object-set-prototype-of');
20
22
  var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
@@ -35,6 +37,7 @@ var RangeError = global.RangeError;
35
37
  var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
36
38
  var DataView = ArrayBufferModule.DataView;
37
39
  var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
40
+ var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
38
41
  var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;
39
42
  var TypedArray = ArrayBufferViewCore.TypedArray;
40
43
  var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;
@@ -64,19 +67,22 @@ var isArrayBuffer = function (it) {
64
67
 
65
68
  var isTypedArrayIndex = function (target, key) {
66
69
  return isTypedArray(target)
67
- && typeof key != 'symbol'
70
+ && !isSymbol(key)
68
71
  && key in target
69
- && String(+key) == String(key);
72
+ && isInteger(+key)
73
+ && key >= 0;
70
74
  };
71
75
 
72
76
  var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {
73
- return isTypedArrayIndex(target, key = toPrimitive(key, true))
77
+ key = toPropertyKey(key);
78
+ return isTypedArrayIndex(target, key)
74
79
  ? createPropertyDescriptor(2, target[key])
75
80
  : nativeGetOwnPropertyDescriptor(target, key);
76
81
  };
77
82
 
78
83
  var wrappedDefineProperty = function defineProperty(target, key, descriptor) {
79
- if (isTypedArrayIndex(target, key = toPrimitive(key, true))
84
+ key = toPropertyKey(key);
85
+ if (isTypedArrayIndex(target, key)
80
86
  && isObject(descriptor)
81
87
  && has(descriptor, 'value')
82
88
  && !has(descriptor, 'get')
@@ -207,6 +213,8 @@ if (DESCRIPTORS) {
207
213
  createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);
208
214
  }
209
215
 
216
+ createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);
217
+
210
218
  if (TYPED_ARRAY_TAG) {
211
219
  createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);
212
220
  }
@@ -1,11 +1,6 @@
1
- var aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;
2
- var speciesConstructor = require('../internals/species-constructor');
1
+ var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');
2
+ var typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');
3
3
 
4
4
  module.exports = function (instance, list) {
5
- var C = speciesConstructor(instance, instance.constructor);
6
- var index = 0;
7
- var length = list.length;
8
- var result = new (aTypedArrayConstructor(C))(length);
9
- while (length > index) result[index] = list[index++];
10
- return result;
5
+ return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);
11
6
  };
@@ -0,0 +1,11 @@
1
+ var ArrayBufferViewCore = require('../internals/array-buffer-view-core');
2
+ var speciesConstructor = require('../internals/species-constructor');
3
+
4
+ var TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;
5
+ var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
6
+
7
+ // a part of `TypedArraySpeciesCreate` abstract operation
8
+ // https://tc39.es/ecma262/#typedarray-species-create
9
+ module.exports = function (originalArray) {
10
+ return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));
11
+ };
@@ -6,6 +6,7 @@ var create = require('../internals/object-create');
6
6
  var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
7
7
  var createPropertyDescriptor = require('../internals/create-property-descriptor');
8
8
  var iterate = require('../internals/iterate');
9
+ var toString = require('../internals/to-string');
9
10
 
10
11
  var $AggregateError = function AggregateError(errors, message) {
11
12
  var that = this;
@@ -14,7 +15,7 @@ var $AggregateError = function AggregateError(errors, message) {
14
15
  // eslint-disable-next-line unicorn/error-message -- expected
15
16
  that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));
16
17
  }
17
- if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));
18
+ if (message !== undefined) createNonEnumerableProperty(that, 'message', toString(message));
18
19
  var errorsArray = [];
19
20
  iterate(errors, errorsArray.push, { that: errorsArray });
20
21
  createNonEnumerableProperty(that, 'errors', errorsArray);
@@ -3,6 +3,7 @@ var $ = require('../internals/export');
3
3
  var aFunction = require('../internals/a-function');
4
4
  var toObject = require('../internals/to-object');
5
5
  var toLength = require('../internals/to-length');
6
+ var toString = require('../internals/to-string');
6
7
  var fails = require('../internals/fails');
7
8
  var internalSort = require('../internals/array-sort');
8
9
  var arrayMethodIsStrict = require('../internals/array-method-is-strict');
@@ -67,7 +68,7 @@ var getSortCompare = function (comparefn) {
67
68
  if (y === undefined) return -1;
68
69
  if (x === undefined) return 1;
69
70
  if (comparefn !== undefined) return +comparefn(x, y) || 0;
70
- return String(x) > String(y) ? 1 : -1;
71
+ return toString(x) > toString(y) ? 1 : -1;
71
72
  };
72
73
  };
73
74
 
@@ -1,11 +1,16 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var fails = require('../internals/fails');
4
+
5
+ var FORCED = fails(function () {
6
+ return new Date(16e11).getYear() !== 120;
7
+ });
3
8
 
4
9
  var getFullYear = Date.prototype.getFullYear;
5
10
 
6
11
  // `Date.prototype.getYear` method
7
12
  // https://tc39.es/ecma262/#sec-date.prototype.getyear
8
- $({ target: 'Date', proto: true }, {
13
+ $({ target: 'Date', proto: true, forced: FORCED }, {
9
14
  getYear: function getYear() {
10
15
  return getFullYear.call(this) - 1900;
11
16
  }
@@ -15,7 +15,7 @@ $({ target: 'Date', proto: true, forced: FORCED }, {
15
15
  // eslint-disable-next-line no-unused-vars -- required for `.length`
16
16
  toJSON: function toJSON(key) {
17
17
  var O = toObject(this);
18
- var pv = toPrimitive(O);
18
+ var pv = toPrimitive(O, 'number');
19
19
  return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
20
20
  }
21
21
  });
@@ -8,7 +8,7 @@ var getTime = DatePrototype.getTime;
8
8
 
9
9
  // `Date.prototype.toString` method
10
10
  // https://tc39.es/ecma262/#sec-date.prototype.tostring
11
- if (new Date(NaN) + '' != INVALID_DATE) {
11
+ if (String(new Date(NaN)) != INVALID_DATE) {
12
12
  redefine(DatePrototype, TO_STRING, function toString() {
13
13
  var value = getTime.call(this);
14
14
  // eslint-disable-next-line no-self-compare -- NaN check
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
+ var toString = require('../internals/to-string');
3
4
 
4
5
  var raw = /[\w*+\-./@]/;
5
6
 
@@ -13,7 +14,7 @@ var hex = function (code, length) {
13
14
  // https://tc39.es/ecma262/#sec-escape-string
14
15
  $({ global: true }, {
15
16
  escape: function escape(string) {
16
- var str = String(string);
17
+ var str = toString(string);
17
18
  var result = '';
18
19
  var length = str.length;
19
20
  var index = 0;
@@ -6,6 +6,7 @@ var redefine = require('../internals/redefine');
6
6
  var has = require('../internals/has');
7
7
  var classof = require('../internals/classof-raw');
8
8
  var inheritIfRequired = require('../internals/inherit-if-required');
9
+ var isSymbol = require('../internals/is-symbol');
9
10
  var toPrimitive = require('../internals/to-primitive');
10
11
  var fails = require('../internals/fails');
11
12
  var create = require('../internals/object-create');
@@ -24,7 +25,8 @@ var BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;
24
25
  // `ToNumber` abstract operation
25
26
  // https://tc39.es/ecma262/#sec-tonumber
26
27
  var toNumber = function (argument) {
27
- var it = toPrimitive(argument, false);
28
+ if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a number');
29
+ var it = toPrimitive(argument, 'number');
28
30
  var first, third, radix, maxCode, digits, length, index, code;
29
31
  if (typeof it == 'string' && it.length > 2) {
30
32
  it = trim(it);
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
3
3
  var DESCRIPTORS = require('../internals/descriptors');
4
4
  var FORCED = require('../internals/object-prototype-accessors-forced');
5
5
  var toObject = require('../internals/to-object');
6
- var toPrimitive = require('../internals/to-primitive');
6
+ var toPropertyKey = require('../internals/to-property-key');
7
7
  var getPrototypeOf = require('../internals/object-get-prototype-of');
8
8
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
9
9
 
@@ -13,7 +13,7 @@ if (DESCRIPTORS) {
13
13
  $({ target: 'Object', proto: true, forced: FORCED }, {
14
14
  __lookupGetter__: function __lookupGetter__(P) {
15
15
  var O = toObject(this);
16
- var key = toPrimitive(P, true);
16
+ var key = toPropertyKey(P);
17
17
  var desc;
18
18
  do {
19
19
  if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;
@@ -3,7 +3,7 @@ var $ = require('../internals/export');
3
3
  var DESCRIPTORS = require('../internals/descriptors');
4
4
  var FORCED = require('../internals/object-prototype-accessors-forced');
5
5
  var toObject = require('../internals/to-object');
6
- var toPrimitive = require('../internals/to-primitive');
6
+ var toPropertyKey = require('../internals/to-property-key');
7
7
  var getPrototypeOf = require('../internals/object-get-prototype-of');
8
8
  var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
9
9
 
@@ -13,7 +13,7 @@ if (DESCRIPTORS) {
13
13
  $({ target: 'Object', proto: true, forced: FORCED }, {
14
14
  __lookupSetter__: function __lookupSetter__(P) {
15
15
  var O = toObject(this);
16
- var key = toPrimitive(P, true);
16
+ var key = toPropertyKey(P);
17
17
  var desc;
18
18
  do {
19
19
  if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;
@@ -55,7 +55,8 @@ var SUBCLASSING = false;
55
55
  var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
56
56
 
57
57
  var FORCED = isForced(PROMISE, function () {
58
- var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);
58
+ var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);
59
+ var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);
59
60
  // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
60
61
  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
61
62
  // We can't detect it synchronously, so just check versions
@@ -65,7 +66,7 @@ var FORCED = isForced(PROMISE, function () {
65
66
  // We can't use @@species feature detection in V8 since it causes
66
67
  // deoptimization and performance degradation
67
68
  // https://github.com/zloirock/core-js/issues/679
68
- if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;
69
+ if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;
69
70
  // Detect correctness of subclassing with @@species support
70
71
  var promise = new PromiseConstructor(function (resolve) { resolve(1); });
71
72
  var FakePromise = function (exec) {
@@ -1,7 +1,7 @@
1
1
  var $ = require('../internals/export');
2
2
  var DESCRIPTORS = require('../internals/descriptors');
3
3
  var anObject = require('../internals/an-object');
4
- var toPrimitive = require('../internals/to-primitive');
4
+ var toPropertyKey = require('../internals/to-property-key');
5
5
  var definePropertyModule = require('../internals/object-define-property');
6
6
  var fails = require('../internals/fails');
7
7
 
@@ -16,7 +16,7 @@ var ERROR_INSTEAD_OF_FALSE = fails(function () {
16
16
  $({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {
17
17
  defineProperty: function defineProperty(target, propertyKey, attributes) {
18
18
  anObject(target);
19
- var key = toPrimitive(propertyKey, true);
19
+ var key = toPropertyKey(propertyKey);
20
20
  anObject(attributes);
21
21
  try {
22
22
  definePropertyModule.f(target, key, attributes);
@@ -6,6 +6,7 @@ var createNonEnumerableProperty = require('../internals/create-non-enumerable-pr
6
6
  var defineProperty = require('../internals/object-define-property').f;
7
7
  var getOwnPropertyNames = require('../internals/object-get-own-property-names').f;
8
8
  var isRegExp = require('../internals/is-regexp');
9
+ var toString = require('../internals/to-string');
9
10
  var getFlags = require('../internals/regexp-flags');
10
11
  var stickyHelpers = require('../internals/regexp-sticky-helpers');
11
12
  var redefine = require('../internals/redefine');
@@ -125,8 +126,8 @@ if (isForced('RegExp', BASE_FORCED)) {
125
126
  if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags.call(rawPattern);
126
127
  }
127
128
 
128
- pattern = pattern === undefined ? '' : String(pattern);
129
- flags = flags === undefined ? '' : String(flags);
129
+ pattern = pattern === undefined ? '' : toString(pattern);
130
+ flags = flags === undefined ? '' : toString(flags);
130
131
  rawPattern = pattern;
131
132
 
132
133
  if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  var redefine = require('../internals/redefine');
3
3
  var anObject = require('../internals/an-object');
4
+ var $toString = require('../internals/to-string');
4
5
  var fails = require('../internals/fails');
5
6
  var flags = require('../internals/regexp-flags');
6
7
 
@@ -17,9 +18,9 @@ var INCORRECT_NAME = nativeToString.name != TO_STRING;
17
18
  if (NOT_GENERIC || INCORRECT_NAME) {
18
19
  redefine(RegExp.prototype, TO_STRING, function toString() {
19
20
  var R = anObject(this);
20
- var p = String(R.source);
21
+ var p = $toString(R.source);
21
22
  var rf = R.flags;
22
- var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);
23
+ var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);
23
24
  return '/' + p + '/' + f;
24
25
  }, { unsafe: true });
25
26
  }