diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2019-05-15 01:01:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-15 01:01:18 +0800 |
commit | 1f0def10ebc637ddd6c24094942ae616f94ed25f (patch) | |
tree | 139388e335d0ac1b301d4e982ba76ea35aef3174 | |
parent | f87caac9d89061ce005c56384e08fd94ca80d94c (diff) | |
download | tracifyjs-1f0def10ebc637ddd6c24094942ae616f94ed25f.tar.gz tracifyjs-1f0def10ebc637ddd6c24094942ae616f94ed25f.zip |
fix corner case in `comparisons` (#3414)
fixes #3413
-rw-r--r-- | lib/compress.js | 4 | ||||
-rw-r--r-- | test/compress/comparisons.js | 17 |
2 files changed, 19 insertions, 2 deletions
diff --git a/lib/compress.js b/lib/compress.js index 3bb6cb24..f7730cd5 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -2348,7 +2348,7 @@ merge(Compressor.prototype, { case "&&": return this.left.is_defined(compressor) && this.right.is_defined(compressor); case "||": - return this.left.is_defined(compressor) || this.right.is_defined(compressor); + return this.left.is_truthy() || this.right.is_defined(compressor); default: return true; } @@ -2368,7 +2368,7 @@ merge(Compressor.prototype, { if (this.is_immutable()) return true; var fixed = this.fixed_value(); if (!fixed) return false; - this.is_defined = return_true; + this.is_defined = return_false; var result = fixed.is_defined(compressor); delete this.is_defined; return result; diff --git a/test/compress/comparisons.js b/test/compress/comparisons.js index ef0db00c..461f415c 100644 --- a/test/compress/comparisons.js +++ b/test/compress/comparisons.js @@ -380,3 +380,20 @@ unsafe_indexOf: { } expect_stdout: "PASS" } + +issue_3413: { + options = { + comparisons: true, + evaluate: true, + side_effects: true, + } + input: { + var b; + void 0 !== ("" < b || void 0) || console.log("PASS"); + } + expect: { + var b; + void 0 !== ("" < b || void 0) || console.log("PASS"); + } + expect_stdout: "PASS" +} |