diff --git a/crates/oxc_minifier/src/peephole/remove_unused_declaration.rs b/crates/oxc_minifier/src/peephole/remove_unused_declaration.rs index ce278314411e0..edbc1623ca6ec 100644 --- a/crates/oxc_minifier/src/peephole/remove_unused_declaration.rs +++ b/crates/oxc_minifier/src/peephole/remove_unused_declaration.rs @@ -148,6 +148,9 @@ mod test { &options, ); + // decorators + test_same_options("class C { @dec foo() {} }", &options); + // TypeError test_same_options("class C extends (() => {}) {}", &options); } diff --git a/crates/oxc_minifier/src/peephole/remove_unused_expression.rs b/crates/oxc_minifier/src/peephole/remove_unused_expression.rs index 4f6939bce98fc..6734d4666a042 100644 --- a/crates/oxc_minifier/src/peephole/remove_unused_expression.rs +++ b/crates/oxc_minifier/src/peephole/remove_unused_expression.rs @@ -677,6 +677,7 @@ impl<'a> PeepholeOptimizations { // Keep the entire class if non-empty static block exists. for e in &c.body.body { match e { + e if e.has_decorator() => return None, ClassElement::TSIndexSignature(_) => return None, ClassElement::StaticBlock(block) => { if !block.body.is_empty() { @@ -1132,6 +1133,9 @@ mod test { &options, ); + // decorators + test_same_options("(class { @dec foo() {} })", &options); + // TypeError test_same_options("(class extends (() => {}) {})", &options); }