fix corner case in comparisons (#3414)

fixes #3413
This commit is contained in:
Alex Lam S.L
2019-05-15 01:01:18 +08:00
committed by GitHub
parent f87caac9d8
commit 1f0def10eb
2 changed files with 19 additions and 2 deletions

View File

@@ -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;

View File

@@ -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"
}