def(AST_Conditional, function(compressor){
return this.consequent.is_string(compressor) && this.alternative.is_string(compressor);
});
- def(AST_Call, function(compressor){
- return compressor.option("unsafe")
- && this.expression instanceof AST_SymbolRef
- && this.expression.name == "String"
- && this.expression.undeclared();
- });
})(function(node, func){
node.DEFMETHOD("is_string", func);
});
}
}
}
- if (self.operator == "+" && self.right instanceof AST_String
- && self.right.getValue() === "" && self.left instanceof AST_Binary
- && self.left.operator == "+" && self.left.is_string(compressor)) {
- return self.left;
+ if (self.operator == "+") {
+ if (self.right instanceof AST_String
+ && self.right.getValue() == ""
+ && self.left.is_string(compressor)) {
+ return self.left;
+ }
+ if (self.left instanceof AST_String
+ && self.left.getValue() == ""
+ && self.right.is_string(compressor)) {
+ return self.right;
+ }
+ if (self.left instanceof AST_Binary
+ && self.left.operator == "+"
+ && self.left.left instanceof AST_String
+ && self.left.left.getValue() == ""
+ && self.right.is_string(compressor)) {
+ self.left = self.left.right;
+ return self.transform(compressor);
+ }
}
if (compressor.option("evaluate")) {
switch (self.operator) {