| 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]);
|
|
|