From bc8b9c794363ebd9c69ce6560063998974734c09 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 2 Jul 2022 20:37:15 +0700 Subject: [PATCH 1/4] add Hermes compat tests runner --- CHANGELOG.md | 1 + CONTRIBUTING.md | 2 ++ package.json | 1 + packages/core-js-compat/README.md | 1 + packages/core-js-compat/targets-parser.js | 1 + tests/compat/browsers-runner.js | 1 + tests/compat/hermes-adapter.mjs | 3 +++ tests/compat/hermes-runner.js | 7 +++++++ tests/compat/metadata.json | 10 ++++++++++ tests/compat/rhino-runner.js | 2 +- 10 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 tests/compat/hermes-adapter.mjs create mode 100644 tests/compat/hermes-runner.js create mode 100644 tests/compat/metadata.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 112e11cd7afd..65c9791fb828 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Changelog ##### Unreleased - Polyfill `Promise` with `unhandledrejection` event support (browser style) in Deno < [1.24](https://github.com/denoland/deno/releases/tag/v1.24.0) +- Added compat data for Hermes - Added compat data for Oculus Browser, [#1098](https://github.com/zloirock/core-js/issues/1098) ##### [3.23.5 - 2022.07.18](https://github.com/zloirock/core-js/releases/tag/v3.23.5) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c18730a09ff1..536cb70235a3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,6 +26,7 @@ For updating `core-js-compat` data: - 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. +- If you want to add new data for Hermes, run `npm run compat-hermes -- YOR_PATH_TO_HERMES` and you will see the results in the console. - After getting this data, add it to [`packages/core-js-compat/src/data.mjs`](./packages/core-js-compat/src/data.mjs). - If you want to add new mapping (for example, to add a new iOS Safari version based on Safari or NodeJS based on Chrome), add it to [`packages/core-js-compat/src/mapping.mjs`](./packages/core-js-compat/src/mapping.mjs). @@ -37,6 +38,7 @@ engine | mandatory check | how to run tests | base data inherits from `edge` | features | browser runner | `ie` (<=18), `chrome` (>=74) | `electron` | | browser runner | `chrome` | required `firefox` | features | browser runner | | +`hermes` | features | hermes runner | | `ie` | features | browser runner | | `ios` | | browser runner | `safari` | required `node` | non-ES features | node runner | `chrome` (only ES) | required diff --git a/package.json b/package.json index fe39a95b9578..6bbee0608ff8 100644 --- a/package.json +++ b/package.json @@ -107,6 +107,7 @@ "compat-node-json": "node tests/compat/node-runner --mode=JSON", "compat-deno": "deno run --allow-read tests/compat/deno-runner.mjs", "compat-deno-json": "deno run --allow-read tests/compat/deno-runner.mjs --mode=JSON", + "compat-hermes": "zx tests/compat/hermes-adapter.mjs", "compat-rhino": "run-s compat-rhino-prepare compat-rhino-run", "compat-rhino-prepare": "zx tests/compat/rhino-prepare.mjs --version=1.7.14", "compat-rhino-run": "java -jar tests/compat/rhino.jar -version 200 -require tests/compat/rhino-runner.js", diff --git a/packages/core-js-compat/README.md b/packages/core-js-compat/README.md index 33e63042078c..649771b9762c 100644 --- a/packages/core-js-compat/README.md +++ b/packages/core-js-compat/README.md @@ -71,6 +71,7 @@ console.log(targets); edge: '13', // Edge version electron: '5.0', // Electron framework version firefox: '15', // Firefox version + hermes: '0.11', // Hermes version ie: '8', // Internet Explorer version ios: '13.0', // iOS Safari version node: 'current', // NodeJS version, you can use 'current' for set it to currently used diff --git a/packages/core-js-compat/targets-parser.js b/packages/core-js-compat/targets-parser.js index 7244b39bfd4d..97789bc5ab4e 100644 --- a/packages/core-js-compat/targets-parser.js +++ b/packages/core-js-compat/targets-parser.js @@ -18,6 +18,7 @@ const validTargets = new Set([ 'edge', 'electron', 'firefox', + 'hermes', 'ie', 'ios', 'node', diff --git a/tests/compat/browsers-runner.js b/tests/compat/browsers-runner.js index 8c04e638554b..d4fb44f0888a 100644 --- a/tests/compat/browsers-runner.js +++ b/tests/compat/browsers-runner.js @@ -10,6 +10,7 @@ var engines = [ 'edge', 'electron', 'firefox', + 'hermes', 'ie', 'ios', 'node', diff --git a/tests/compat/hermes-adapter.mjs b/tests/compat/hermes-adapter.mjs new file mode 100644 index 000000000000..a59ec82c0b88 --- /dev/null +++ b/tests/compat/hermes-adapter.mjs @@ -0,0 +1,3 @@ +const [HERMES_PATH] = argv._; + +await $`${ HERMES_PATH } -w -commonjs ./tests/compat`; diff --git a/tests/compat/hermes-runner.js b/tests/compat/hermes-runner.js new file mode 100644 index 000000000000..f5c93d508586 --- /dev/null +++ b/tests/compat/hermes-runner.js @@ -0,0 +1,7 @@ +require('./tests.js'); +require('./compat-data.js'); +require('./common-runner.js'); + +/* global showResults -- safe */ +/* eslint-disable-next-line no-restricted-globals -- output */ +showResults('hermes', print); diff --git a/tests/compat/metadata.json b/tests/compat/metadata.json new file mode 100644 index 000000000000..8efafd84ef56 --- /dev/null +++ b/tests/compat/metadata.json @@ -0,0 +1,10 @@ +{ + "segments": { + "0": [ + "./hermes-runner.js", + "./tests.js", + "./compat-data.js", + "./common-runner.js" + ] + } +} diff --git a/tests/compat/rhino-runner.js b/tests/compat/rhino-runner.js index 58a116ddfa94..c4cfe55cf089 100644 --- a/tests/compat/rhino-runner.js +++ b/tests/compat/rhino-runner.js @@ -2,5 +2,5 @@ require('./tests'); require('./compat-data'); require('./common-runner'); -/* eslint-disable no-restricted-globals -- output */ +/* eslint-disable-next-line no-restricted-globals -- output */ global.showResults('rhino', print); From 24d80d38713ed334ddf8a51e0803b6e2933d5c78 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 2 Jul 2022 20:38:06 +0700 Subject: [PATCH 2/4] add compat data for Hermes 0.11 --- packages/core-js-compat/src/data.mjs | 181 +++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 5018efc8109e..1e7a2d437321 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -4,12 +4,14 @@ export const data = { chrome: '49', edge: '15', firefox: '51', + hermes: '0.11', safari: '10.0', }, 'es.symbol.constructor': { chrome: '41', edge: '13', firefox: '36', + hermes: '0.11', safari: '9.0', rhino: '1.7.14', }, @@ -27,6 +29,7 @@ export const data = { chrome: '41', edge: '13', firefox: '36', + hermes: '0.11', safari: '9.0', rhino: '1.7.14', }, @@ -34,6 +37,7 @@ export const data = { chrome: '50', edge: '15', firefox: '49', + hermes: '0.11', safari: '10.0', rhino: '1.7.13', }, @@ -41,6 +45,7 @@ export const data = { chrome: '48', edge: '15', firefox: '48', + hermes: '0.11', safari: '10.0', rhino: '1.7.13', }, @@ -48,6 +53,7 @@ export const data = { chrome: '41', edge: '13', firefox: '36', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -55,29 +61,34 @@ export const data = { chrome: '41', edge: '13', firefox: '36', + hermes: '0.11', safari: '9.0', rhino: '1.7.14', }, 'es.symbol.match': { chrome: '50', firefox: '40', + hermes: '0.11', safari: '10.0', rhino: '1.7.13', }, 'es.symbol.match-all': { chrome: '73', firefox: '67', + hermes: '0.11', safari: '13', }, 'es.symbol.replace': { chrome: '50', firefox: '49', + hermes: '0.11', safari: '10.0', rhino: '1.7.13', }, 'es.symbol.search': { chrome: '50', firefox: '49', + hermes: '0.11', safari: '10.0', rhino: '1.7.13', }, @@ -91,6 +102,7 @@ export const data = { 'es.symbol.split': { chrome: '50', firefox: '49', + hermes: '0.11', safari: '10.0', rhino: '1.7.13', }, @@ -98,6 +110,7 @@ export const data = { chrome: '47', edge: '15', firefox: '44', + hermes: '0.11', safari: '10.0', rhino: '1.7.13', }, @@ -105,6 +118,7 @@ export const data = { chrome: '49', edge: '15', firefox: '51', + hermes: '0.11', safari: '10.0', rhino: '1.7.13', }, @@ -118,11 +132,13 @@ export const data = { 'es.error.cause': { chrome: '94', firefox: '91', + hermes: '0.11', safari: '15.0', }, 'es.error.to-string': { chrome: '33', firefox: '11', + hermes: '0.11', ie: '9', safari: '8.0', rhino: '1.7.14', @@ -159,6 +175,7 @@ export const data = { 'es.array.every': { chrome: '26', firefox: '4', + hermes: '0.11', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -189,25 +206,30 @@ export const data = { }, 'es.array.find-last': { chrome: '97', + hermes: '0.11', safari: '15.4', }, 'es.array.find-last-index': { chrome: '97', + hermes: '0.11', safari: '15.4', }, 'es.array.flat': { chrome: '69', firefox: '62', + hermes: '0.11', safari: '12.0', }, 'es.array.flat-map': { chrome: '69', firefox: '62', + hermes: '0.11', safari: '12.0', }, 'es.array.for-each': { chrome: '26', firefox: '4', + hermes: '0.11', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -229,6 +251,7 @@ export const data = { 'es.array.index-of': { chrome: '51', firefox: '47', + hermes: '0.11', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -236,6 +259,7 @@ export const data = { 'es.array.is-array': { chrome: '5', firefox: '4', + hermes: '0.11', ie: '9', opera: '10.50', safari: '4.0', @@ -251,12 +275,14 @@ export const data = { chrome: '26', edge: '13', firefox: '4', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, 'es.array.last-index-of': { chrome: '51', firefox: '47', + hermes: '0.11', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -271,6 +297,7 @@ export const data = { chrome: '45', edge: '13', firefox: '25', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -279,12 +306,14 @@ export const data = { // chrome: '103', // edge: '15', firefox: '55', + hermes: '0.11', // the same to Chrome bug fixed only in Safari TP // safari: '15.4', }, 'es.array.reduce': { chrome: '83', // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 firefox: '4', + hermes: '0.11', ie: '9', node: '6.0', // ^^^ safari: '7.1', @@ -293,6 +322,7 @@ export const data = { 'es.array.reduce-right': { chrome: '83', // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 firefox: '4', + hermes: '0.11', ie: '9', node: '6.0', // ^^^ safari: '7.1', @@ -301,6 +331,7 @@ export const data = { 'es.array.reverse': { chrome: '1', firefox: '1', + hermes: '0.11', ie: '5.5', opera: '10.50', // safari 12.0 has a serious bug @@ -316,6 +347,7 @@ export const data = { 'es.array.some': { chrome: '26', firefox: '4', + hermes: '0.11', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -323,6 +355,7 @@ export const data = { 'es.array.sort': { chrome: '70', firefox: '4', + hermes: '0.11', safari: '12.0', }, 'es.array.species': { @@ -350,6 +383,7 @@ export const data = { 'es.array.unshift': { chrome: '71', firefox: '23', + hermes: '0.11', ie: '9', // bug with setting length fixed only in Safari TP // safari: '15.4', @@ -358,17 +392,20 @@ export const data = { chrome: '26', edge: '14', firefox: '44', + hermes: '0.11', safari: '12.0', }, 'es.array-buffer.is-view': { chrome: '32', firefox: '29', + hermes: '0.11', ie: '11', safari: '7.1', }, 'es.array-buffer.slice': { chrome: '31', firefox: '46', + hermes: '0.11', ie: '11', safari: '12.1', rhino: '1.7.13', @@ -378,6 +415,7 @@ export const data = { 'es.data-view.constructor': { chrome: '26', firefox: '15', + hermes: '0.11', ie: '10', safari: '7.1', rhino: '1.7.13', @@ -385,6 +423,7 @@ export const data = { 'es.date.get-year': { chrome: '1', firefox: '1', + hermes: '0.11', ie: '9', opera: '3', safari: '1', @@ -394,6 +433,7 @@ export const data = { 'es.date.now': { chrome: '5', firefox: '2', + hermes: '0.11', ie: '9', opera: '10.50', safari: '4.0', @@ -402,6 +442,7 @@ export const data = { 'es.date.set-year': { chrome: '1', firefox: '1', + hermes: '0.11', ie: '3', opera: '3', safari: '1', @@ -410,6 +451,7 @@ export const data = { 'es.date.to-gmt-string': { chrome: '1', firefox: '1', + hermes: '0.11', ie: '3', opera: '3', safari: '1', @@ -418,6 +460,7 @@ export const data = { 'es.date.to-iso-string': { chrome: '26', firefox: '7', + hermes: '0.11', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -425,6 +468,7 @@ export const data = { 'es.date.to-json': { chrome: '26', firefox: '4', + hermes: '0.11', ie: '9', safari: '10.0', rhino: '1.7.13', @@ -433,12 +477,14 @@ export const data = { chrome: '47', edge: '15', firefox: '44', + hermes: '0.11', safari: '10.0', }, // TODO: Remove from `core-js@4` 'es.date.to-string': { chrome: '5', firefox: '2', + hermes: '0.11', ie: '9', opera: '10.50', safari: '3.1', @@ -447,6 +493,7 @@ export const data = { 'es.escape': { chrome: '1', firefox: '1', + hermes: '0.11', ie: '3', opera: '3', safari: '1', @@ -455,6 +502,7 @@ export const data = { 'es.function.bind': { chrome: '7', firefox: '4', + hermes: '0.11', ie: '9', opera: '12', safari: '5.1', @@ -464,12 +512,14 @@ export const data = { chrome: '51', edge: '15', firefox: '50', + hermes: '0.11', safari: '10.0', }, 'es.function.name': { chrome: '5', edge: '12', firefox: '2', + hermes: '0.11', opera: '10.50', safari: '4.0', rhino: '1.7.13', @@ -477,6 +527,7 @@ export const data = { 'es.global-this': { chrome: '71', firefox: '65', + hermes: '0.11', safari: '12.1', rhino: '1.7.14', }, @@ -489,6 +540,7 @@ export const data = { chrome: '50', edge: '15', firefox: '51', + hermes: '0.11', safari: '10.0', }, // TODO: Remove this module from `core-js@4` since it's replaced to module below @@ -504,12 +556,14 @@ export const data = { chrome: '54', edge: '13', firefox: '25', + hermes: '0.11', safari: '7.1', }, 'es.math.asinh': { chrome: '38', edge: '13', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -517,6 +571,7 @@ export const data = { chrome: '38', edge: '13', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -524,6 +579,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -531,6 +587,7 @@ export const data = { chrome: '38', edge: '12', firefox: '31', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -538,6 +595,7 @@ export const data = { chrome: '39', edge: '13', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -545,6 +603,7 @@ export const data = { chrome: '39', edge: '13', firefox: '46', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -552,6 +611,7 @@ export const data = { chrome: '38', edge: '12', firefox: '26', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -560,6 +620,7 @@ export const data = { chrome: '78', // '38', edge: '12', firefox: '27', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -567,6 +628,7 @@ export const data = { chrome: '28', edge: '13', firefox: '20', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -574,6 +636,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -581,6 +644,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -588,6 +652,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -595,6 +660,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -602,6 +668,7 @@ export const data = { chrome: '39', edge: '13', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -609,6 +676,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -616,12 +684,14 @@ export const data = { chrome: '50', edge: '15', firefox: '51', + hermes: '0.11', safari: '10.0', }, 'es.math.trunc': { chrome: '38', edge: '12', firefox: '25', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -629,6 +699,7 @@ export const data = { chrome: '41', edge: '13', firefox: '46', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -636,6 +707,7 @@ export const data = { chrome: '34', edge: '12', firefox: '25', + hermes: '0.11', safari: '9.0', rhino: '1.7.14', }, @@ -644,6 +716,7 @@ export const data = { chrome: '19', edge: '12', firefox: '16', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -651,6 +724,7 @@ export const data = { chrome: '34', edge: '12', firefox: '16', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -659,6 +733,7 @@ export const data = { chrome: '19', edge: '12', firefox: '15', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -666,6 +741,7 @@ export const data = { chrome: '34', edge: '12', firefox: '32', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -673,6 +749,7 @@ export const data = { chrome: '34', edge: '12', firefox: '31', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -680,18 +757,21 @@ export const data = { chrome: '34', edge: '12', firefox: '31', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, 'es.number.parse-float': { chrome: '35', firefox: '39', + hermes: '0.11', safari: '11.0', rhino: '1.7.14', }, 'es.number.parse-int': { chrome: '35', firefox: '39', + hermes: '0.11', safari: '9.0', rhino: '1.7.14', }, @@ -699,18 +779,21 @@ export const data = { chrome: '51', edge: '18', firefox: '87', + hermes: '0.11', safari: '11', rhino: '1.7.14', }, 'es.number.to-fixed': { chrome: '26', firefox: '4', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, 'es.number.to-precision': { chrome: '26', firefox: '4', + hermes: '0.11', ie: '8', safari: '7.1', rhino: '1.7.13', @@ -720,12 +803,14 @@ export const data = { // order of operations bug // edge: '13', firefox: '36', + hermes: '0.11', safari: '9.0', }, // TODO: Remove from `core-js@4` 'es.object.create': { chrome: '5', firefox: '4', + hermes: '0.11', ie: '9', opera: '12', safari: '4.0', @@ -735,12 +820,14 @@ export const data = { chrome: '62', edge: '16', firefox: '48', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, 'es.object.define-properties': { chrome: '37', firefox: '4', + hermes: '0.11', ie: '9', opera: '12', safari: '5.1', @@ -749,6 +836,7 @@ export const data = { 'es.object.define-property': { chrome: '37', firefox: '4', + hermes: '0.11', ie: '9', opera: '12', safari: '5.1', @@ -758,6 +846,7 @@ export const data = { chrome: '62', edge: '16', firefox: '48', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -765,6 +854,7 @@ export const data = { chrome: '54', edge: '14', firefox: '47', + hermes: '0.11', safari: '10.1', rhino: '1.7.14', }, @@ -772,12 +862,14 @@ export const data = { chrome: '44', edge: '13', firefox: '35', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, 'es.object.from-entries': { chrome: '73', firefox: '63', + hermes: '0.11', safari: '12.1', rhino: '1.7.14', }, @@ -785,6 +877,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -792,12 +885,14 @@ export const data = { chrome: '54', edge: '15', firefox: '50', + hermes: '0.11', safari: '10.0', }, 'es.object.get-own-property-names': { chrome: '40', edge: '13', firefox: '34', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -805,6 +900,7 @@ export const data = { chrome: '41', edge: '13', firefox: '36', + hermes: '0.11', safari: '9.0', rhino: '1.7.14', }, @@ -812,12 +908,14 @@ export const data = { chrome: '44', edge: '13', firefox: '35', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, 'es.object.has-own': { chrome: '93', firefox: '92', + hermes: '0.11', safari: '15.4', }, 'es.object.is': { @@ -825,6 +923,7 @@ export const data = { chrome: '19', edge: '12', firefox: '22', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -832,6 +931,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -839,6 +939,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -846,6 +947,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -853,6 +955,7 @@ export const data = { chrome: '40', edge: '13', firefox: '35', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -860,6 +963,7 @@ export const data = { chrome: '62', edge: '16', firefox: '48', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -867,6 +971,7 @@ export const data = { chrome: '62', edge: '16', firefox: '48', + hermes: '0.11', safari: '7.1', rhino: '1.7.13', }, @@ -874,6 +979,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -881,12 +987,14 @@ export const data = { chrome: '44', edge: '13', firefox: '35', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, 'es.object.set-prototype-of': { chrome: '34', firefox: '31', + hermes: '0.11', ie: '11', safari: '9.0', rhino: '1.7.13', @@ -895,12 +1003,14 @@ export const data = { chrome: '49', edge: '15', firefox: '51', + hermes: '0.11', safari: '10.0', }, 'es.object.values': { chrome: '54', edge: '14', firefox: '47', + hermes: '0.11', safari: '10.1', rhino: '1.7.14', }, @@ -908,6 +1018,7 @@ export const data = { chrome: '35', edge: '74', firefox: '8', + hermes: '0.11', ie: '8', safari: '7.1', rhino: '1.7.13', @@ -916,6 +1027,7 @@ export const data = { chrome: '35', edge: '74', firefox: '21', + hermes: '0.11', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -1009,66 +1121,77 @@ export const data = { chrome: '49', edge: '15', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.construct': { chrome: '49', edge: '15', firefox: '44', + hermes: '0.11', safari: '10.0', }, 'es.reflect.define-property': { chrome: '49', edge: '13', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.delete-property': { chrome: '49', edge: '12', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.get': { chrome: '49', edge: '12', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.get-own-property-descriptor': { chrome: '49', edge: '12', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.get-prototype-of': { chrome: '49', edge: '12', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.has': { chrome: '49', edge: '12', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.is-extensible': { chrome: '49', edge: '12', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.own-keys': { chrome: '49', edge: '12', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.prevent-extensions': { chrome: '49', edge: '12', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.set': { @@ -1077,17 +1200,20 @@ export const data = { // edge: '12', chrome: '49', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.set-prototype-of': { chrome: '49', edge: '12', firefox: '42', + hermes: '0.11', safari: '10.0', }, 'es.reflect.to-string-tag': { chrome: '86', firefox: '82', + hermes: '0.11', safari: '14.0', }, 'es.regexp.constructor': { @@ -1098,6 +1224,7 @@ export const data = { 'es.regexp.dot-all': { chrome: '62', firefox: '78', + hermes: '0.11', safari: '11.1', }, 'es.regexp.exec': { @@ -1109,12 +1236,14 @@ export const data = { // modern V8 has a bug with the order getting of flags // chrome: '62', firefox: '78', + hermes: '0.11', safari: '11.1', }, 'es.regexp.sticky': { chrome: '49', edge: '13', firefox: '3', + hermes: '0.11', safari: '10.0', }, 'es.regexp.test': { @@ -1125,6 +1254,7 @@ export const data = { 'es.regexp.to-string': { chrome: '50', firefox: '46', + hermes: '0.11', safari: '10.0', }, // TODO: Remove this module from `core-js@4` since it's replaced to module below @@ -1145,48 +1275,56 @@ export const data = { chrome: '41', edge: '13', firefox: '29', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, 'es.string.ends-with': { chrome: '51', firefox: '40', + hermes: '0.11', safari: '10.0', }, 'es.string.from-code-point': { chrome: '41', edge: '13', firefox: '29', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, 'es.string.includes': { chrome: '51', firefox: '40', + hermes: '0.11', safari: '10.0', }, 'es.string.iterator': { chrome: '41', edge: '13', firefox: '36', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, 'es.string.match': { chrome: '51', firefox: '49', + hermes: '0.11', safari: '10.0', }, 'es.string.match-all': { // Early implementations does not throw an error on non-global regex chrome: '80', // 73 firefox: '73', // 67 + hermes: '0.11', safari: '13.1', // 13 }, 'es.string.pad-end': { chrome: '57', edge: '15', firefox: '48', + hermes: '0.11', safari: '11.0', rhino: '1.7.13', }, @@ -1194,6 +1332,7 @@ export const data = { chrome: '57', edge: '15', firefox: '48', + hermes: '0.11', safari: '11.0', rhino: '1.7.13', }, @@ -1201,6 +1340,7 @@ export const data = { chrome: '41', edge: '13', firefox: '34', + hermes: '0.11', safari: '9.0', rhino: '1.7.14', }, @@ -1208,6 +1348,7 @@ export const data = { chrome: '41', edge: '13', firefox: '24', + hermes: '0.11', safari: '9.0', rhino: '1.7.13', }, @@ -1219,11 +1360,13 @@ export const data = { 'es.string.replace-all': { chrome: '85', firefox: '77', + hermes: '0.11', safari: '13.1', }, 'es.string.search': { chrome: '51', firefox: '49', + hermes: '0.11', safari: '10.0', }, 'es.string.split': { @@ -1234,12 +1377,14 @@ export const data = { 'es.string.starts-with': { chrome: '51', firefox: '40', + hermes: '0.11', safari: '10.0', }, 'es.string.substr': { chrome: '1', ie: '9', firefox: '1', + hermes: '0.11', opera: '4', safari: '1', rhino: '1.7.13', @@ -1248,26 +1393,31 @@ export const data = { chrome: '59', edge: '15', firefox: '52', + hermes: '0.11', safari: '12.1', }, 'es.string.trim-end': { chrome: '66', firefox: '61', + hermes: '0.11', safari: '12.1', }, 'es.string.trim-left': { chrome: '66', firefox: '61', + hermes: '0.11', safari: '12.0', }, 'es.string.trim-right': { chrome: '66', firefox: '61', + hermes: '0.11', safari: '12.1', }, 'es.string.trim-start': { chrome: '66', firefox: '61', + hermes: '0.11', safari: '12.0', }, 'es.string.anchor': { @@ -1433,49 +1583,58 @@ export const data = { chrome: '45', edge: '13', firefox: '34', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.every': { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.fill': { chrome: '58', firefox: '55', + hermes: '0.11', safari: '14.1', }, 'es.typed-array.filter': { chrome: '45', edge: '13', firefox: '38', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.find': { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.find-index': { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.find-last': { chrome: '97', + hermes: '0.11', safari: '15.4', }, 'es.typed-array.find-last-index': { chrome: '97', + hermes: '0.11', safari: '15.4', }, 'es.typed-array.for-each': { chrome: '45', edge: '13', firefox: '38', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.from': { @@ -1488,36 +1647,42 @@ export const data = { chrome: '49', edge: '14', firefox: '43', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.index-of': { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.iterator': { chrome: '51', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.join': { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.last-index-of': { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.map': { chrome: '45', edge: '13', firefox: '38', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.of': { @@ -1530,41 +1695,48 @@ export const data = { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.reduce-right': { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.reverse': { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.set': { chrome: '95', // '26', // edge: '13', // proper in Chakra Edge 13, but buggy in Chromium < 95 firefox: '54', // '15', + hermes: '0.11', safari: '14.1', // '7.1', }, 'es.typed-array.slice': { chrome: '45', edge: '13', firefox: '38', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.some': { chrome: '45', edge: '13', firefox: '37', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.sort': { chrome: '74', firefox: '67', + hermes: '0.11', // 10.0 - 14.0 accept incorrect arguments safari: '14.1', }, @@ -1572,22 +1744,26 @@ export const data = { chrome: '26', edge: '13', firefox: '15', + hermes: '0.11', safari: '7.1', }, 'es.typed-array.to-locale-string': { chrome: '45', firefox: '51', + hermes: '0.11', safari: '10.0', }, 'es.typed-array.to-string': { chrome: '51', edge: '13', firefox: '51', + hermes: '0.11', safari: '10.0', }, 'es.unescape': { chrome: '1', firefox: '1', + hermes: '0.11', ie: '3', opera: '3', safari: '1', @@ -2003,6 +2179,7 @@ export const data = { deno: '1.0', edge: '16', firefox: '50', + hermes: '0.11', node: '0.0.1', safari: '10.0', rhino: '1.7.13', @@ -2011,6 +2188,7 @@ export const data = { chrome: '66', deno: '1.0', firefox: '60', + hermes: '0.11', node: '0.0.1', safari: '13.1', rhino: '1.7.13', @@ -2058,6 +2236,7 @@ export const data = { firefox: '1', ie: '10', node: '0.0.1', + hermes: '0.11', opera: '7', safari: '1.0', rhino: '1.7.13', @@ -2067,6 +2246,7 @@ export const data = { chrome: '1', deno: '1.0', firefox: '1', + hermes: '0.11', ie: '10', node: '0.0.1', opera: '7', @@ -2086,6 +2266,7 @@ export const data = { chrome: '1', deno: '1.0', firefox: '1', + hermes: '0.11', ie: '10', node: '0.0.1', opera: '7', From 7e1c53684de7e008e04f472c524e2b05f6f59d75 Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sat, 2 Jul 2022 20:59:00 +0700 Subject: [PATCH 3/4] add a link --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65c9791fb828..6954ea0372d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## Changelog ##### Unreleased - Polyfill `Promise` with `unhandledrejection` event support (browser style) in Deno < [1.24](https://github.com/denoland/deno/releases/tag/v1.24.0) -- Added compat data for Hermes +- Added compat data for Hermes, [#1099](https://github.com/zloirock/core-js/issues/1099) - Added compat data for Oculus Browser, [#1098](https://github.com/zloirock/core-js/issues/1098) ##### [3.23.5 - 2022.07.18](https://github.com/zloirock/core-js/releases/tag/v3.23.5) From e9d68867c3d1e82f0b82fe6b45f1d3dc2ab3cc7a Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Sun, 3 Jul 2022 17:01:28 +0700 Subject: [PATCH 4/4] add compat data for Hermes 0.1 - 0.10 --- packages/core-js-compat/src/data.mjs | 354 +++++++++++++-------------- 1 file changed, 177 insertions(+), 177 deletions(-) diff --git a/packages/core-js-compat/src/data.mjs b/packages/core-js-compat/src/data.mjs index 1e7a2d437321..73364724d679 100644 --- a/packages/core-js-compat/src/data.mjs +++ b/packages/core-js-compat/src/data.mjs @@ -4,14 +4,14 @@ export const data = { chrome: '49', edge: '15', firefox: '51', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.symbol.constructor': { chrome: '41', edge: '13', firefox: '36', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.14', }, @@ -29,7 +29,7 @@ export const data = { chrome: '41', edge: '13', firefox: '36', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.14', }, @@ -37,7 +37,7 @@ export const data = { chrome: '50', edge: '15', firefox: '49', - hermes: '0.11', + hermes: '0.1', safari: '10.0', rhino: '1.7.13', }, @@ -45,7 +45,7 @@ export const data = { chrome: '48', edge: '15', firefox: '48', - hermes: '0.11', + hermes: '0.1', safari: '10.0', rhino: '1.7.13', }, @@ -53,7 +53,7 @@ export const data = { chrome: '41', edge: '13', firefox: '36', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -61,34 +61,34 @@ export const data = { chrome: '41', edge: '13', firefox: '36', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.14', }, 'es.symbol.match': { chrome: '50', firefox: '40', - hermes: '0.11', + hermes: '0.1', safari: '10.0', rhino: '1.7.13', }, 'es.symbol.match-all': { chrome: '73', firefox: '67', - hermes: '0.11', + hermes: '0.6', safari: '13', }, 'es.symbol.replace': { chrome: '50', firefox: '49', - hermes: '0.11', + hermes: '0.1', safari: '10.0', rhino: '1.7.13', }, 'es.symbol.search': { chrome: '50', firefox: '49', - hermes: '0.11', + hermes: '0.1', safari: '10.0', rhino: '1.7.13', }, @@ -102,7 +102,7 @@ export const data = { 'es.symbol.split': { chrome: '50', firefox: '49', - hermes: '0.11', + hermes: '0.1', safari: '10.0', rhino: '1.7.13', }, @@ -110,7 +110,7 @@ export const data = { chrome: '47', edge: '15', firefox: '44', - hermes: '0.11', + hermes: '0.1', safari: '10.0', rhino: '1.7.13', }, @@ -118,7 +118,7 @@ export const data = { chrome: '49', edge: '15', firefox: '51', - hermes: '0.11', + hermes: '0.1', safari: '10.0', rhino: '1.7.13', }, @@ -132,13 +132,13 @@ export const data = { 'es.error.cause': { chrome: '94', firefox: '91', - hermes: '0.11', + hermes: '0.8', safari: '15.0', }, 'es.error.to-string': { chrome: '33', firefox: '11', - hermes: '0.11', + hermes: '0.1', ie: '9', safari: '8.0', rhino: '1.7.14', @@ -175,7 +175,7 @@ export const data = { 'es.array.every': { chrome: '26', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -217,19 +217,19 @@ export const data = { 'es.array.flat': { chrome: '69', firefox: '62', - hermes: '0.11', + hermes: '0.4', safari: '12.0', }, 'es.array.flat-map': { chrome: '69', firefox: '62', - hermes: '0.11', + hermes: '0.4', safari: '12.0', }, 'es.array.for-each': { chrome: '26', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -251,7 +251,7 @@ export const data = { 'es.array.index-of': { chrome: '51', firefox: '47', - hermes: '0.11', + hermes: '0.1', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -259,7 +259,7 @@ export const data = { 'es.array.is-array': { chrome: '5', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', opera: '10.50', safari: '4.0', @@ -275,14 +275,14 @@ export const data = { chrome: '26', edge: '13', firefox: '4', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, 'es.array.last-index-of': { chrome: '51', firefox: '47', - hermes: '0.11', + hermes: '0.1', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -297,7 +297,7 @@ export const data = { chrome: '45', edge: '13', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -306,14 +306,14 @@ export const data = { // chrome: '103', // edge: '15', firefox: '55', - hermes: '0.11', + hermes: '0.2', // the same to Chrome bug fixed only in Safari TP // safari: '15.4', }, 'es.array.reduce': { chrome: '83', // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', node: '6.0', // ^^^ safari: '7.1', @@ -322,7 +322,7 @@ export const data = { 'es.array.reduce-right': { chrome: '83', // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', node: '6.0', // ^^^ safari: '7.1', @@ -331,7 +331,7 @@ export const data = { 'es.array.reverse': { chrome: '1', firefox: '1', - hermes: '0.11', + hermes: '0.1', ie: '5.5', opera: '10.50', // safari 12.0 has a serious bug @@ -347,7 +347,7 @@ export const data = { 'es.array.some': { chrome: '26', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -355,7 +355,7 @@ export const data = { 'es.array.sort': { chrome: '70', firefox: '4', - hermes: '0.11', + hermes: '0.10', safari: '12.0', }, 'es.array.species': { @@ -383,7 +383,7 @@ export const data = { 'es.array.unshift': { chrome: '71', firefox: '23', - hermes: '0.11', + hermes: '0.1', ie: '9', // bug with setting length fixed only in Safari TP // safari: '15.4', @@ -392,20 +392,20 @@ export const data = { chrome: '26', edge: '14', firefox: '44', - hermes: '0.11', + hermes: '0.1', safari: '12.0', }, 'es.array-buffer.is-view': { chrome: '32', firefox: '29', - hermes: '0.11', + hermes: '0.1', ie: '11', safari: '7.1', }, 'es.array-buffer.slice': { chrome: '31', firefox: '46', - hermes: '0.11', + hermes: '0.1', ie: '11', safari: '12.1', rhino: '1.7.13', @@ -415,7 +415,7 @@ export const data = { 'es.data-view.constructor': { chrome: '26', firefox: '15', - hermes: '0.11', + hermes: '0.1', ie: '10', safari: '7.1', rhino: '1.7.13', @@ -423,7 +423,7 @@ export const data = { 'es.date.get-year': { chrome: '1', firefox: '1', - hermes: '0.11', + hermes: '0.1', ie: '9', opera: '3', safari: '1', @@ -433,7 +433,7 @@ export const data = { 'es.date.now': { chrome: '5', firefox: '2', - hermes: '0.11', + hermes: '0.1', ie: '9', opera: '10.50', safari: '4.0', @@ -442,7 +442,7 @@ export const data = { 'es.date.set-year': { chrome: '1', firefox: '1', - hermes: '0.11', + hermes: '0.1', ie: '3', opera: '3', safari: '1', @@ -451,7 +451,7 @@ export const data = { 'es.date.to-gmt-string': { chrome: '1', firefox: '1', - hermes: '0.11', + hermes: '0.1', ie: '3', opera: '3', safari: '1', @@ -460,7 +460,7 @@ export const data = { 'es.date.to-iso-string': { chrome: '26', firefox: '7', - hermes: '0.11', + hermes: '0.1', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -468,7 +468,7 @@ export const data = { 'es.date.to-json': { chrome: '26', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', safari: '10.0', rhino: '1.7.13', @@ -477,14 +477,14 @@ export const data = { chrome: '47', edge: '15', firefox: '44', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, // TODO: Remove from `core-js@4` 'es.date.to-string': { chrome: '5', firefox: '2', - hermes: '0.11', + hermes: '0.1', ie: '9', opera: '10.50', safari: '3.1', @@ -493,7 +493,7 @@ export const data = { 'es.escape': { chrome: '1', firefox: '1', - hermes: '0.11', + hermes: '0.1', ie: '3', opera: '3', safari: '1', @@ -502,7 +502,7 @@ export const data = { 'es.function.bind': { chrome: '7', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', opera: '12', safari: '5.1', @@ -512,14 +512,14 @@ export const data = { chrome: '51', edge: '15', firefox: '50', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.function.name': { chrome: '5', edge: '12', firefox: '2', - hermes: '0.11', + hermes: '0.1', opera: '10.50', safari: '4.0', rhino: '1.7.13', @@ -527,7 +527,7 @@ export const data = { 'es.global-this': { chrome: '71', firefox: '65', - hermes: '0.11', + hermes: '0.2', safari: '12.1', rhino: '1.7.14', }, @@ -540,7 +540,7 @@ export const data = { chrome: '50', edge: '15', firefox: '51', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, // TODO: Remove this module from `core-js@4` since it's replaced to module below @@ -556,14 +556,14 @@ export const data = { chrome: '54', edge: '13', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', }, 'es.math.asinh': { chrome: '38', edge: '13', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -571,7 +571,7 @@ export const data = { chrome: '38', edge: '13', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -579,7 +579,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -587,7 +587,7 @@ export const data = { chrome: '38', edge: '12', firefox: '31', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -595,7 +595,7 @@ export const data = { chrome: '39', edge: '13', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -603,7 +603,7 @@ export const data = { chrome: '39', edge: '13', firefox: '46', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -611,7 +611,7 @@ export const data = { chrome: '38', edge: '12', firefox: '26', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -620,7 +620,7 @@ export const data = { chrome: '78', // '38', edge: '12', firefox: '27', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -628,7 +628,7 @@ export const data = { chrome: '28', edge: '13', firefox: '20', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -636,7 +636,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -644,7 +644,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -652,7 +652,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -660,7 +660,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -668,7 +668,7 @@ export const data = { chrome: '39', edge: '13', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -676,7 +676,7 @@ export const data = { chrome: '38', edge: '12', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -684,14 +684,14 @@ export const data = { chrome: '50', edge: '15', firefox: '51', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.math.trunc': { chrome: '38', edge: '12', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -699,7 +699,7 @@ export const data = { chrome: '41', edge: '13', firefox: '46', - hermes: '0.11', + hermes: '0.5', safari: '9.0', rhino: '1.7.13', }, @@ -707,7 +707,7 @@ export const data = { chrome: '34', edge: '12', firefox: '25', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.14', }, @@ -716,7 +716,7 @@ export const data = { chrome: '19', edge: '12', firefox: '16', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -724,7 +724,7 @@ export const data = { chrome: '34', edge: '12', firefox: '16', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -733,7 +733,7 @@ export const data = { chrome: '19', edge: '12', firefox: '15', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -741,7 +741,7 @@ export const data = { chrome: '34', edge: '12', firefox: '32', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -749,7 +749,7 @@ export const data = { chrome: '34', edge: '12', firefox: '31', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -757,21 +757,21 @@ export const data = { chrome: '34', edge: '12', firefox: '31', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, 'es.number.parse-float': { chrome: '35', firefox: '39', - hermes: '0.11', + hermes: '0.1', safari: '11.0', rhino: '1.7.14', }, 'es.number.parse-int': { chrome: '35', firefox: '39', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.14', }, @@ -779,21 +779,21 @@ export const data = { chrome: '51', edge: '18', firefox: '87', - hermes: '0.11', + hermes: '0.1', safari: '11', rhino: '1.7.14', }, 'es.number.to-fixed': { chrome: '26', firefox: '4', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, 'es.number.to-precision': { chrome: '26', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '8', safari: '7.1', rhino: '1.7.13', @@ -803,14 +803,14 @@ export const data = { // order of operations bug // edge: '13', firefox: '36', - hermes: '0.11', + hermes: '0.4', safari: '9.0', }, // TODO: Remove from `core-js@4` 'es.object.create': { chrome: '5', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', opera: '12', safari: '4.0', @@ -820,14 +820,14 @@ export const data = { chrome: '62', edge: '16', firefox: '48', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, 'es.object.define-properties': { chrome: '37', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', opera: '12', safari: '5.1', @@ -836,7 +836,7 @@ export const data = { 'es.object.define-property': { chrome: '37', firefox: '4', - hermes: '0.11', + hermes: '0.1', ie: '9', opera: '12', safari: '5.1', @@ -846,7 +846,7 @@ export const data = { chrome: '62', edge: '16', firefox: '48', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -854,7 +854,7 @@ export const data = { chrome: '54', edge: '14', firefox: '47', - hermes: '0.11', + hermes: '0.1', safari: '10.1', rhino: '1.7.14', }, @@ -862,14 +862,14 @@ export const data = { chrome: '44', edge: '13', firefox: '35', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, 'es.object.from-entries': { chrome: '73', firefox: '63', - hermes: '0.11', + hermes: '0.4', safari: '12.1', rhino: '1.7.14', }, @@ -877,7 +877,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -885,14 +885,14 @@ export const data = { chrome: '54', edge: '15', firefox: '50', - hermes: '0.11', + hermes: '0.6', safari: '10.0', }, 'es.object.get-own-property-names': { chrome: '40', edge: '13', firefox: '34', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -900,7 +900,7 @@ export const data = { chrome: '41', edge: '13', firefox: '36', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.14', }, @@ -908,14 +908,14 @@ export const data = { chrome: '44', edge: '13', firefox: '35', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, 'es.object.has-own': { chrome: '93', firefox: '92', - hermes: '0.11', + hermes: '0.10', safari: '15.4', }, 'es.object.is': { @@ -923,7 +923,7 @@ export const data = { chrome: '19', edge: '12', firefox: '22', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -931,7 +931,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -939,7 +939,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -947,7 +947,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -955,7 +955,7 @@ export const data = { chrome: '40', edge: '13', firefox: '35', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -963,7 +963,7 @@ export const data = { chrome: '62', edge: '16', firefox: '48', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -971,7 +971,7 @@ export const data = { chrome: '62', edge: '16', firefox: '48', - hermes: '0.11', + hermes: '0.1', safari: '7.1', rhino: '1.7.13', }, @@ -979,7 +979,7 @@ export const data = { chrome: '44', edge: '13', firefox: '35', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -987,14 +987,14 @@ export const data = { chrome: '44', edge: '13', firefox: '35', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, 'es.object.set-prototype-of': { chrome: '34', firefox: '31', - hermes: '0.11', + hermes: '0.1', ie: '11', safari: '9.0', rhino: '1.7.13', @@ -1003,14 +1003,14 @@ export const data = { chrome: '49', edge: '15', firefox: '51', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.object.values': { chrome: '54', edge: '14', firefox: '47', - hermes: '0.11', + hermes: '0.1', safari: '10.1', rhino: '1.7.14', }, @@ -1018,7 +1018,7 @@ export const data = { chrome: '35', edge: '74', firefox: '8', - hermes: '0.11', + hermes: '0.1', ie: '8', safari: '7.1', rhino: '1.7.13', @@ -1027,7 +1027,7 @@ export const data = { chrome: '35', edge: '74', firefox: '21', - hermes: '0.11', + hermes: '0.1', ie: '9', safari: '7.1', rhino: '1.7.13', @@ -1121,77 +1121,77 @@ export const data = { chrome: '49', edge: '15', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.construct': { chrome: '49', edge: '15', firefox: '44', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.define-property': { chrome: '49', edge: '13', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.delete-property': { chrome: '49', edge: '12', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.get': { chrome: '49', edge: '12', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.get-own-property-descriptor': { chrome: '49', edge: '12', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.get-prototype-of': { chrome: '49', edge: '12', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.has': { chrome: '49', edge: '12', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.is-extensible': { chrome: '49', edge: '12', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.own-keys': { chrome: '49', edge: '12', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.prevent-extensions': { chrome: '49', edge: '12', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.set': { @@ -1200,20 +1200,20 @@ export const data = { // edge: '12', chrome: '49', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.set-prototype-of': { chrome: '49', edge: '12', firefox: '42', - hermes: '0.11', + hermes: '0.7', safari: '10.0', }, 'es.reflect.to-string-tag': { chrome: '86', firefox: '82', - hermes: '0.11', + hermes: '0.7', safari: '14.0', }, 'es.regexp.constructor': { @@ -1224,7 +1224,7 @@ export const data = { 'es.regexp.dot-all': { chrome: '62', firefox: '78', - hermes: '0.11', + hermes: '0.4', safari: '11.1', }, 'es.regexp.exec': { @@ -1236,14 +1236,14 @@ export const data = { // modern V8 has a bug with the order getting of flags // chrome: '62', firefox: '78', - hermes: '0.11', + hermes: '0.4', safari: '11.1', }, 'es.regexp.sticky': { chrome: '49', edge: '13', firefox: '3', - hermes: '0.11', + hermes: '0.3', safari: '10.0', }, 'es.regexp.test': { @@ -1254,7 +1254,7 @@ export const data = { 'es.regexp.to-string': { chrome: '50', firefox: '46', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, // TODO: Remove this module from `core-js@4` since it's replaced to module below @@ -1275,56 +1275,56 @@ export const data = { chrome: '41', edge: '13', firefox: '29', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, 'es.string.ends-with': { chrome: '51', firefox: '40', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.string.from-code-point': { chrome: '41', edge: '13', firefox: '29', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, 'es.string.includes': { chrome: '51', firefox: '40', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.string.iterator': { chrome: '41', edge: '13', firefox: '36', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, 'es.string.match': { chrome: '51', firefox: '49', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.string.match-all': { // Early implementations does not throw an error on non-global regex chrome: '80', // 73 firefox: '73', // 67 - hermes: '0.11', + hermes: '0.6', safari: '13.1', // 13 }, 'es.string.pad-end': { chrome: '57', edge: '15', firefox: '48', - hermes: '0.11', + hermes: '0.1', safari: '11.0', rhino: '1.7.13', }, @@ -1332,7 +1332,7 @@ export const data = { chrome: '57', edge: '15', firefox: '48', - hermes: '0.11', + hermes: '0.1', safari: '11.0', rhino: '1.7.13', }, @@ -1340,7 +1340,7 @@ export const data = { chrome: '41', edge: '13', firefox: '34', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.14', }, @@ -1348,7 +1348,7 @@ export const data = { chrome: '41', edge: '13', firefox: '24', - hermes: '0.11', + hermes: '0.1', safari: '9.0', rhino: '1.7.13', }, @@ -1360,13 +1360,13 @@ export const data = { 'es.string.replace-all': { chrome: '85', firefox: '77', - hermes: '0.11', + hermes: '0.7', safari: '13.1', }, 'es.string.search': { chrome: '51', firefox: '49', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.string.split': { @@ -1377,14 +1377,14 @@ export const data = { 'es.string.starts-with': { chrome: '51', firefox: '40', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.string.substr': { chrome: '1', ie: '9', firefox: '1', - hermes: '0.11', + hermes: '0.1', opera: '4', safari: '1', rhino: '1.7.13', @@ -1393,31 +1393,31 @@ export const data = { chrome: '59', edge: '15', firefox: '52', - hermes: '0.11', + hermes: '0.1', safari: '12.1', }, 'es.string.trim-end': { chrome: '66', firefox: '61', - hermes: '0.11', + hermes: '0.3', safari: '12.1', }, 'es.string.trim-left': { chrome: '66', firefox: '61', - hermes: '0.11', + hermes: '0.3', safari: '12.0', }, 'es.string.trim-right': { chrome: '66', firefox: '61', - hermes: '0.11', + hermes: '0.3', safari: '12.1', }, 'es.string.trim-start': { chrome: '66', firefox: '61', - hermes: '0.11', + hermes: '0.3', safari: '12.0', }, 'es.string.anchor': { @@ -1583,41 +1583,41 @@ export const data = { chrome: '45', edge: '13', firefox: '34', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.every': { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.fill': { chrome: '58', firefox: '55', - hermes: '0.11', + hermes: '0.1', safari: '14.1', }, 'es.typed-array.filter': { chrome: '45', edge: '13', firefox: '38', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.find': { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.find-index': { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.find-last': { @@ -1634,7 +1634,7 @@ export const data = { chrome: '45', edge: '13', firefox: '38', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.from': { @@ -1647,42 +1647,42 @@ export const data = { chrome: '49', edge: '14', firefox: '43', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.index-of': { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.iterator': { chrome: '51', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.join': { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.last-index-of': { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.map': { chrome: '45', edge: '13', firefox: '38', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.of': { @@ -1695,48 +1695,48 @@ export const data = { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.reduce-right': { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.reverse': { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.set': { chrome: '95', // '26', // edge: '13', // proper in Chakra Edge 13, but buggy in Chromium < 95 firefox: '54', // '15', - hermes: '0.11', + hermes: '0.1', safari: '14.1', // '7.1', }, 'es.typed-array.slice': { chrome: '45', edge: '13', firefox: '38', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.some': { chrome: '45', edge: '13', firefox: '37', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.sort': { chrome: '74', firefox: '67', - hermes: '0.11', + hermes: '0.10', // 10.0 - 14.0 accept incorrect arguments safari: '14.1', }, @@ -1744,26 +1744,26 @@ export const data = { chrome: '26', edge: '13', firefox: '15', - hermes: '0.11', + hermes: '0.1', safari: '7.1', }, 'es.typed-array.to-locale-string': { chrome: '45', firefox: '51', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.typed-array.to-string': { chrome: '51', edge: '13', firefox: '51', - hermes: '0.11', + hermes: '0.1', safari: '10.0', }, 'es.unescape': { chrome: '1', firefox: '1', - hermes: '0.11', + hermes: '0.1', ie: '3', opera: '3', safari: '1', @@ -2179,7 +2179,7 @@ export const data = { deno: '1.0', edge: '16', firefox: '50', - hermes: '0.11', + hermes: '0.1', node: '0.0.1', safari: '10.0', rhino: '1.7.13', @@ -2188,7 +2188,7 @@ export const data = { chrome: '66', deno: '1.0', firefox: '60', - hermes: '0.11', + hermes: '0.1', node: '0.0.1', safari: '13.1', rhino: '1.7.13', @@ -2236,7 +2236,7 @@ export const data = { firefox: '1', ie: '10', node: '0.0.1', - hermes: '0.11', + hermes: '0.1', opera: '7', safari: '1.0', rhino: '1.7.13', @@ -2246,7 +2246,7 @@ export const data = { chrome: '1', deno: '1.0', firefox: '1', - hermes: '0.11', + hermes: '0.1', ie: '10', node: '0.0.1', opera: '7', @@ -2266,7 +2266,7 @@ export const data = { chrome: '1', deno: '1.0', firefox: '1', - hermes: '0.11', + hermes: '0.1', ie: '10', node: '0.0.1', opera: '7',