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

Unified Diff: lib/compiler/implementation/js_backend/emitter.dart

Issue 10917285: Stub implementation of patch invariants for the patch refactoring. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Leftovers from rebase. Created 8 years, 3 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: lib/compiler/implementation/js_backend/emitter.dart
diff --git a/lib/compiler/implementation/js_backend/emitter.dart b/lib/compiler/implementation/js_backend/emitter.dart
index cad7e017e81a542e80ebdf17ede21062535ba21d..4d470af4fdc6c1281183a63fe478312596ca3e56 100644
--- a/lib/compiler/implementation/js_backend/emitter.dart
+++ b/lib/compiler/implementation/js_backend/emitter.dart
@@ -492,6 +492,7 @@ function(prototype, staticName, fieldName, getterName, lazyValue) {
void addInstanceMember(Element member,
DefineMemberFunction defineInstanceMember) {
+ assert(member.isDeclaration);
// TODO(floitsch): we don't need to deal with members of
// uninstantiated classes, that have been overwritten by subclasses.
@@ -537,6 +538,7 @@ function(prototype, staticName, fieldName, getterName, lazyValue) {
}
List<String> emitClassFields(ClassElement classElement, CodeBuffer buffer) {
+ assert(classElement.isDeclaration);
// If the class is never instantiated we still need to set it up for
// inheritance purposes, but we can simplify its JavaScript constructor.
bool isInstantiated =
@@ -546,6 +548,7 @@ function(prototype, staticName, fieldName, getterName, lazyValue) {
bool isFirstField = true;
void addField(ClassElement enclosingClass, Element member) {
assert(!member.isNative());
+ assert(member.isDeclaration);
LibraryElement library = member.getLibrary();
SourceString name = member.name;
@@ -834,6 +837,7 @@ function(prototype, staticName, fieldName, getterName, lazyValue) {
void emitDynamicFunctionGetter(FunctionElement member,
DefineMemberFunction defineInstanceMember) {
+ assert(member.isDeclaration);
// For every method that has the same name as a property-get we create a
// getter that returns a bound closure. Say we have a class 'A' with method
// 'foo' and somewhere in the code there is a dynamic property get of
@@ -919,21 +923,23 @@ $classesCollector.$mangledName = {'':
void emitCallStubForGetter(Element member,
Set<Selector> selectors,
DefineMemberFunction defineInstanceMember) {
+ assert(member.isDeclaration);
+ LibraryElement memberLibrary = member.getLibrary();
String getter;
if (member.isGetter()) {
getter = "this.${namer.getterName(member.getLibrary(), member.name)}()";
} else {
- String name = namer.instanceFieldName(member.getLibrary(), member.name);
+ String name = namer.instanceFieldName(memberLibrary, member.name);
getter = "this.$name";
}
for (Selector selector in selectors) {
if (selector.applies(member, compiler)) {
String invocationName =
- namer.instanceMethodInvocationName(member.getLibrary(), member.name,
+ namer.instanceMethodInvocationName(memberLibrary, member.name,
selector);
SourceString callName = Namer.CLOSURE_INVOCATION_NAME;
String closureCallName =
- namer.instanceMethodInvocationName(member.getLibrary(), callName,
+ namer.instanceMethodInvocationName(memberLibrary, callName,
selector);
List<String> arguments = <String>[];
for (int i = 0; i < selector.argumentCount; i++) {
@@ -1027,6 +1033,7 @@ $classesCollector.$mangledName = {'':
void emitExtraAccessors(Element member,
DefineMemberFunction defineInstanceMember) {
+ assert(member.isDeclaration);
if (member.isGetter() || member.isField()) {
Set<Selector> selectors = compiler.codegenWorld.invokedNames[member.name];
if (selectors !== null && !selectors.isEmpty()) {

Powered by Google App Engine
This is Rietveld 408576698