| Index: pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| index b95819bf05b32f69d7e06f6aa5c57e9683f57dd0..7042defa0147a93247b1c3aa7e22891a46c4a5e2 100644
|
| --- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| @@ -171,31 +171,6 @@ class CodeGenerator extends tree_ir.StatementVisitor
|
| }
|
|
|
| @override
|
| - js.Expression visitConcatenateStrings(tree_ir.ConcatenateStrings node) {
|
| - js.Expression addStrings(js.Expression left, js.Expression right) {
|
| - return new js.Binary('+', left, right);
|
| - }
|
| -
|
| - js.Expression toString(tree_ir.Expression input) {
|
| - bool useDirectly = input is tree_ir.Constant &&
|
| - (input.value.isString ||
|
| - input.value.isInt ||
|
| - input.value.isBool);
|
| - js.Expression value = visitExpression(input);
|
| - if (useDirectly) {
|
| - return value;
|
| - } else {
|
| - Element convertToString = glue.getStringConversion();
|
| - registry.registerStaticUse(convertToString);
|
| - js.Expression access = glue.staticFunctionAccess(convertToString);
|
| - return (new js.Call(access, <js.Expression>[value]));
|
| - }
|
| - }
|
| -
|
| - return node.arguments.map(toString).reduce(addStrings);
|
| - }
|
| -
|
| - @override
|
| js.Expression visitConditional(tree_ir.Conditional node) {
|
| return new js.Conditional(
|
| visitExpression(node.condition),
|
| @@ -739,6 +714,9 @@ class CodeGenerator extends tree_ir.StatementVisitor
|
| return new js.Binary('>', args[0], args[1]);
|
| case BuiltinOperator.NumGe:
|
| return new js.Binary('>=', args[0], args[1]);
|
| + case BuiltinOperator.StringConcatenate:
|
| + if (args.isEmpty) return js.string('');
|
| + return args.reduce((e1,e2) => new js.Binary('+', e1, e2));
|
| case BuiltinOperator.StrictEq:
|
| return new js.Binary('===', args[0], args[1]);
|
| case BuiltinOperator.StrictNeq:
|
|
|