return this;
});
+ var commutativeOperators = makePredicate("== === != !== * & | ^");
+
OPT(AST_Binary, function(self, compressor){
+ function reverse(op) {
+ if (op) self.operator = op;
+ var tmp = self.left;
+ self.left = self.right;
+ self.right = tmp;
+ };
+ if (commutativeOperators(self.operator)) {
+ if (self.right instanceof AST_Constant
+ && !(self.left instanceof AST_Constant)) {
+ reverse();
+ }
+ }
self = self.lift_sequences(compressor);
if (compressor.option("comparisons")) switch (self.operator) {
case "===":
// XXX: intentionally falling down to the next case
case "==":
case "!=":
- if (self.right instanceof AST_Constant && !(self.left instanceof AST_Constant)) {
- var tmp = self.left;
- self.left = self.right;
- self.right = tmp;
- }
if (self.left instanceof AST_String
&& self.left.value == "undefined"
&& self.right instanceof AST_UnaryPrefix
});
self = best_of(self, negated);
}
- var reverse = function(op) {
- self.operator = op;
- var tmp = self.left;
- self.left = self.right;
- self.right = tmp;
- };
switch (self.operator) {
case "<": reverse(">"); break;
case "<=": reverse(">="); break;