diff --git a/crates/swc_ecma_minifier/src/compress/optimize/switches.rs b/crates/swc_ecma_minifier/src/compress/optimize/switches.rs index f3730f2e84de..0e5791f89467 100644 --- a/crates/swc_ecma_minifier/src/compress/optimize/switches.rs +++ b/crates/swc_ecma_minifier/src/compress/optimize/switches.rs @@ -44,7 +44,12 @@ impl Optimizer<'_> { for (idx, case) in stmt.cases.iter_mut().enumerate() { if let Some(test) = case.test.as_ref() { if let Some(e) = is_primitive(&self.expr_ctx, tail_expr(test)) { - if e.eq_ignore_span(tail) { + if match (e, tail) { + (Expr::Lit(Lit::Num(e)), Expr::Lit(Lit::Num(tail))) => { + e.value == tail.value + } + _ => e.eq_ignore_span(tail), + } { cases.push(case.take()); exact = Some(idx);