diff --git a/lib/compress.js b/lib/compress.js index 121e312a..13ae7c70 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -2067,7 +2067,8 @@ merge(Compressor.prototype, { && self.left.right instanceof AST_Constant && self.right instanceof AST_Binary && self.right.operator == "+" - && self.right.left instanceof AST_Constant) { + && self.right.left instanceof AST_Constant + && self.right.is_string(compressor)) { self = make_node(AST_Binary, self, { operator: "+", left: make_node(AST_Binary, self.left, { diff --git a/test/compress/issue-126.js b/test/compress/issue-126.js index 1e654941..7a597b87 100644 --- a/test/compress/issue-126.js +++ b/test/compress/issue-126.js @@ -10,6 +10,7 @@ concatenate_rhs_strings: { foo(bar() + 123 + "Hello" + "World" + ("Foo" + "Bar")); foo("Foo" + "Bar" + bar() + 123 + "Hello" + "World" + ("Foo" + "Bar")); foo("Hello" + bar() + 123 + "World"); + foo(bar() + 'Foo' + (10 + parseInt('10'))); } expect: { foo(bar() + 123 + "HelloWorld"); @@ -18,5 +19,6 @@ concatenate_rhs_strings: { foo(bar() + 123 + "HelloWorldFooBar"); foo("FooBar" + bar() + "123HelloWorldFooBar"); foo("Hello" + bar() + "123World"); + foo(bar() + 'Foo' + (10 + parseInt('10'))); } }