This commit is contained in:
Tal Ater 2014-09-26 23:49:51 +00:00
commit 5aa8992dfb
2 changed files with 56 additions and 0 deletions

View File

@ -2332,6 +2332,20 @@ merge(Compressor.prototype, {
}
}
// x=y?true:false --> x=!!y
if (consequent instanceof AST_True
&& alternative instanceof AST_False) {
self.condition = self.condition.negate(compressor);
return make_node(AST_UnaryPrefix, self.condition, {
operator: "!",
expression: self.condition
});
}
// x=y?false:true --> x=!y
if (consequent instanceof AST_False
&& alternative instanceof AST_True) {
return self.condition.negate(compressor)
}
return self;
});

View File

@ -293,3 +293,45 @@ cond_7: {
}
}
cond_8: {
options = {
conditionals: true,
evaluate : true
};
input: {
// compress these
a = condition ? true : false;
a = !condition ? true : false;
a = condition() ? true : false;
if (condition) {
a = true;
} else {
a = false;
}
a = condition ? false : true;
a = !condition ? false : true;
a = condition() ? false : true;
if (condition) {
a = false;
} else {
a = true;
}
}
expect: {
a = !!condition;
a = !condition;
a = !!condition();
a = !!condition;
a = !condition;
a = !!condition;
a = !condition();
a = !condition;
}
}