From 8ed0873384569f3f82d8aea2092733f42106b524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Tue, 14 Jul 2020 17:34:19 -0400 Subject: [PATCH] refactor: replace caniuse-db by mdn-browser-compat-data --- .../data/native-modules.json | 12 ++-- packages/babel-compat-data/package.json | 4 +- .../scripts/build-modules-support.js | 69 +++++++++++-------- .../_esmodules-no-bugfixes/stdout.txt | 26 +++---- .../fixtures/bugfixes/_esmodules/stdout.txt | 38 +++++----- .../stdout.txt | 26 +++---- .../stdout.txt | 28 ++++---- 7 files changed, 108 insertions(+), 95 deletions(-) diff --git a/packages/babel-compat-data/data/native-modules.json b/packages/babel-compat-data/data/native-modules.json index 980db7b7d21b..568e599cae4a 100644 --- a/packages/babel-compat-data/data/native-modules.json +++ b/packages/babel-compat-data/data/native-modules.json @@ -1,15 +1,15 @@ { "es6.module": { + "chrome": "61", + "and_chr": "61", "edge": "16", "firefox": "60", - "chrome": "61", + "and_ff": "60", + "node": "13.2.0", + "opera": "47", + "op_mob": "44", "safari": "10.1", - "opera": "48", "ios_saf": "10.3", - "android": "61", - "op_mob": "48", - "and_chr": "61", - "and_ff": "60", "samsung": "8.2" } } diff --git a/packages/babel-compat-data/package.json b/packages/babel-compat-data/package.json index 4b7662da57bb..3923e10a6cd2 100644 --- a/packages/babel-compat-data/package.json +++ b/packages/babel-compat-data/package.json @@ -21,7 +21,7 @@ "./plugin-bugfixes": "./data/plugin-bugfixes.json" }, "scripts": { - "build-data": "./scripts/download-compat-table.sh; node ./scripts/build-data.js; node ./scripts/build-modules-support.js; node ./scripts/build-bugfixes-targets.js" + "build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.js && node ./scripts/build-modules-support.js && node ./scripts/build-bugfixes-targets.js" }, "keywords": [ "babel", @@ -35,7 +35,7 @@ }, "devDependencies": { "@babel/helper-compilation-targets": "^7.10.4", - "caniuse-db": "1.0.30001035", + "mdn-browser-compat-data": "1.0.30", "electron-to-chromium": "1.3.377", "lodash": "^4.17.19" } diff --git a/packages/babel-compat-data/scripts/build-modules-support.js b/packages/babel-compat-data/scripts/build-modules-support.js index ac7eee8d7fef..7eb153735e1b 100644 --- a/packages/babel-compat-data/scripts/build-modules-support.js +++ b/packages/babel-compat-data/scripts/build-modules-support.js @@ -1,40 +1,53 @@ const path = require("path"); const fs = require("fs"); -const moduleSupport = require("caniuse-db/features-json/es6-module.json"); - -const acceptedWithCaveats = new Set(["safari", "ios_saf"]); +const compatData = require("mdn-browser-compat-data").javascript; +// Map mdn-browser-compat-data to browserslist browser names const browserNameMap = { - and_chr: "chrome", - and_ff: "firefox", - android: "chrome", // map to chrome here as Android WebView 61 is Chromium-based - op_mob: "opera", + chrome_android: "and_chr", + firefox_android: "and_ff", + safari_ios: "ios_saf", + nodejs: "node", + webview_android: "android", + opera_android: "op_mob", + samsunginternet_android: "samsung", +}; + +const browserSupportMap = { + webview_android: "chrome_android", // map to chrome here as Android WebView 61 is Chromium-based }; -const { stats } = moduleSupport; - -const allowedBrowsers = {}; - -Object.keys(stats).forEach(browser => { - const browserName = browserNameMap[browser] || browser; - const browserVersions = stats[browserName]; - const allowedVersions = Object.keys(browserVersions) - .filter(value => { - // Edge 16/17 are marked as "y #6" - return acceptedWithCaveats.has(browserName) - ? browserVersions[value][0] === "a" - : browserVersions[value].startsWith("y"); - }) - .sort((a, b) => a - b); - - if (allowedVersions[0] !== undefined) { - // Handle cases where caniuse specifies version as: "11.0-11.2" - allowedBrowsers[browser] = allowedVersions[0].split("-")[0]; + +function browserVersion(browser, version_added) { + if (browser === "samsunginternet_android" && version_added === "8.0") { + return "8.2"; // samsung 8.0 is not defined in browserslist } -}); + return version_added; +} + +function process(source) { + const stats = source.__compat.support; + const allowedBrowsers = {}; + + Object.keys(stats).forEach(browser => { + const browserName = browserNameMap[browser] ?? browser; + let browserSupport = stats[browserSupportMap[browserName] ?? browser]; + if (Array.isArray(browserSupport)) { + browserSupport = browserSupport[0]; // The first item is the most progressive support + } + if (browserSupport.version_added && !browserSupport.flags) { + allowedBrowsers[browserName] = browserVersion( + browser, + browserSupport.version_added + ); + } + }); + + return allowedBrowsers; +} const dataPath = path.join(__dirname, "../data/native-modules.json"); const data = { - "es6.module": allowedBrowsers, + "es6.module": process(compatData.statements.export), }; fs.writeFileSync(dataPath, `${JSON.stringify(data, null, 2)}\n`); diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules-no-bugfixes/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules-no-bugfixes/stdout.txt index 7dd3383636d1..22a8a71065f5 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules-no-bugfixes/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules-no-bugfixes/stdout.txt @@ -2,12 +2,12 @@ Using targets: { - "android": "61", "chrome": "61", "edge": "16", "firefox": "60", "ios": "10.3", - "opera": "48", + "node": "13.2", + "opera": "44", "safari": "10.1", "samsung": "8.2" } @@ -15,22 +15,22 @@ Using targets: Using modules transform: auto Using plugins: - proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-json-strings { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-catch-binding { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-nullish-coalescing-operator { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-optional-chaining { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-json-strings { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-optional-catch-binding { "chrome":"61", "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } transform-parameters { "edge":"16" } - proposal-async-generator-functions { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1" } - proposal-object-rest-spread { "edge":"16", "ios":"10.3", "safari":"10.1" } - transform-dotall-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1" } - proposal-unicode-property-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - transform-named-capturing-groups-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-async-generator-functions { "chrome":"61", "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1" } + proposal-object-rest-spread { "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1" } + transform-dotall-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1" } + proposal-unicode-property-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } + transform-named-capturing-groups-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } transform-async-to-generator { "ios":"10.3", "safari":"10.1" } transform-template-literals { "ios":"10.3", "safari":"10.1" } transform-function-name { "edge":"16" } transform-unicode-regex { "ios":"10.3", "safari":"10.1" } transform-block-scoping { "ios":"10.3", "safari":"10.1" } - transform-modules-commonjs { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + transform-modules-commonjs { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-dynamic-import { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. diff --git a/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules/stdout.txt b/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules/stdout.txt index 3f19ec611846..99810ed2e9b4 100644 --- a/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/bugfixes/_esmodules/stdout.txt @@ -2,12 +2,12 @@ Using targets: { - "android": "61", "chrome": "61", "edge": "16", "firefox": "60", "ios": "10.3", - "opera": "48", + "node": "13.2", + "opera": "44", "safari": "10.1", "samsung": "8.2" } @@ -15,23 +15,23 @@ Using targets: Using modules transform: auto Using plugins: - proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-json-strings { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-catch-binding { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-async-generator-functions { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1" } - proposal-object-rest-spread { "edge":"16", "ios":"10.3", "safari":"10.1" } - transform-dotall-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1" } - proposal-unicode-property-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - transform-named-capturing-groups-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-nullish-coalescing-operator { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-optional-chaining { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-json-strings { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-optional-catch-binding { "chrome":"61", "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-async-generator-functions { "chrome":"61", "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1" } + proposal-object-rest-spread { "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1" } + transform-dotall-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1" } + proposal-unicode-property-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } + transform-named-capturing-groups-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } transform-unicode-regex { "ios":"10.3", "safari":"10.1" } - bugfix/transform-async-arrows-in-class { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-edge-default-parameters { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-edge-function-name { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-safari-block-shadowing { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-safari-for-shadowing { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - bugfix/transform-tagged-template-caching { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - transform-modules-commonjs { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-async-arrows-in-class { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-edge-default-parameters { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-edge-function-name { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-safari-block-shadowing { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-safari-for-shadowing { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + bugfix/transform-tagged-template-caching { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + transform-modules-commonjs { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-dynamic-import { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } Using polyfills: No polyfills were added, since the `useBuiltIns` option was not set. diff --git a/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/stdout.txt b/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/stdout.txt index 800eb975dc7c..baee310a5e3d 100644 --- a/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/stdout.txt @@ -2,12 +2,12 @@ Using targets: { - "android": "61", "chrome": "61", "edge": "16", "firefox": "60", "ios": "10.3", - "opera": "48", + "node": "13.2", + "opera": "44", "safari": "10.1", "samsung": "8.2" } @@ -15,24 +15,24 @@ Using targets: Using modules transform: false Using plugins: - proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-json-strings { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-catch-binding { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-nullish-coalescing-operator { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-optional-chaining { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-json-strings { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-optional-catch-binding { "chrome":"61", "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } transform-parameters { "edge":"16" } - proposal-async-generator-functions { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1" } - proposal-object-rest-spread { "edge":"16", "ios":"10.3", "safari":"10.1" } - transform-dotall-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1" } - proposal-unicode-property-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - transform-named-capturing-groups-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-async-generator-functions { "chrome":"61", "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1" } + proposal-object-rest-spread { "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1" } + transform-dotall-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1" } + proposal-unicode-property-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } + transform-named-capturing-groups-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } transform-async-to-generator { "ios":"10.3", "safari":"10.1" } transform-template-literals { "ios":"10.3", "safari":"10.1" } transform-function-name { "edge":"16" } transform-unicode-regex { "ios":"10.3", "safari":"10.1" } transform-block-scoping { "ios":"10.3", "safari":"10.1" } - syntax-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + syntax-dynamic-import { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } Using polyfills with `usage` option: [/packages/babel-preset-env/test/fixtures/corejs2/usage-browserslist-config-ignore/input.mjs] Added following core-js polyfill: - web.dom.iterable { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + web.dom.iterable { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } diff --git a/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/stdout.txt b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/stdout.txt index 20ac22e7bc73..f99b8d8c6c5c 100644 --- a/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/stdout.txt @@ -2,12 +2,12 @@ Using targets: { - "android": "61", "chrome": "61", "edge": "16", "firefox": "60", "ios": "10.3", - "opera": "48", + "node": "13.2", + "opera": "44", "safari": "10.1", "samsung": "8.2" } @@ -15,25 +15,25 @@ Using targets: Using modules transform: false Using plugins: - proposal-nullish-coalescing-operator { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-chaining { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-json-strings { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - proposal-optional-catch-binding { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-nullish-coalescing-operator { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-optional-chaining { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-json-strings { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } + proposal-optional-catch-binding { "chrome":"61", "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } transform-parameters { "edge":"16" } - proposal-async-generator-functions { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1" } - proposal-object-rest-spread { "edge":"16", "ios":"10.3", "safari":"10.1" } - transform-dotall-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1" } - proposal-unicode-property-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } - transform-named-capturing-groups-regex { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + proposal-async-generator-functions { "chrome":"61", "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1" } + proposal-object-rest-spread { "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1" } + transform-dotall-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1" } + proposal-unicode-property-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } + transform-named-capturing-groups-regex { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" } transform-async-to-generator { "ios":"10.3", "safari":"10.1" } transform-template-literals { "ios":"10.3", "safari":"10.1" } transform-function-name { "edge":"16" } transform-unicode-regex { "ios":"10.3", "safari":"10.1" } transform-block-scoping { "ios":"10.3", "safari":"10.1" } - syntax-dynamic-import { "android":"61", "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + syntax-dynamic-import { "chrome":"61", "edge":"16", "firefox":"60", "ios":"10.3", "node":"13.2", "opera":"44", "safari":"10.1", "samsung":"8.2" } Using polyfills with `usage` option: [/packages/babel-preset-env/test/fixtures/corejs3/usage-browserslist-config-ignore/input.mjs] Added following core-js polyfills: - es.array.iterator { "android":"61", "chrome":"61", "opera":"48", "samsung":"8.2" } - web.dom-collections.iterator { "android":"61", "chrome":"61", "edge":"16", "ios":"10.3", "opera":"48", "safari":"10.1", "samsung":"8.2" } + es.array.iterator { "chrome":"61", "opera":"44", "samsung":"8.2" } + web.dom-collections.iterator { "chrome":"61", "edge":"16", "ios":"10.3", "opera":"44", "safari":"10.1", "samsung":"8.2" }