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

Unified Diff: pkg/compiler/lib/src/js_emitter/program_builder.dart

Issue 840553002: dart2js: Add elements to the emitter's model. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 11 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
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/js_emitter/program_builder.dart
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder.dart b/pkg/compiler/lib/src/js_emitter/program_builder.dart
index 15959ee4ee6df724523fea40cb0d75ec78c1b369..f26076f0d8b84153310ac5307dba40f6fc9da11c 100644
--- a/pkg/compiler/lib/src/js_emitter/program_builder.dart
+++ b/pkg/compiler/lib/src/js_emitter/program_builder.dart
@@ -177,7 +177,8 @@ class ProgramBuilder {
String name = namer.getNameOfGlobalField(element);
bool isFinal = false;
bool isLazy = false;
- return new StaticField(name, _registry.registerHolder(r'$'), code,
+ return new StaticField(element,
+ name, _registry.registerHolder(r'$'), code,
isFinal, isLazy);
}
@@ -206,7 +207,8 @@ class ProgramBuilder {
String name = namer.getNameOfGlobalField(element);
bool isFinal = element.isFinal;
bool isLazy = true;
- return new StaticField(name, _registry.registerHolder(r'$'), code,
+ return new StaticField(element,
+ name, _registry.registerHolder(r'$'), code,
isFinal, isLazy);
}
@@ -242,7 +244,7 @@ class ProgramBuilder {
.map(_buildClass)
.toList(growable: false);
- return new Library(uri, statics, classes);
+ return new Library(library, uri, statics, classes);
}
Class _buildClass(ClassElement element) {
@@ -285,7 +287,7 @@ class ProgramBuilder {
// The individual emitters should then call the type test generator to
// generate the code.
typeTests.properties.forEach((String name, js.Node code) {
- methods.add(_buildMethodWithName(name, code));
+ methods.add(_buildStubMethod(name, code));
});
String name = namer.getNameOfClass(element);
@@ -297,11 +299,13 @@ class ProgramBuilder {
Class result;
if (element.isMixinApplication) {
- result = new MixinApplication(name, holder, methods, fields,
+ result = new MixinApplication(element,
+ name, holder, methods, fields,
isDirectlyInstantiated: isInstantiated,
onlyForRti: onlyForRti);
} else {
- result = new Class(name, holder, methods, fields,
+ result = new Class(element,
+ name, holder, methods, fields,
isDirectlyInstantiated: isInstantiated,
onlyForRti: onlyForRti);
}
@@ -311,11 +315,11 @@ class ProgramBuilder {
Method _buildMethod(FunctionElement element, js.Expression code) {
String name = namer.getNameOfInstanceMember(element);
- return new Method(name, code);
+ return new Method(element, name, code);
}
- Method _buildMethodWithName(String name, js.Expression code) {
- return new Method(name, code);
+ Method _buildStubMethod(String name, js.Expression code) {
+ return new StubMethod(name, code);
}
// The getInterceptor methods directly access the prototype of classes.
@@ -345,7 +349,7 @@ class ProgramBuilder {
return names.map((String name) {
Set<ClassElement> classes = specializedGetInterceptors[name];
js.Expression code = stubGenerator.generateGetInterceptorMethod(classes);
- return new StaticMethod(name, holder, code);
+ return new StaticStubMethod(name, holder, code);
});
}
@@ -402,7 +406,7 @@ class ProgramBuilder {
}
}
- return new InstanceField(name, getterFlags, setterFlags);
+ return new InstanceField(field, name, getterFlags, setterFlags);
}
Iterable<StaticMethod> _generateOneShotInterceptors() {
@@ -415,7 +419,7 @@ class ProgramBuilder {
List<String> names = backend.oneShotInterceptors.keys.toList()..sort();
return names.map((String name) {
js.Expression code = stubGenerator.generateOneShotInterceptor(name);
- return new StaticMethod(name, holder, code);
+ return new StaticStubMethod(name, holder, code);
});
}
@@ -423,7 +427,8 @@ class ProgramBuilder {
String name = namer.getNameOfMember(element);
String holder = namer.globalObjectFor(element);
js.Expression code = backend.generatedCode[element];
- return new StaticMethod(name, _registry.registerHolder(holder), code);
+ return new StaticMethod(element,
+ name, _registry.registerHolder(holder), code);
}
StaticMethod _buildStaticMethodTearOff(FunctionElement element) {
@@ -431,7 +436,8 @@ class ProgramBuilder {
String holder = namer.globalObjectFor(element);
// TODO(kasperl): This clearly doesn't work yet.
js.Expression code = js.string("<<unimplemented>>");
- return new StaticMethod(name, _registry.registerHolder(holder), code);
+ return new StaticMethod(element,
+ name, _registry.registerHolder(holder), code);
}
void _registerConstants(OutputUnit outputUnit,
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/new_emitter/model_emitter.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698