diff --git a/crates/oxc_minifier/src/peephole/collapse_variable_declarations.rs b/crates/oxc_minifier/src/peephole/collapse_variable_declarations.rs index a70a59f71fe38..8deba8195b5df 100644 --- a/crates/oxc_minifier/src/peephole/collapse_variable_declarations.rs +++ b/crates/oxc_minifier/src/peephole/collapse_variable_declarations.rs @@ -133,10 +133,6 @@ impl<'a> PeepholeOptimizations { _ => {} } } - - if self.is_current_function_changed() { - stmts.retain(|stmt| !matches!(stmt, Statement::EmptyStatement(_))); - } } fn collapse_expr_into_for( diff --git a/crates/oxc_minifier/src/peephole/minimize_conditions.rs b/crates/oxc_minifier/src/peephole/minimize_conditions.rs index 8fd2bf3a68f3e..abd99c6c20b63 100644 --- a/crates/oxc_minifier/src/peephole/minimize_conditions.rs +++ b/crates/oxc_minifier/src/peephole/minimize_conditions.rs @@ -30,7 +30,6 @@ impl<'a> PeepholeOptimizations { let mut local_change = false; self.try_replace_if(stmts, &mut local_change, ctx); if local_change { - stmts.retain(|stmt| !matches!(stmt, Statement::EmptyStatement(_))); changed = local_change; } else { break; diff --git a/crates/oxc_minifier/src/peephole/mod.rs b/crates/oxc_minifier/src/peephole/mod.rs index 87d319ce13178..c3b2c68d5e5a7 100644 --- a/crates/oxc_minifier/src/peephole/mod.rs +++ b/crates/oxc_minifier/src/peephole/mod.rs @@ -72,11 +72,6 @@ impl<'a> PeepholeOptimizations { *current_changed = true; } - pub fn is_current_function_changed(&self) -> bool { - let (_, _, current_changed) = self.current_function.last(); - *current_changed - } - #[inline] fn is_prev_function_changed(&self) -> bool { let (_, prev_changed, _) = self.current_function.last(); @@ -146,6 +141,7 @@ impl<'a> Traverse<'a> for PeepholeOptimizations { self.collapse_variable_declarations(stmts, ctx); self.minimize_conditions_exit_statements(stmts, ctx); self.remove_dead_code_exit_statements(stmts, ctx); + stmts.retain(|stmt| !matches!(stmt, Statement::EmptyStatement(_))); } fn exit_statement(&mut self, stmt: &mut Statement<'a>, ctx: &mut TraverseCtx<'a>) { @@ -337,6 +333,7 @@ impl<'a> Traverse<'a> for DeadCodeElimination { fn exit_statements(&mut self, stmts: &mut Vec<'a, Statement<'a>>, ctx: &mut TraverseCtx<'a>) { self.inner.remove_dead_code_exit_statements(stmts, Ctx(ctx)); + stmts.retain(|stmt| !matches!(stmt, Statement::EmptyStatement(_))); } fn exit_expression(&mut self, expr: &mut Expression<'a>, ctx: &mut TraverseCtx<'a>) { diff --git a/crates/oxc_minifier/src/peephole/remove_dead_code.rs b/crates/oxc_minifier/src/peephole/remove_dead_code.rs index 494eab25c4e9d..ca01b23dd0ee3 100644 --- a/crates/oxc_minifier/src/peephole/remove_dead_code.rs +++ b/crates/oxc_minifier/src/peephole/remove_dead_code.rs @@ -24,9 +24,6 @@ impl<'a, 'b> PeepholeOptimizations { ctx: Ctx<'a, '_>, ) { self.dead_code_elimination(stmts, ctx); - if stmts.iter().any(|stmt| matches!(stmt, Statement::EmptyStatement(_))) { - stmts.retain(|stmt| !matches!(stmt, Statement::EmptyStatement(_))); - } } pub fn remove_dead_code_exit_statement(&mut self, stmt: &mut Statement<'a>, ctx: Ctx<'a, '_>) {