From 0e1f12c303c59805e9dc970023f053b32ee2f981 Mon Sep 17 00:00:00 2001 From: Boshen <1430279+Boshen@users.noreply.github.com> Date: Wed, 6 Nov 2024 12:54:10 +0000 Subject: [PATCH] refactor(transformer): remove unimplemented `EnvOptions::bugfixes` (#7162) --- .../compat_data/data/plugin_bugfixes.json | 201 ------------------ .../src/options/babel/env/data/mod.rs | 12 -- .../src/options/babel/env/mod.rs | 13 +- crates/oxc_transformer/src/options/env.rs | 3 - 4 files changed, 3 insertions(+), 226 deletions(-) delete mode 100644 crates/oxc_transformer/src/options/babel/env/data/@babel/compat_data/data/plugin_bugfixes.json diff --git a/crates/oxc_transformer/src/options/babel/env/data/@babel/compat_data/data/plugin_bugfixes.json b/crates/oxc_transformer/src/options/babel/env/data/@babel/compat_data/data/plugin_bugfixes.json deleted file mode 100644 index 2f55547d384d6..0000000000000 --- a/crates/oxc_transformer/src/options/babel/env/data/@babel/compat_data/data/plugin_bugfixes.json +++ /dev/null @@ -1,201 +0,0 @@ -{ - "bugfix/transform-async-arrows-in-class": { - "chrome": "55", - "opera": "42", - "edge": "15", - "firefox": "52", - "safari": "11", - "node": "7.6", - "deno": "1", - "ios": "11", - "samsung": "6", - "opera_mobile": "42", - "electron": "1.6" - }, - "bugfix/transform-edge-default-parameters": { - "chrome": "49", - "opera": "36", - "edge": "18", - "firefox": "52", - "safari": "10", - "node": "6", - "deno": "1", - "ios": "10", - "samsung": "5", - "opera_mobile": "36", - "electron": "0.37" - }, - "bugfix/transform-edge-function-name": { - "chrome": "51", - "opera": "38", - "edge": "79", - "firefox": "53", - "safari": "10", - "node": "6.5", - "deno": "1", - "ios": "10", - "samsung": "5", - "opera_mobile": "41", - "electron": "1.2" - }, - "bugfix/transform-safari-block-shadowing": { - "chrome": "49", - "opera": "36", - "edge": "12", - "firefox": "44", - "safari": "11", - "node": "6", - "deno": "1", - "ie": "11", - "ios": "11", - "samsung": "5", - "opera_mobile": "36", - "electron": "0.37" - }, - "bugfix/transform-safari-for-shadowing": { - "chrome": "49", - "opera": "36", - "edge": "12", - "firefox": "4", - "safari": "11", - "node": "6", - "deno": "1", - "ie": "11", - "ios": "11", - "samsung": "5", - "rhino": "1.7.13", - "opera_mobile": "36", - "electron": "0.37" - }, - "bugfix/transform-safari-id-destructuring-collision-in-function-expression": { - "chrome": "49", - "opera": "36", - "edge": "14", - "firefox": "2", - "safari": "16.3", - "node": "6", - "deno": "1", - "ios": "16.3", - "samsung": "5", - "opera_mobile": "36", - "electron": "0.37" - }, - "bugfix/transform-tagged-template-caching": { - "chrome": "41", - "opera": "28", - "edge": "12", - "firefox": "34", - "safari": "13", - "node": "4", - "deno": "1", - "ios": "13", - "samsung": "3.4", - "rhino": "1.7.14", - "opera_mobile": "28", - "electron": "0.21" - }, - "bugfix/transform-v8-spread-parameters-in-optional-chaining": { - "chrome": "91", - "opera": "77", - "edge": "91", - "firefox": "74", - "safari": "13.1", - "node": "16.9", - "deno": "1.9", - "ios": "13.4", - "samsung": "16", - "opera_mobile": "64", - "electron": "13.0" - }, - "transform-optional-chaining": { - "chrome": "80", - "opera": "67", - "edge": "80", - "firefox": "74", - "safari": "13.1", - "node": "14", - "deno": "1", - "ios": "13.4", - "samsung": "13", - "opera_mobile": "57", - "electron": "8.0" - }, - "proposal-optional-chaining": { - "chrome": "80", - "opera": "67", - "edge": "80", - "firefox": "74", - "safari": "13.1", - "node": "14", - "deno": "1", - "ios": "13.4", - "samsung": "13", - "opera_mobile": "57", - "electron": "8.0" - }, - "transform-parameters": { - "chrome": "49", - "opera": "36", - "edge": "15", - "firefox": "53", - "safari": "10", - "node": "6", - "deno": "1", - "ios": "10", - "samsung": "5", - "opera_mobile": "36", - "electron": "0.37" - }, - "transform-async-to-generator": { - "chrome": "55", - "opera": "42", - "edge": "15", - "firefox": "52", - "safari": "10.1", - "node": "7.6", - "deno": "1", - "ios": "10.3", - "samsung": "6", - "opera_mobile": "42", - "electron": "1.6" - }, - "transform-template-literals": { - "chrome": "41", - "opera": "28", - "edge": "13", - "firefox": "34", - "safari": "9", - "node": "4", - "deno": "1", - "ios": "9", - "samsung": "3.4", - "opera_mobile": "28", - "electron": "0.21" - }, - "transform-function-name": { - "chrome": "51", - "opera": "38", - "edge": "14", - "firefox": "53", - "safari": "10", - "node": "6.5", - "deno": "1", - "ios": "10", - "samsung": "5", - "opera_mobile": "41", - "electron": "1.2" - }, - "transform-block-scoping": { - "chrome": "50", - "opera": "37", - "edge": "14", - "firefox": "53", - "safari": "10", - "node": "6", - "deno": "1", - "ios": "10", - "samsung": "5", - "opera_mobile": "37", - "electron": "1.1" - } -} diff --git a/crates/oxc_transformer/src/options/babel/env/data/mod.rs b/crates/oxc_transformer/src/options/babel/env/data/mod.rs index 42c6f4157ac2a..6afc0149e0ec4 100644 --- a/crates/oxc_transformer/src/options/babel/env/data/mod.rs +++ b/crates/oxc_transformer/src/options/babel/env/data/mod.rs @@ -30,15 +30,3 @@ pub fn features() -> &'static FxHashMap { .collect() }) } - -/// Reference: -pub fn bugfix_features() -> &'static FxHashMap { - static BUGFIX_FEATURES: OnceLock> = OnceLock::new(); - BUGFIX_FEATURES.get_or_init(|| { - let map = serde_json::from_str::>(include_str!( - "./@babel/compat_data/data/plugin_bugfixes.json" - )) - .unwrap(); - features().clone().into_iter().chain(map).collect() - }) -} diff --git a/crates/oxc_transformer/src/options/babel/env/mod.rs b/crates/oxc_transformer/src/options/babel/env/mod.rs index e3ebc74b202a5..2bcb91bf963e7 100644 --- a/crates/oxc_transformer/src/options/babel/env/mod.rs +++ b/crates/oxc_transformer/src/options/babel/env/mod.rs @@ -3,10 +3,7 @@ mod targets; use serde::Deserialize; -pub use self::{ - data::{bugfix_features, features}, - targets::BabelTargets, -}; +pub use self::{data::features, targets::BabelTargets}; use crate::options::EngineTargets; @@ -20,6 +17,7 @@ pub struct BabelEnvOptions { #[serde(default)] pub targets: EngineTargets, + #[deprecated = "Not Implemented"] #[serde(default = "default_as_true")] pub bugfixes: bool, @@ -62,11 +60,6 @@ pub struct BabelEnvOptions { impl BabelEnvOptions { pub fn can_enable_plugin(&self, plugin_name: &str) -> bool { - let versions = if self.bugfixes { - bugfix_features().get(plugin_name).unwrap_or_else(|| &features()[plugin_name]) - } else { - &features()[plugin_name] - }; - self.targets.should_enable(versions) + self.targets.should_enable(&features()[plugin_name]) } } diff --git a/crates/oxc_transformer/src/options/env.rs b/crates/oxc_transformer/src/options/env.rs index e55a32e79e1b4..995f31a0a803a 100644 --- a/crates/oxc_transformer/src/options/env.rs +++ b/crates/oxc_transformer/src/options/env.rs @@ -136,9 +136,6 @@ impl EnvOptions { pub fn from_browserslist_query(query: &str) -> Result { Self::try_from(BabelEnvOptions { targets: EngineTargets::try_from_query(query)?, - // This option will be enabled by default in Babel 8. - // - bugfixes: true, ..BabelEnvOptions::default() }) .map_err(|err| Error::msg(err))