diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/8161/input.js b/crates/swc_ecma_minifier/tests/fixture/issues/8161/input.js new file mode 100644 index 000000000000..7845f4b9cfe8 --- /dev/null +++ b/crates/swc_ecma_minifier/tests/fixture/issues/8161/input.js @@ -0,0 +1,10 @@ +function run(flag, output = 'a output') { + if (flag === 'b') { + output = 'b output' + } + + console.log(output) +} + +run('a') +run('b') \ No newline at end of file diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/8161/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/8161/output.js new file mode 100644 index 000000000000..3b0688e309c7 --- /dev/null +++ b/crates/swc_ecma_minifier/tests/fixture/issues/8161/output.js @@ -0,0 +1,4 @@ +function run(flag, output = 'a output') { + 'b' === flag && (output = 'b output'), console.log(output); +} +run('a'), run('b'); diff --git a/crates/swc_ecma_usage_analyzer/src/analyzer/mod.rs b/crates/swc_ecma_usage_analyzer/src/analyzer/mod.rs index 8a95c89c625a..f0eda0e13330 100644 --- a/crates/swc_ecma_usage_analyzer/src/analyzer/mod.rs +++ b/crates/swc_ecma_usage_analyzer/src/analyzer/mod.rs @@ -277,6 +277,12 @@ where }; p.right.visit_with(&mut *self.with_ctx(ctx)) } + + let ids = find_pat_ids(&p.left); + + for id in ids { + self.report_usage(&id, true); + } } #[cfg_attr(feature = "debug", tracing::instrument(skip_all))]