From bf19258fea906eda6335af944a1ca5693f543487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Thu, 11 Mar 2021 15:43:22 -0500 Subject: [PATCH 1/2] add ios version to compat-data so that esmodules: "intersect" work as expected --- packages/babel-compat-data/data/native-modules.json | 5 +++-- .../babel-compat-data/scripts/build-modules-support.js | 9 +++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/babel-compat-data/data/native-modules.json b/packages/babel-compat-data/data/native-modules.json index 9923db203c29..bf634997ee96 100644 --- a/packages/babel-compat-data/data/native-modules.json +++ b/packages/babel-compat-data/data/native-modules.json @@ -9,9 +9,10 @@ "opera": "48", "op_mob": "48", "safari": "10.1", - "ios_saf": "10.3", + "ios": "10.3", "samsung": "8.2", "android": "61", - "electron": "2.0" + "electron": "2.0", + "ios_saf": "10.3" } } diff --git a/packages/babel-compat-data/scripts/build-modules-support.js b/packages/babel-compat-data/scripts/build-modules-support.js index 949738ddcc9b..fce84354b9fe 100644 --- a/packages/babel-compat-data/scripts/build-modules-support.js +++ b/packages/babel-compat-data/scripts/build-modules-support.js @@ -8,7 +8,7 @@ const { addElectronSupportFromChromium } = require("./chromium-to-electron"); const browserNameMap = { chrome_android: "and_chr", firefox_android: "and_ff", - safari_ios: "ios_saf", + safari_ios: "ios", nodejs: "node", webview_android: "android", opera_android: "op_mob", @@ -58,8 +58,13 @@ function process(source) { } const dataPath = path.join(__dirname, "../data/native-modules.json"); +const processed = process(compatData.statements.export); +// Todo(Babel 8): remove `ios_saf` as it is identical to ios +if (processed.ios) { + processed.ios_saf = processed.ios; +} const data = { - "es6.module": process(compatData.statements.export), + "es6.module": processed, }; fs.writeFileSync(dataPath, `${JSON.stringify(data, null, 2)}\n`); exports.process = process; From de71ac07ae2f56f9f0644418c85632f72a1b914b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Fri, 12 Mar 2021 14:32:44 -0500 Subject: [PATCH 2/2] add test --- .../test/__snapshots__/targets-parser.spec.js.snap | 6 ++++++ .../test/targets-parser.spec.js | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/packages/babel-helper-compilation-targets/test/__snapshots__/targets-parser.spec.js.snap b/packages/babel-helper-compilation-targets/test/__snapshots__/targets-parser.spec.js.snap index e6ea5cbace26..5b2b4b1792c1 100644 --- a/packages/babel-helper-compilation-targets/test/__snapshots__/targets-parser.spec.js.snap +++ b/packages/babel-helper-compilation-targets/test/__snapshots__/targets-parser.spec.js.snap @@ -7,6 +7,12 @@ Object { } `; +exports[`getTargets esmodules can be intersected with ios browsers option 1`] = ` +Object { + "ios": "12.0.0", +} +`; + exports[`getTargets esmodules can be intersected with the browsers option 1`] = ` Object { "chrome": "70.0.0", diff --git a/packages/babel-helper-compilation-targets/test/targets-parser.spec.js b/packages/babel-helper-compilation-targets/test/targets-parser.spec.js index fbef769ccd42..f8910af82fb1 100644 --- a/packages/babel-helper-compilation-targets/test/targets-parser.spec.js +++ b/packages/babel-helper-compilation-targets/test/targets-parser.spec.js @@ -245,6 +245,15 @@ describe("getTargets", () => { ).toMatchSnapshot(); }); + it("can be intersected with ios browsers option", () => { + expect( + getTargets({ + esmodules: "intersect", + browsers: ["ios >= 12"], + }), + ).toMatchSnapshot(); + }); + it("can be intersected with a .browserslistrc file", () => { expect( getTargets(