diff --git a/crates/swc_ecma_minifier/tests/terser/compress/dead_code/dead_code_2_should_warn/output.js b/crates/swc_ecma_minifier/tests/terser/compress/dead_code/dead_code_2_should_warn/output.js index e17475289f4f..6250b8b91e28 100644 --- a/crates/swc_ecma_minifier/tests/terser/compress/dead_code/dead_code_2_should_warn/output.js +++ b/crates/swc_ecma_minifier/tests/terser/compress/dead_code/dead_code_2_should_warn/output.js @@ -1,5 +1,5 @@ function f() { - var x, g, q, y; + var x, g; g(); x = 10; throw Error("foo"); diff --git a/crates/swc_ecma_minifier/tests/terser/compress/dead_code/dead_code_2_should_warn_strict/output.js b/crates/swc_ecma_minifier/tests/terser/compress/dead_code/dead_code_2_should_warn_strict/output.js index 275bbb11bc67..dc2a7837aef9 100644 --- a/crates/swc_ecma_minifier/tests/terser/compress/dead_code/dead_code_2_should_warn_strict/output.js +++ b/crates/swc_ecma_minifier/tests/terser/compress/dead_code/dead_code_2_should_warn_strict/output.js @@ -1,6 +1,6 @@ "use strict"; function f() { - var x, g, q, y; + var x, g; g(); x = 10; throw Error("foo"); diff --git a/crates/swc_ecma_transforms_optimization/src/simplify/branch/tests.rs b/crates/swc_ecma_transforms_optimization/src/simplify/branch/tests.rs index ef2905a3697b..f6cf3aeef90f 100644 --- a/crates/swc_ecma_transforms_optimization/src/simplify/branch/tests.rs +++ b/crates/swc_ecma_transforms_optimization/src/simplify/branch/tests.rs @@ -1815,3 +1815,33 @@ fn issue_1825() { fn issue_1851_1() { test("x ?? (x = 'abc');", "x ?? (x = 'abc');"); } + +#[test] +fn issue_6732_1() { + test( + " + if (false) { + foo(function () { + var module = {}; + return module; + }); + } + ", + "", + ); +} + +#[test] +fn issue_6732_2() { + test( + " + if (false) { + function foo() { + var module = {}; + return module; + }; + } + ", + "var foo;", + ); +} diff --git a/crates/swc_ecma_utils/src/lib.rs b/crates/swc_ecma_utils/src/lib.rs index c11d36ebb596..e98cf48895ad 100644 --- a/crates/swc_ecma_utils/src/lib.rs +++ b/crates/swc_ecma_utils/src/lib.rs @@ -494,8 +494,6 @@ impl Visit for Hoister { fn visit_fn_decl(&mut self, f: &FnDecl) { self.vars.push(f.ident.clone()); - - f.visit_children_with(self) } fn visit_pat(&mut self, p: &Pat) { @@ -513,6 +511,8 @@ impl Visit for Hoister { v.visit_children_with(self) } + + fn visit_fn_expr(&mut self, _n: &FnExpr) {} } #[derive(Debug, Clone)]