fix corner case in evaluate (#4716)

fixes #4715
This commit is contained in:
Alex Lam S.L
2021-03-02 09:33:28 +00:00
committed by GitHub
parent 74dee5c445
commit 23b51287aa
2 changed files with 40 additions and 0 deletions

View File

@@ -3523,6 +3523,7 @@ merge(Compressor.prototype, {
case "*": case "*":
case "/": case "/":
case "%": case "%":
case "**":
return true; return true;
default: default:
return false; return false;

View File

@@ -84,3 +84,42 @@ issue_4664: {
expect_stdout: "function 1073741824 object" expect_stdout: "function 1073741824 object"
node_version: ">=8" node_version: ">=8"
} }
issue_4715: {
options = {
evaluate: true,
}
input: {
A = 1;
console.log((-0) ** A + 0);
console.log((-0) ** A - 0);
console.log((-0) ** A * 1);
console.log((-0) ** A / 1);
console.log(Math.pow(-0, A) + 0);
console.log(Math.pow(-0, A) - 0);
console.log(Math.pow(-0, A) * 1);
console.log(Math.pow(-0, A) / 1);
}
expect: {
A = 1;
console.log((-0) ** A + 0);
console.log((-0) ** A);
console.log((-0) ** A * 1);
console.log((-0) ** A);
console.log(Math.pow(-0, A) + 0);
console.log(+Math.pow(-0, A));
console.log(+Math.pow(-0, A));
console.log(+Math.pow(-0, A));
}
expect_stdout: [
"0",
"-0",
"-0",
"-0",
"0",
"-0",
"-0",
"-0",
]
node_version: ">=8"
}