diff --git a/crates/swc_ecma_minifier/benches/full.rs b/crates/swc_ecma_minifier/benches/full.rs index aa2c8028d9d6..213a6eb9b370 100644 --- a/crates/swc_ecma_minifier/benches/full.rs +++ b/crates/swc_ecma_minifier/benches/full.rs @@ -83,7 +83,6 @@ fn run(src: &str) { keep_fn_names: false, keep_private_props: false, ie8: false, - safari10: false, ..Default::default() }), wrap: false, diff --git a/crates/swc_ecma_minifier/src/option/mod.rs b/crates/swc_ecma_minifier/src/option/mod.rs index 227a83317fce..d74fb6a43f30 100644 --- a/crates/swc_ecma_minifier/src/option/mod.rs +++ b/crates/swc_ecma_minifier/src/option/mod.rs @@ -75,6 +75,7 @@ pub struct MangleOptions { #[serde(default, alias = "ie8")] pub ie8: bool, + #[deprecated = "This field is no longer required to work around bugs in Safari 10."] #[serde(default, alias = "safari10")] pub safari10: bool, diff --git a/crates/swc_ecma_minifier/src/pass/mangle_names/mod.rs b/crates/swc_ecma_minifier/src/pass/mangle_names/mod.rs index 3d9057e7aa65..31bc4aa7e38e 100644 --- a/crates/swc_ecma_minifier/src/pass/mangle_names/mod.rs +++ b/crates/swc_ecma_minifier/src/pass/mangle_names/mod.rs @@ -27,9 +27,9 @@ pub(crate) fn name_mangler( renamer( swc_ecma_transforms_base::hygiene::Config { keep_class_names: options.keep_class_names, - safari_10: options.safari10, top_level_mark, ignore_eval: options.eval, + ..Default::default() }, ManglingRenamer { chars, preserved } ) diff --git a/crates/swc_ecma_minifier/tests/terser/compress/try_catch/broken_safari_catch_scope/output.js b/crates/swc_ecma_minifier/tests/terser/compress/try_catch/broken_safari_catch_scope/output.js index 4c9339ae1606..6300388b6047 100644 --- a/crates/swc_ecma_minifier/tests/terser/compress/try_catch/broken_safari_catch_scope/output.js +++ b/crates/swc_ecma_minifier/tests/terser/compress/try_catch/broken_safari_catch_scope/output.js @@ -6,8 +6,8 @@ new class { throw { m: "PASS" }; - } catch ({ m: B }) { - console.log(B); + } catch ({ m: A }) { + console.log(A); } } }().f(); diff --git a/crates/swc_ecma_minifier/tests/terser/compress/try_catch/broken_safari_catch_scope_caveat/output.js b/crates/swc_ecma_minifier/tests/terser/compress/try_catch/broken_safari_catch_scope_caveat/output.js index 4c9339ae1606..66d44b0d3f97 100644 --- a/crates/swc_ecma_minifier/tests/terser/compress/try_catch/broken_safari_catch_scope_caveat/output.js +++ b/crates/swc_ecma_minifier/tests/terser/compress/try_catch/broken_safari_catch_scope_caveat/output.js @@ -6,8 +6,8 @@ new class { throw { m: "PASS" }; - } catch ({ m: B }) { - console.log(B); + } catch ({ m: A }) { + console.log(A); } } }().f(); diff --git a/crates/swc_ecma_transforms_base/src/hygiene/mod.rs b/crates/swc_ecma_transforms_base/src/hygiene/mod.rs index 971bcf5be3d1..d2d4df57dc9c 100644 --- a/crates/swc_ecma_transforms_base/src/hygiene/mod.rs +++ b/crates/swc_ecma_transforms_base/src/hygiene/mod.rs @@ -14,6 +14,7 @@ pub struct Config { pub keep_class_names: bool, /// If true, the bug of safari 10 is avoided. + #[deprecated = "This field is no longer required to work around bugs in Safari 10."] pub safari_10: bool, /// The marks derived from this marks will treated as `specified by user` diff --git a/crates/swc_ecma_transforms_base/src/rename/analyzer/mod.rs b/crates/swc_ecma_transforms_base/src/rename/analyzer/mod.rs index acd2076b8937..22d92b4ae139 100644 --- a/crates/swc_ecma_transforms_base/src/rename/analyzer/mod.rs +++ b/crates/swc_ecma_transforms_base/src/rename/analyzer/mod.rs @@ -9,7 +9,6 @@ pub(super) mod scope; #[derive(Debug, Default)] pub(super) struct Analyzer { - pub safari_10: bool, /// If `eval` exists for the current scope, we only rename synthesized /// identifiers. pub has_eval: bool, @@ -50,7 +49,6 @@ impl Analyzer { { { let mut v = Analyzer { - safari_10: self.safari_10, has_eval: self.has_eval, top_level_mark: self.top_level_mark, @@ -153,43 +151,20 @@ impl Visit for Analyzer { } fn visit_catch_clause(&mut self, n: &CatchClause) { - if self.safari_10 { - let old_is_pat_decl = self.is_pat_decl; - let old_in_catch_params = self.in_catch_params; - - self.is_pat_decl = true; - self.in_catch_params = true; - n.param.visit_with(self); - - self.in_catch_params = old_in_catch_params; - self.is_pat_decl = old_is_pat_decl; - - self.with_scope(ScopeKind::Block, |v| { - let old = v.is_pat_decl; - let old_in_catch_params = v.in_catch_params; - - v.is_pat_decl = false; - n.body.visit_children_with(v); - - v.is_pat_decl = old; - v.in_catch_params = old_in_catch_params; - }) - } else { - self.with_scope(ScopeKind::Block, |v| { - let old = v.is_pat_decl; - let old_in_catch_params = v.in_catch_params; + self.with_scope(ScopeKind::Block, |v| { + let old = v.is_pat_decl; + let old_in_catch_params = v.in_catch_params; - v.is_pat_decl = false; - n.body.visit_children_with(v); + v.is_pat_decl = false; + n.body.visit_children_with(v); - v.is_pat_decl = true; - v.in_catch_params = true; - n.param.visit_with(v); + v.is_pat_decl = true; + v.in_catch_params = true; + n.param.visit_with(v); - v.is_pat_decl = old; - v.in_catch_params = old_in_catch_params; - }) - } + v.is_pat_decl = old; + v.in_catch_params = old_in_catch_params; + }) } fn visit_class_decl(&mut self, c: &ClassDecl) { diff --git a/crates/swc_ecma_transforms_base/src/rename/mod.rs b/crates/swc_ecma_transforms_base/src/rename/mod.rs index 858397584314..2ff6f8542cf8 100644 --- a/crates/swc_ecma_transforms_base/src/rename/mod.rs +++ b/crates/swc_ecma_transforms_base/src/rename/mod.rs @@ -132,7 +132,6 @@ where { let mut scope = { let mut v = Analyzer { - safari_10: self.config.safari_10, has_eval, top_level_mark: self.config.top_level_mark,