fix corner case in evaluate (#3685)

fixes #3684
This commit is contained in:
Alex Lam S.L
2020-01-16 01:51:37 +08:00
committed by GitHub
parent 91d87ae663
commit 41a6eb892a
2 changed files with 20 additions and 1 deletions

View File

@@ -2497,9 +2497,10 @@ merge(Compressor.prototype, {
&& (!(right instanceof AST_Constant) || right.value == 0);
case "&&":
case "||":
case "*":
return left.is_negative_zero() || right.is_negative_zero();
case "*":
case "/":
return true;
case "%":
return left.is_negative_zero();
default:

View File

@@ -1215,3 +1215,21 @@ issue_3682_3: {
}
expect_stdout: "-Infinity"
}
issue_3684: {
options = {
evaluate: true,
}
input: {
console.log(1 / (-1 * (0 & console) + 0));
console.log(1 / ((0 & console) / -1 + 0));
}
expect: {
console.log(1 / (-1 * (0 & console) + 0));
console.log(1 / ((0 & console) / -1 + 0));
}
expect_stdout: [
"Infinity",
"Infinity",
]
}