From 8a6a1cbcf1279b805e740f4d77ebb9fb72d52d41 Mon Sep 17 00:00:00 2001 From: HeYunfei Date: Fri, 6 Jan 2023 16:15:07 +0800 Subject: [PATCH] feat(es/minifier): Handle boolean in `Evaluator` (#6756) **Related issue:** - Closes https://github.com/swc-project/swc/issues/5953. --- crates/swc_ecma_minifier/src/eval.rs | 11 +++++++---- crates/swc_ecma_minifier/tests/eval.rs | 6 ++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/crates/swc_ecma_minifier/src/eval.rs b/crates/swc_ecma_minifier/src/eval.rs index ad3cb8b89b68..1451b9e8cad2 100644 --- a/crates/swc_ecma_minifier/src/eval.rs +++ b/crates/swc_ecma_minifier/src/eval.rs @@ -88,10 +88,13 @@ impl Evaluator { match e { Expr::Seq(s) => return self.eval(s.exprs.last()?), - Expr::Lit(l @ Lit::Null(..)) - | Expr::Lit(l @ Lit::Num(..) | l @ Lit::Str(..) | l @ Lit::BigInt(..)) => { - return Some(EvalResult::Lit(l.clone())) - } + Expr::Lit( + l @ Lit::Num(..) + | l @ Lit::Str(..) + | l @ Lit::BigInt(..) + | l @ Lit::Bool(..) + | l @ Lit::Null(..), + ) => return Some(EvalResult::Lit(l.clone())), Expr::Tpl(t) => { return self.eval_tpl(t); diff --git a/crates/swc_ecma_minifier/tests/eval.rs b/crates/swc_ecma_minifier/tests/eval.rs index 93d71b2d6cbd..3596279d4629 100644 --- a/crates/swc_ecma_minifier/tests/eval.rs +++ b/crates/swc_ecma_minifier/tests/eval.rs @@ -66,6 +66,12 @@ fn simple() { assert_eq!(eval("const foo = 4", "foo").unwrap(), "4"); } +#[test] +fn eval_lit() { + assert_eq!(eval("", "true").unwrap(), "true"); + assert_eq!(eval("", "false").unwrap(), "false"); +} + struct PartialInliner { marks: Marks, eval: Option,