| Index: pkg/compiler/lib/src/js_emitter/old_emitter/class_builder.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/class_builder.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/class_builder.dart
|
| index 3be27cf899f4b09f09424366f5f8c25e75f1d7c4..a8b4cddf9f09bb01c77613883276ffdab694474c 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/old_emitter/class_builder.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/old_emitter/class_builder.dart
|
| @@ -9,10 +9,10 @@ part of dart2js.js_emitter;
|
| */
|
| class ClassBuilder {
|
| final List<jsAst.Property> properties = <jsAst.Property>[];
|
| - final List<String> fields = <String>[];
|
| + final List<jsAst.Literal> fields = <jsAst.Literal>[];
|
|
|
| String superName;
|
| - String functionType;
|
| + jsAst.Node functionType;
|
| List<jsAst.Node> fieldMetadata;
|
|
|
| final Element element;
|
| @@ -26,7 +26,7 @@ class ClassBuilder {
|
| return property;
|
| }
|
|
|
| - void addField(String field) {
|
| + void addField(jsAst.Literal field) {
|
| fields.add(field);
|
| }
|
|
|
| @@ -41,18 +41,19 @@ class ClassBuilder {
|
|
|
| jsAst.ObjectInitializer toObjectInitializer(
|
| {bool emitClassDescriptor: true}) {
|
| - StringBuffer buffer = new StringBuffer();
|
| + List<jsAst.Literal> parts = <jsAst.Literal>[];
|
| if (superName != null) {
|
| - buffer.write(superName);
|
| + parts.add(js.stringPart(superName));
|
| if (functionType != null) {
|
| // See [functionTypeEncodingDescription] above.
|
| - buffer.write(':$functionType');
|
| + parts.add(js.stringPart(':'));
|
| + parts.add(functionType);
|
| }
|
| - buffer.write(';');
|
| + parts.add(js.stringPart(';'));
|
| }
|
| // See [fieldEncodingDescription] above.
|
| - buffer.writeAll(fields, ',');
|
| - var classData = js.string('$buffer');
|
| + parts.addAll(js.joinLiterals(fields, js.stringPart(',')));
|
| + var classData = js.concatenateStrings(parts, addQuotes: true);
|
| if (fieldMetadata != null) {
|
| // If we need to store fieldMetadata, classData is turned into an array,
|
| // and the field metadata is appended. So if classData is just a string,
|
|
|