Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: zloirock/core-js
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.22.8
Choose a base ref
...
head repository: zloirock/core-js
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.23.0
Choose a head ref
Loading
Showing with 2,339 additions and 1,087 deletions.
  1. +1 −1 .eslintrc.js
  2. +23 −0 CHANGELOG.md
  3. +3 −0 CONTRIBUTING.md
  4. +73 −65 README.md
  5. +1 −1 deno/corejs/README.md
  6. +1,000 −764 deno/corejs/index.js
  7. +15 −11 package.json
  8. +3 −3 packages/core-js-builder/package.json
  9. +6 −6 packages/core-js-bundle/README.md
  10. +1 −1 packages/core-js-bundle/package.json
  11. +33 −26 packages/core-js-compat/README.md
  12. +2 −2 packages/core-js-compat/package.json
  13. +53 −16 packages/core-js-compat/src/data.mjs
  14. +9 −3 packages/core-js-compat/src/mapping.mjs
  15. +11 −0 packages/core-js-compat/src/modules-by-versions.mjs
  16. +6 −6 packages/core-js-pure/README.md
  17. +1 −0 packages/core-js-pure/override/modules/es.typed-array.find-last-index.js
  18. +1 −0 packages/core-js-pure/override/modules/es.typed-array.find-last.js
  19. +1 −1 packages/core-js-pure/package.json
  20. +6 −6 packages/core-js/README.md
  21. +2 −2 packages/core-js/actual/array/find-last-index.js
  22. +2 −2 packages/core-js/actual/array/find-last.js
  23. +6 −0 packages/core-js/actual/array/group-to-map.js
  24. +4 −0 packages/core-js/actual/array/group.js
  25. +2 −0 packages/core-js/actual/array/index.js
  26. +3 −0 packages/core-js/actual/array/push.js
  27. +3 −0 packages/core-js/actual/array/unshift.js
  28. +2 −2 packages/core-js/actual/array/virtual/find-last-index.js
  29. +2 −2 packages/core-js/actual/array/virtual/find-last.js
  30. +6 −0 packages/core-js/actual/array/virtual/group-to-map.js
  31. +4 −0 packages/core-js/actual/array/virtual/group.js
  32. +2 −0 packages/core-js/actual/array/virtual/index.js
  33. +3 −0 packages/core-js/actual/array/virtual/push.js
  34. +3 −0 packages/core-js/actual/array/virtual/unshift.js
  35. +9 −0 packages/core-js/actual/instance/group-to-map.js
  36. +9 −0 packages/core-js/actual/instance/group.js
  37. +3 −0 packages/core-js/actual/instance/push.js
  38. +3 −0 packages/core-js/actual/instance/unshift.js
  39. +3 −0 packages/core-js/actual/typed-array/find-last-index.js
  40. +3 −0 packages/core-js/actual/typed-array/find-last.js
  41. +4 −0 packages/core-js/es/array/find-last-index.js
  42. +4 −0 packages/core-js/es/array/find-last.js
  43. +4 −0 packages/core-js/es/array/index.js
  44. +4 −0 packages/core-js/es/array/push.js
  45. +4 −0 packages/core-js/es/array/unshift.js
  46. +4 −0 packages/core-js/es/array/virtual/find-last-index.js
  47. +4 −0 packages/core-js/es/array/virtual/find-last.js
  48. +4 −0 packages/core-js/es/array/virtual/index.js
  49. +4 −0 packages/core-js/es/array/virtual/push.js
  50. +4 −0 packages/core-js/es/array/virtual/unshift.js
  51. +9 −0 packages/core-js/es/instance/find-last-index.js
  52. +9 −0 packages/core-js/es/instance/find-last.js
  53. +9 −0 packages/core-js/es/instance/push.js
  54. +9 −0 packages/core-js/es/instance/unshift.js
  55. +1 −0 packages/core-js/es/typed-array/find-last-index.js
  56. +1 −0 packages/core-js/es/typed-array/find-last.js
  57. +2 −0 packages/core-js/es/typed-array/methods.js
  58. +3 −0 packages/core-js/full/array/group-to-map.js
  59. +3 −0 packages/core-js/full/array/group.js
  60. +3 −0 packages/core-js/full/array/push.js
  61. +3 −0 packages/core-js/full/array/unshift.js
  62. +3 −0 packages/core-js/full/array/virtual/group-to-map.js
  63. +3 −0 packages/core-js/full/array/virtual/group.js
  64. +3 −0 packages/core-js/full/array/virtual/push.js
  65. +3 −0 packages/core-js/full/array/virtual/unshift.js
  66. +3 −0 packages/core-js/full/instance/group-to-map.js
  67. +3 −0 packages/core-js/full/instance/group.js
  68. +3 −0 packages/core-js/full/instance/push.js
  69. +3 −0 packages/core-js/full/instance/unshift.js
  70. +2 −2 packages/core-js/full/symbol/index.js
  71. +4 −0 packages/core-js/full/symbol/metadata-key.js
  72. +32 −0 packages/core-js/internals/array-group-to-map.js
  73. 0 packages/core-js/internals/{array-group-by.js → array-group.js}
  74. +7 −2 packages/core-js/internals/define-built-in.js
  75. +2 −0 packages/core-js/internals/engine-is-deno.js
  76. +2 −2 packages/core-js/internals/shared.js
  77. +14 −0 packages/core-js/modules/es.array.find-last-index.js
  78. +14 −0 packages/core-js/modules/es.array.find-last.js
  79. +39 −0 packages/core-js/modules/es.array.push.js
  80. +42 −0 packages/core-js/modules/es.array.unshift.js
  81. +1 −1 packages/core-js/modules/es.number.epsilon.js
  82. +1 −1 packages/core-js/modules/es.number.max-safe-integer.js
  83. +1 −1 packages/core-js/modules/es.number.min-safe-integer.js
  84. +38 −1 packages/core-js/modules/es.regexp.flags.js
  85. +12 −0 packages/core-js/modules/es.typed-array.find-last-index.js
  86. +12 −0 packages/core-js/modules/es.typed-array.find-last.js
  87. +2 −14 packages/core-js/modules/esnext.array.find-last-index.js
  88. +2 −14 packages/core-js/modules/esnext.array.find-last.js
  89. +4 −30 packages/core-js/modules/esnext.array.group-by-to-map.js
  90. +3 −2 packages/core-js/modules/esnext.array.group-by.js
  91. +11 −0 packages/core-js/modules/esnext.array.group-to-map.js
  92. +15 −0 packages/core-js/modules/esnext.array.group.js
  93. +1 −1 packages/core-js/modules/esnext.math.deg-per-rad.js
  94. +1 −1 packages/core-js/modules/esnext.math.rad-per-deg.js
  95. +5 −0 packages/core-js/modules/esnext.symbol.metadata-key.js
  96. +1 −0 packages/core-js/modules/esnext.symbol.metadata.js
  97. +2 −12 packages/core-js/modules/esnext.typed-array.find-last-index.js
  98. +2 −12 packages/core-js/modules/esnext.typed-array.find-last.js
  99. +2 −2 packages/core-js/modules/esnext.typed-array.group-by.js
  100. +21 −11 packages/core-js/modules/esnext.typed-array.with.js
  101. +17 −5 packages/core-js/modules/web.structured-clone.js
  102. +1 −1 packages/core-js/package.json
  103. +3 −0 packages/core-js/proposals/array-grouping-stage-3-2.js
  104. +1 −0 packages/core-js/proposals/array-grouping-stage-3.js
  105. +2 −0 packages/core-js/proposals/decorator-metadata.js
  106. +1 −2 packages/core-js/proposals/decorators.js
  107. +1 −0 packages/core-js/stable/array/find-last-index.js
  108. +1 −0 packages/core-js/stable/array/find-last.js
  109. +3 −0 packages/core-js/stable/array/push.js
  110. +3 −0 packages/core-js/stable/array/unshift.js
  111. +1 −0 packages/core-js/stable/array/virtual/find-last-index.js
  112. +1 −0 packages/core-js/stable/array/virtual/find-last.js
  113. +3 −0 packages/core-js/stable/array/virtual/push.js
  114. +3 −0 packages/core-js/stable/array/virtual/unshift.js
  115. +3 −0 packages/core-js/stable/instance/find-last-index.js
  116. +3 −0 packages/core-js/stable/instance/find-last.js
  117. +3 −0 packages/core-js/stable/instance/push.js
  118. +3 −0 packages/core-js/stable/instance/unshift.js
  119. +1 −0 packages/core-js/stable/typed-array/find-last-index.js
  120. +1 −0 packages/core-js/stable/typed-array/find-last.js
  121. +2 −1 packages/core-js/stage/2.js
  122. +3 −1 packages/core-js/stage/3.js
  123. +1 −1 scripts/check-compat-data-modules-by-versions.mjs
  124. +3 −0 scripts/check-compat-tests.mjs
  125. +56 −21 tests/commonjs.mjs
  126. +75 −22 tests/compat/tests.js
  127. +24 −1 tests/helpers/qunit-helpers.js
  128. +1 −1 tests/pure/{esnext.array.find-last-index.js → es.array.find-last-index.js}
  129. +1 −1 tests/pure/{esnext.array.find-last.js → es.array.find-last.js}
  130. +22 −0 tests/pure/es.array.push.js
  131. +20 −0 tests/pure/es.array.unshift.js
  132. +37 −0 tests/pure/esnext.array.group-to-map.js
  133. +36 −0 tests/pure/esnext.array.group.js
  134. +6 −0 tests/pure/esnext.symbol.metadata-key.js
  135. +66 −0 tests/test262.js
  136. 0 tests/tests/{esnext.array.find-last-index.js → es.array.find-last-index.js}
  137. 0 tests/tests/{esnext.array.find-last.js → es.array.find-last.js}
  138. +26 −0 tests/tests/es.array.push.js
  139. +24 −0 tests/tests/es.array.unshift.js
  140. +2 −0 tests/tests/es.number.epsilon.js
  141. +2 −0 tests/tests/es.number.max-safe-integer.js
  142. +2 −0 tests/tests/es.number.min-safe-integer.js
  143. +36 −0 tests/tests/es.regexp.flags.js
  144. +0 −1 tests/tests/esnext.array.group-by-to-map.js
  145. +39 −0 tests/tests/esnext.array.group-to-map.js
  146. +39 −0 tests/tests/esnext.array.group.js
  147. +2 −0 tests/tests/esnext.math.deg-per-rad.js
  148. +2 −0 tests/tests/esnext.math.rad-per-deg.js
  149. +13 −0 tests/tests/esnext.symbol.metadata-key.js
  150. +10 −0 tests/tests/esnext.typed-array.with.js
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1072,7 +1072,7 @@ const json = {
// disallow invalid number for JSON
'jsonc/valid-json-number': ERROR,
// specify the maximum length of a line in your program
'max-len': [ERROR, { ...base['max-len'][1], code: 180 }],
'max-len': OFF,
// require strict mode directives
strict: OFF,
};
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -2,6 +2,29 @@
##### Unreleased
- Nothing

##### [3.23.0 - 2022.06.14](https://github.com/zloirock/core-js/releases/tag/v3.23.0)
- [`Array` find from last](https://github.com/tc39/proposal-array-find-from-last) moved to the stable ES, according to June 2022 TC39 meeting:
- `Array.prototype.findLast`
- `Array.prototype.findLastIndex`
- `%TypedArray%.prototype.findLast`
- `%TypedArray%.prototype.findLastIndex`
- Methods from [the `Array` grouping proposal](https://github.com/tc39/proposal-array-grouping) [renamed](https://github.com/tc39/proposal-array-grouping/pull/39), according to June 2022 TC39 meeting:
- `Array.prototype.groupBy` -> `Array.prototype.group`
- `Array.prototype.groupByToMap` -> `Array.prototype.groupToMap`
- Changed the order of operations in `%TypedArray%.prototype.with` following [proposal-change-array-by-copy/86](https://github.com/tc39/proposal-change-array-by-copy/issues/86), according to June 2022 TC39 meeting
- [Decorator Metadata proposal](https://github.com/tc39/proposal-decorator-metadata) extracted from [Decorators proposal](https://github.com/tc39/proposal-decorators) as a separate stage 2 proposal, according to March 2022 TC39 meeting, `Symbol.metadataKey` replaces `Symbol.metadata`
- Added `Array.prototype.push` polyfill with some fixes for modern engines
- Added `Array.prototype.unshift` polyfill with some fixes for modern engines
- Fixed a bug in the order of getting flags in `RegExp.prototype.flags` in the actual version of V8
- Fixed property descriptors of some `Math` and `Number` constants
- Added a workaround of V8 `ArrayBufferDetaching` protector cell invalidation and performance degradation on `structuredClone` feature detection, one more case of [#679](https://github.com/zloirock/core-js/issues/679)
- Added detection of NodeJS [bug](https://github.com/nodejs/node/issues/41038) in `structuredClone` that can not clone `DOMException` (just in case for future versions that will fix other issues)
- Compat data:
- Added NodeJS 18.3 compat data mapping
- Added and fixed Deno 1.22 and 1.21 compat data mapping
- Added Opera Android 69 compat data mapping
- Updated Electron 20.0 compat data mapping

##### [3.22.8 - 2022.06.02](https://github.com/zloirock/core-js/releases/tag/v3.22.8)
- Fixed possible multiple call of `ToBigInt` / `ToNumber` conversion of the argument passed to `%TypedArray%.prototype.fill` in V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18
- Fixed some cases of `DeletePropertyOrThrow` in IE9-
3 changes: 3 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -20,6 +20,9 @@ Contributions are always welcome. If you don't know how you can help, you can ch
For updating `core-js-compat` data:

- If you want to add new data for a browser, run in this browser [`tests/compat/index.html`](http://es6.zloirock.ru/compat/) and you will see what `core-js` modules are required for this browser.

![compat-table](https://user-images.githubusercontent.com/2213682/173199354-1f3aeb83-7231-46b2-8a14-a9d47ce3ae45.png)

- If you want to add new data for NodeJS, run `npm run compat-node` with the installed required NodeJS version and you will see the results in the console. Use `npm run compat-node-json` if you want to get the result as JSON.
- If you want to add new data for Deno, run `npm run compat-deno` with the installed required Deno version and you will see the results in the console. Use `npm run compat-deno-json` if you want to get the result as JSON.
- If you want to add new data for Rhino, set the required Rhino version in `compat-rhino-prepare` NPM script in [`package.json`](./package.json), run `npm run compat-rhino` and you will see the results in the console.
Loading