Skip to content

Commit

Permalink
fix corner case in booleans (#3691)
Browse files Browse the repository at this point in the history
fixes #3690
  • Loading branch information
alexlamsl committed Jan 27, 2020
1 parent 36a430c commit 0dcedad
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 2 deletions.
4 changes: 2 additions & 2 deletions lib/compress.js
Expand Up @@ -4453,15 +4453,15 @@ merge(Compressor.prototype, {
var ev = value.is_truthy() || value.tail_node().evaluate(compressor);
if (!ev) {
value = value.drop_side_effect_free(compressor);
if (node.value !== value) node.value = value ? make_sequence(node.value, [
node.value = value ? make_sequence(node.value, [
value,
make_node(AST_Number, node.value, {
value: 0
})
]) : null;
} else if (ev && !(ev instanceof AST_Node)) {
value = value.drop_side_effect_free(compressor);
if (node.value !== value) node.value = value ? make_sequence(node.value, [
node.value = value ? make_sequence(node.value, [
value,
make_node(AST_Number, node.value, {
value: 1
Expand Down
22 changes: 22 additions & 0 deletions test/compress/booleans.js
Expand Up @@ -131,3 +131,25 @@ issue_3658: {
}
expect_stdout: "PASS"
}

issue_3690: {
options = {
booleans: true,
unused: true,
}
input: {
console.log(function(a) {
return function() {
return a = [ this ];
}() ? "PASS" : "FAIL";
}());
}
expect: {
console.log(function(a) {
return function() {
return 1;
}() ? "PASS" : "FAIL";
}());
}
expect_stdout: "PASS"
}

0 comments on commit 0dcedad

Please sign in to comment.