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]