Index: pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart |
diff --git a/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart b/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart |
index 912fa4b2df6a70e08436a184d3d28df918e80877..61e206e991dbb59025f5116dc1537d9e1990b693 100644 |
--- a/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart |
+++ b/pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart |
@@ -138,8 +138,8 @@ class ModelEmitter { |
// deferred hash (which depends on the output) when emitting the main |
// fragment. |
fragments.skip(1).forEach((DeferredFragment deferredUnit) { |
- List<js.Expression> types = |
- program.metadataTypes[deferredUnit.outputUnit]; |
+ js.Expression types = |
+ program.metadataTypesForOutputUnit(deferredUnit.outputUnit); |
js.Expression ast = emitDeferredFragment(types, deferredUnit, |
program.holders); |
String code = js.prettyPrint(ast, compiler).getText(); |
@@ -192,7 +192,6 @@ class ModelEmitter { |
emitLazilyInitializedStatics(fragment.staticLazilyInitializedFields)); |
elements.add(emitConstants(fragment.constants)); |
- |
js.Expression code = new js.ArrayInitializer(elements); |
Map<String, dynamic> holes = |
@@ -492,21 +491,19 @@ class ModelEmitter { |
List<js.Property> metadataGlobals = <js.Property>[]; |
- js.ArrayInitializer unparsedMetadata = unparseExpressions(program.metadata); |
- metadataGlobals.add(new js.Property(js.string(lazyMetadataName), |
- unparsedMetadata)); |
- metadataGlobals.add(new js.Property(js.string(METADATA), |
- new js.ArrayInitializer([]))); |
+ js.Property createGlobal(js.Expression metadata, String global) { |
+ return new js.Property(js.string(global), metadata); |
+ } |
- List<js.Expression> types = |
- program.metadataTypes[program.fragments.first.outputUnit]; |
- metadataGlobals.add(new js.Property(js.string(TYPES), |
- unparseExpressions(types))); |
+ metadataGlobals.add(createGlobal(program.metadata, METADATA)); |
+ js.Expression types = |
+ program.metadataTypesForOutputUnit(program.mainFragment.outputUnit); |
+ metadataGlobals.add(createGlobal(types, TYPES)); |
return metadataGlobals; |
} |
- js.Expression emitDeferredFragment(List<js.Expression> types, |
+ js.Expression emitDeferredFragment(js.Expression deferredTypes, |
DeferredFragment fragment, |
List<Holder> holders) { |
// TODO(floitsch): initialize eager classes. |
@@ -531,10 +528,6 @@ class ModelEmitter { |
js.LiteralString immediateString = unparse(compiler, immediateCode); |
- js.Expression deferredTypes = (types == null) |
- ? js.string("[]") |
- : unparse(compiler, new js.ArrayInitializer(types)); |
- |
js.ArrayInitializer hunk = |
new js.ArrayInitializer([deferredArray, immediateString, |
deferredTypes]); |