fix corner case in booleans (#4246)

fixes #4245
This commit is contained in:
Alex Lam S.L
2020-10-26 10:53:58 +00:00
committed by GitHub
parent b2775746a7
commit 607f87c5cd
4 changed files with 47 additions and 2 deletions

View File

@@ -7598,7 +7598,9 @@ merge(Compressor.prototype, {
// typeof always returns a non-empty string, thus it's
// always true in booleans
AST_Node.warn("Boolean expression always true [{file}:{line},{col}]", self.start);
return (exp instanceof AST_SymbolRef ? make_node(AST_True, self) : make_sequence(self, [
return (exp instanceof AST_SymbolRef && all(exp.definition().orig, function(sym) {
return !(sym instanceof AST_SymbolConst || sym instanceof AST_SymbolLet);
}) ? make_node(AST_True, self) : make_sequence(self, [
exp,
make_node(AST_True, self)
])).optimize(compressor);