Chromium Code Reviews| 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..9f8a4a654863a0af4e5849f166373f1c806045c0 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); |
| } |
| @@ -39,20 +39,21 @@ class ClassBuilder { |
| '(and possibly a function type encoding) the fields are separated from ' |
| 'the superclass by a semicolon.'; |
| - jsAst.ObjectInitializer toObjectInitializer( |
| + jsAst.ObjectInitializer toObjectInitializer(Compiler compiler, |
|
karlklose
2015/05/28 09:39:53
The parameter 'compiler' seems to be unsued.
herhut
2015/06/01 12:09:42
True. Removed.
|
| {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, |