From 65e31e8ba7a84beab3e3fc4d58a30db046a0bcb3 Mon Sep 17 00:00:00 2001 From: alexlamsl Date: Mon, 2 Mar 2020 03:38:12 +0800 Subject: [PATCH] fix corner case in `evaluate` fixes #3738 --- lib/compress.js | 3 +-- test/compress/evaluate.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/compress.js b/lib/compress.js index e455ea8d..ab89e927 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -2528,9 +2528,8 @@ merge(Compressor.prototype, { return left.is_negative_zero() || right.is_negative_zero(); case "*": case "/": - return true; case "%": - return left.is_negative_zero(); + return true; default: return false; } diff --git a/test/compress/evaluate.js b/test/compress/evaluate.js index 09fdfb2a..6d3adacb 100644 --- a/test/compress/evaluate.js +++ b/test/compress/evaluate.js @@ -2161,3 +2161,16 @@ collapse_vars_regexp: { "abbb", ] } + +issue_3738: { + options = { + evaluate: true, + } + input: { + console.log(1 / (0 + ([] - 1) % 1)); + } + expect: { + console.log(1 / (0 + ([] - 1) % 1)); + } + expect_stdout: "Infinity" +}