Compress conditional assignments where all possible outcomes are equivalant and condition has no side effects

This commit is contained in:
Tal Ater
2014-09-02 23:30:25 +03:00
parent 4c64554808
commit 885835a655
2 changed files with 51 additions and 0 deletions

View File

@@ -2321,6 +2321,13 @@ merge(Compressor.prototype, {
alternative: alternative
});
}
// x=y?1:1 --> x=1
if (!self.condition.has_side_effects(compressor)
&& consequent instanceof AST_Constant
&& alternative instanceof AST_Constant
&& consequent.equivalent_to(alternative)) {
return make_node_from_constant(compressor, consequent.value, self);
}
return self;
});