fix corner case in comparisons

fixes #3413
This commit is contained in:
alexlamsl 2019-05-14 22:49:59 +08:00
parent f87caac9d8
commit 0ab7eb6a94
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"
}