From 0d56de75ad65e68d8b748ca3bfe1897becd4e3ed Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Fri, 28 Feb 2025 16:09:36 +0900 Subject: [PATCH] feat(minifier): improve unary expression handling in `remove_unused_expression` --- .../src/peephole/remove_unused_expression.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/oxc_minifier/src/peephole/remove_unused_expression.rs b/crates/oxc_minifier/src/peephole/remove_unused_expression.rs index c2ee7ad7b3817..bf6442a373e67 100644 --- a/crates/oxc_minifier/src/peephole/remove_unused_expression.rs +++ b/crates/oxc_minifier/src/peephole/remove_unused_expression.rs @@ -49,7 +49,7 @@ impl<'a> PeepholeOptimizations { self.remove_unused_expression(e, ctx) } } - _ => false, + _ => !e.may_have_side_effects(&ctx), } } @@ -406,7 +406,15 @@ mod test { test_same("delete x"); test_same("delete x.y"); test_same("delete x.y.z()"); + + test("+0", ""); test_same("+0n"); // Uncaught TypeError: Cannot convert a BigInt value to a number + + test("-0", ""); + test_same("-Symbol()"); // throws an error + + test("~0", ""); + test_same("~Symbol()"); // throws an error } #[test]