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

Unified Diff: pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart

Issue 1072403005: dart2js: fully assemble program before emitting it. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix Created 5 years, 8 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/old_emitter/class_emitter.dart
diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart
index cd1c967e4d9746c92e4a398970317f44c1c954b6..dc1f7da028f625417cb7b05660134ce13b7311fc 100644
--- a/pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart
@@ -12,7 +12,7 @@ class ClassEmitter extends CodeEmitterHelper {
/**
* Documentation wanted -- johnniwinther
*/
- void emitClass(Class cls, ClassBuilder enclosingBuilder) {
+ void emitClass(Class cls, ClassBuilder enclosingBuilder, Fragment fragment) {
ClassElement classElement = cls.element;
assert(invariant(classElement, classElement.isDeclaration));
@@ -52,7 +52,8 @@ class ClassEmitter extends CodeEmitterHelper {
builder.addProperty(name, function);
}
- emitClassBuilderWithReflectionData(cls, builder, enclosingBuilder);
+ emitClassBuilderWithReflectionData(cls, builder, enclosingBuilder,
+ fragment);
}
/**
* Emits the precompiled constructor when in CSP mode.
@@ -74,7 +75,7 @@ class ClassEmitter extends CodeEmitterHelper {
String constructorName = namer.className(classElement);
OutputUnit outputUnit =
compiler.deferredLoadTask.outputUnitForElement(classElement);
- emitter.emitPrecompiledConstructor(
+ emitter.assemblePrecompiledConstructor(
outputUnit, constructorName, constructorAst, fieldNames);
}
@@ -272,7 +273,8 @@ class ClassEmitter extends CodeEmitterHelper {
void emitClassBuilderWithReflectionData(Class cls,
ClassBuilder classBuilder,
- ClassBuilder enclosingBuilder) {
+ ClassBuilder enclosingBuilder,
+ Fragment fragment) {
ClassElement classElement = cls.element;
String className = cls.name;
@@ -307,8 +309,9 @@ class ClassEmitter extends CodeEmitterHelper {
statics.add(property);
}
+ // TODO(herhut): Do not grab statics out of the properties.
ClassBuilder classProperties =
- emitter.elementDescriptors.remove(classElement);
+ emitter.elementDescriptors[fragment].remove(classElement);
if (classProperties != null) {
statics.addAll(classProperties.properties);
}
@@ -334,8 +337,7 @@ class ClassEmitter extends CodeEmitterHelper {
for (DartType interface in classElement.interfaces) {
types.add(task.metadataCollector.reifyType(interface));
}
- enclosingBuilder.addProperty("+$reflectionName",
- new jsAst.ArrayInitializer(types.map(js.number).toList()));
+ enclosingBuilder.addProperty("+$reflectionName", js.numArray(types));
}
}
}
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/model.dart ('k') | pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698