Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1784)

Unified Diff: pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart

Issue 1153243003: dart2js: Use frequency of occurence to sort metadata indices. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Addressed sra's comments Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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]);
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/model.dart ('k') | pkg/compiler/lib/src/js_emitter/old_emitter/class_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698