From cec63e2119671482a0de2d5f948d7e367791908f Mon Sep 17 00:00:00 2001 From: Boshen Date: Sun, 5 Jan 2025 23:09:57 +0800 Subject: [PATCH] feat(minifier): `{}` evals to `f64::NaN` --- crates/oxc_ecmascript/src/constant_evaluation/mod.rs | 1 + crates/oxc_minifier/src/ast_passes/peephole_fold_constants.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/crates/oxc_ecmascript/src/constant_evaluation/mod.rs b/crates/oxc_ecmascript/src/constant_evaluation/mod.rs index b9d04e3e5..a5da41357 100644 --- a/crates/oxc_ecmascript/src/constant_evaluation/mod.rs +++ b/crates/oxc_ecmascript/src/constant_evaluation/mod.rs @@ -153,6 +153,7 @@ pub trait ConstantEvaluation<'a> { Expression::SequenceExpression(s) => { s.expressions.last().and_then(|e| self.eval_to_number(e)) } + Expression::ObjectExpression(e) if e.properties.is_empty() => Some(f64::NAN), expr => { use crate::ToNumber; expr.to_number() diff --git a/crates/oxc_minifier/src/ast_passes/peephole_fold_constants.rs b/crates/oxc_minifier/src/ast_passes/peephole_fold_constants.rs index 165f9eaa6..29dc61ca5 100644 --- a/crates/oxc_minifier/src/ast_passes/peephole_fold_constants.rs +++ b/crates/oxc_minifier/src/ast_passes/peephole_fold_constants.rs @@ -1450,6 +1450,7 @@ mod test { test("~true", "-2"); test("~'1'", "-2"); test("~'-1'", "0"); + test("~{}", "-1"); } #[test]