From 020c88e74b62c17d2770e1a96c723047d91edaa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Fri, 19 Mar 2021 08:33:59 -0400 Subject: [PATCH] Update compat data (#13008) --- .../data/overlapping-plugins.json | 3 +++ .../babel-compat-data/data/plugin-bugfixes.json | 16 ++++++++++++++++ packages/babel-compat-data/data/plugins.json | 8 +------- .../scripts/build-bugfixes-targets.js | 5 ++++- .../scripts/data/plugin-bugfixes.js | 6 ++++++ .../scripts/download-compat-table.sh | 2 +- .../browserslists-defaults-not-ie/stdout.txt | 2 +- .../debug/browserslists-defaults/stdout.txt | 2 +- .../stdout.txt | 2 +- .../debug/shippedProposals-chrome-80/stdout.txt | 2 +- .../debug/shippedProposals-chrome-84/stdout.txt | 2 +- .../fixtures/debug/top-level-targets/stdout.txt | 2 +- 12 files changed, 37 insertions(+), 15 deletions(-) diff --git a/packages/babel-compat-data/data/overlapping-plugins.json b/packages/babel-compat-data/data/overlapping-plugins.json index e5d9e4af42..51976d9e2f 100644 --- a/packages/babel-compat-data/data/overlapping-plugins.json +++ b/packages/babel-compat-data/data/overlapping-plugins.json @@ -14,5 +14,8 @@ ], "transform-template-literals": [ "bugfix/transform-tagged-template-caching" + ], + "proposal-optional-chaining": [ + "bugfix/transform-v8-spread-parameters-in-optional-chaining" ] } diff --git a/packages/babel-compat-data/data/plugin-bugfixes.json b/packages/babel-compat-data/data/plugin-bugfixes.json index e7c13dc512..b1521be394 100644 --- a/packages/babel-compat-data/data/plugin-bugfixes.json +++ b/packages/babel-compat-data/data/plugin-bugfixes.json @@ -121,5 +121,21 @@ "ios": "13", "samsung": "3.4", "electron": "0.21" + }, + "proposal-optional-chaining": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "74", + "safari": "13.1", + "node": "14", + "ios": "13.4", + "samsung": "13", + "electron": "8.0" + }, + "bugfix/transform-v8-spread-parameters-in-optional-chaining": { + "firefox": "74", + "safari": "13.1", + "ios": "13.4" } } diff --git a/packages/babel-compat-data/data/plugins.json b/packages/babel-compat-data/data/plugins.json index 6e2221a7d6..4c6bca4706 100644 --- a/packages/babel-compat-data/data/plugins.json +++ b/packages/babel-compat-data/data/plugins.json @@ -47,15 +47,9 @@ "electron": "8.0" }, "proposal-optional-chaining": { - "chrome": "80", - "opera": "67", - "edge": "80", "firefox": "74", "safari": "13.1", - "node": "14", - "ios": "13.4", - "samsung": "13", - "electron": "8.0" + "ios": "13.4" }, "proposal-json-strings": { "chrome": "66", diff --git a/packages/babel-compat-data/scripts/build-bugfixes-targets.js b/packages/babel-compat-data/scripts/build-bugfixes-targets.js index 4245776d0a..6ddc5ba3a1 100644 --- a/packages/babel-compat-data/scripts/build-bugfixes-targets.js +++ b/packages/babel-compat-data/scripts/build-bugfixes-targets.js @@ -44,7 +44,10 @@ for (const [plugin, { replaces, features }] of Object.entries(data)) { for (const [replaced, features] of Object.entries(allReplacedFeatures)) { let replacedFeatures = pluginFeatures[replaced]; - if (!Array.isArray(replacedFeatures)) { + if ( + typeof replacedFeatures === "object" && + !Array.isArray(replacedFeatures) + ) { replacedFeatures = replacedFeatures.features; } diff --git a/packages/babel-compat-data/scripts/data/plugin-bugfixes.js b/packages/babel-compat-data/scripts/data/plugin-bugfixes.js index 53d3b81e6c..75af0bc4fc 100644 --- a/packages/babel-compat-data/scripts/data/plugin-bugfixes.js +++ b/packages/babel-compat-data/scripts/data/plugin-bugfixes.js @@ -35,4 +35,10 @@ module.exports = { features: ["template literals / TemplateStrings permanent caching"], replaces: "transform-template-literals", }, + "bugfix/transform-v8-spread-parameters-in-optional-chaining": { + features: [ + "optional chaining operator (?.) / spread parameters after optional chaining", + ], + replaces: "proposal-optional-chaining", + }, }; diff --git a/packages/babel-compat-data/scripts/download-compat-table.sh b/packages/babel-compat-data/scripts/download-compat-table.sh index 3bf5eb2ce2..b1e3030691 100755 --- a/packages/babel-compat-data/scripts/download-compat-table.sh +++ b/packages/babel-compat-data/scripts/download-compat-table.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e -COMPAT_TABLE_COMMIT=ec317e988ed0011cc5d24364e0f4f3a2e86d1f7f +COMPAT_TABLE_COMMIT=ab73608bddb6895f6f3296c03dba057b47ba8aea GIT_HEAD=build/compat-table/.git/HEAD if [ -d "build/compat-table" ]; then diff --git a/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults-not-ie/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults-not-ie/stdout.txt index 6347c7beeb..9c5a0e5426 100644 --- a/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults-not-ie/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults-not-ie/stdout.txt @@ -18,7 +18,7 @@ Using plugins: proposal-numeric-separator { "ios":"12.2" } proposal-logical-assignment-operators { "chrome":"84", "firefox":"78", "ios":"12.2", "opera":"71", "safari":"13.1", "samsung":"11.1" } proposal-nullish-coalescing-operator { "ios":"12.2", "samsung":"11.1" } - proposal-optional-chaining { "ios":"12.2", "samsung":"11.1" } + proposal-optional-chaining { "android":"85", "chrome":"84", "edge":"85", "ios":"12.2", "opera":"71", "samsung":"11.1" } syntax-json-strings { "android":"85", "chrome":"84", "edge":"85", "firefox":"78", "ios":"12.2", "opera":"71", "safari":"13.1", "samsung":"11.1" } syntax-optional-catch-binding { "android":"85", "chrome":"84", "edge":"85", "firefox":"78", "ios":"12.2", "opera":"71", "safari":"13.1", "samsung":"11.1" } syntax-async-generators { "android":"85", "chrome":"84", "edge":"85", "firefox":"78", "ios":"12.2", "opera":"71", "safari":"13.1", "samsung":"11.1" } diff --git a/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults/stdout.txt index a94a88c92c..eb73802024 100644 --- a/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/browserslists-defaults/stdout.txt @@ -19,7 +19,7 @@ Using plugins: proposal-numeric-separator { "ie":"11", "ios":"12.2" } proposal-logical-assignment-operators { "chrome":"84", "firefox":"78", "ie":"11", "ios":"12.2", "opera":"71", "safari":"13.1", "samsung":"11.1" } proposal-nullish-coalescing-operator { "ie":"11", "ios":"12.2", "samsung":"11.1" } - proposal-optional-chaining { "ie":"11", "ios":"12.2", "samsung":"11.1" } + proposal-optional-chaining { "android":"85", "chrome":"84", "edge":"85", "ie":"11", "ios":"12.2", "opera":"71", "samsung":"11.1" } proposal-json-strings { "ie":"11" } proposal-optional-catch-binding { "ie":"11" } transform-parameters { "ie":"11" } diff --git a/packages/babel-preset-env/test/fixtures/debug/browserslists-last-2-versions-not-ie/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/browserslists-last-2-versions-not-ie/stdout.txt index 2f0240eb6e..2d2baccd35 100644 --- a/packages/babel-preset-env/test/fixtures/debug/browserslists-last-2-versions-not-ie/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/browserslists-last-2-versions-not-ie/stdout.txt @@ -18,7 +18,7 @@ Using plugins: syntax-numeric-separator { "android":"85", "chrome":"85", "edge":"85", "firefox":"81", "ios":"13.4", "opera":"71", "safari":"13.1", "samsung":"11.1" } proposal-logical-assignment-operators { "ios":"13.4", "opera":"71", "safari":"13.1", "samsung":"11.1" } proposal-nullish-coalescing-operator { "samsung":"11.1" } - proposal-optional-chaining { "samsung":"11.1" } + proposal-optional-chaining { "android":"85", "chrome":"85", "edge":"85", "opera":"71", "samsung":"11.1" } syntax-json-strings { "android":"85", "chrome":"85", "edge":"85", "firefox":"81", "ios":"13.4", "opera":"71", "safari":"13.1", "samsung":"11.1" } syntax-optional-catch-binding { "android":"85", "chrome":"85", "edge":"85", "firefox":"81", "ios":"13.4", "opera":"71", "safari":"13.1", "samsung":"11.1" } syntax-async-generators { "android":"85", "chrome":"85", "edge":"85", "firefox":"81", "ios":"13.4", "opera":"71", "safari":"13.1", "samsung":"11.1" } diff --git a/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-80/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-80/stdout.txt index de118c5fba..dc6d52e348 100644 --- a/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-80/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-80/stdout.txt @@ -13,7 +13,7 @@ Using plugins: syntax-numeric-separator { "chrome":"80" } proposal-logical-assignment-operators { "chrome":"80" } syntax-nullish-coalescing-operator { "chrome":"80" } - syntax-optional-chaining { "chrome":"80" } + proposal-optional-chaining { "chrome":"80" } syntax-json-strings { "chrome":"80" } syntax-optional-catch-binding { "chrome":"80" } syntax-async-generators { "chrome":"80" } diff --git a/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-84/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-84/stdout.txt index 32f5d74967..d53563b572 100644 --- a/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-84/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/shippedProposals-chrome-84/stdout.txt @@ -12,7 +12,7 @@ Using plugins: syntax-numeric-separator { "chrome":"84" } proposal-logical-assignment-operators { "chrome":"84" } syntax-nullish-coalescing-operator { "chrome":"84" } - syntax-optional-chaining { "chrome":"84" } + proposal-optional-chaining { "chrome":"84" } syntax-json-strings { "chrome":"84" } syntax-optional-catch-binding { "chrome":"84" } syntax-async-generators { "chrome":"84" } diff --git a/packages/babel-preset-env/test/fixtures/debug/top-level-targets/stdout.txt b/packages/babel-preset-env/test/fixtures/debug/top-level-targets/stdout.txt index 762aee9a19..b5538ca134 100644 --- a/packages/babel-preset-env/test/fixtures/debug/top-level-targets/stdout.txt +++ b/packages/babel-preset-env/test/fixtures/debug/top-level-targets/stdout.txt @@ -11,7 +11,7 @@ Using plugins: syntax-numeric-separator { "chrome":"80" } proposal-logical-assignment-operators { "chrome":"80" } syntax-nullish-coalescing-operator { "chrome":"80" } - syntax-optional-chaining { "chrome":"80" } + proposal-optional-chaining { "chrome":"80" } syntax-json-strings { "chrome":"80" } syntax-optional-catch-binding { "chrome":"80" } syntax-async-generators { "chrome":"80" }