Index: pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
index 40a747308c37b9f4be70cc4cc5ec6662b73d3d74..0ee0dbaa89160abf8919c3358c150b896040fb00 100644 |
--- a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
+++ b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart |
@@ -137,6 +137,7 @@ class OldEmitter implements Emitter { |
buffer.write(jsAst.prettyPrint(js.comment(comment), compiler)); |
} |
+ @override |
jsAst.Expression constantReference(ConstantValue value) { |
return constantEmitter.reference(value); |
} |
@@ -178,6 +179,7 @@ class OldEmitter implements Emitter { |
/// All the global state can be passed around with this variable. |
String get globalsHolder => namer.getMappedGlobalName("globalsHolder"); |
+ @override |
jsAst.Expression generateEmbeddedGlobalAccess(String global) { |
return js(generateEmbeddedGlobalAccessString(global)); |
} |
@@ -187,38 +189,55 @@ class OldEmitter implements Emitter { |
return '$initName.$global'; |
} |
- jsAst.Expression isolateLazyInitializerAccess(Element element) { |
+ jsAst.PropertyAccess globalPropertyAccess(Element element) { |
+ String name = namer.getNameX(element); |
+ jsAst.PropertyAccess pa = new jsAst.PropertyAccess.field( |
+ new jsAst.VariableUse(namer.globalObjectFor(element)), |
+ name); |
+ return pa; |
+ } |
+ |
+ @override |
+ jsAst.Expression isolateLazyInitializerAccess(FieldElement element) { |
return jsAst.js('#.#', [namer.globalObjectFor(element), |
namer.getLazyInitializerName(element)]); |
} |
- jsAst.Expression isolateStaticClosureAccess(Element element) { |
+ @override |
+ jsAst.Expression isolateStaticClosureAccess(FunctionElement element) { |
return jsAst.js('#.#()', |
[namer.globalObjectFor(element), namer.getStaticClosureName(element)]); |
} |
- jsAst.PropertyAccess globalPropertyAccess(Element element) { |
- String name = namer.getNameX(element); |
- jsAst.PropertyAccess pa = new jsAst.PropertyAccess.field( |
- new jsAst.VariableUse(namer.globalObjectFor(element)), |
- name); |
- return pa; |
+ @override |
+ jsAst.PropertyAccess staticFieldAccess(FieldElement element) { |
+ return globalPropertyAccess(element); |
+ } |
+ |
+ @override |
+ jsAst.PropertyAccess staticFunctionAccess(FunctionElement element) { |
+ return globalPropertyAccess(element); |
} |
- jsAst.PropertyAccess staticFieldAccess(Element element) { |
- return globalPropertyAccess(element); |
+ @override |
+ jsAst.PropertyAccess constructorAccess(ClassElement element) { |
+ return globalPropertyAccess(element); |
} |
- jsAst.PropertyAccess staticFunctionAccess(Element element) { |
- return globalPropertyAccess(element); |
+ @override |
+ jsAst.PropertyAccess prototypeAccess(ClassElement element, |
+ bool hasBeenInstantiated) { |
+ return jsAst.js('#.prototype', constructorAccess(element)); |
} |
- jsAst.PropertyAccess classAccess(Element element) { |
- return globalPropertyAccess(element); |
+ @override |
+ jsAst.PropertyAccess interceptorClassAccess(ClassElement element) { |
+ return globalPropertyAccess(element); |
} |
- jsAst.PropertyAccess typedefAccess(Element element) { |
- return globalPropertyAccess(element); |
+ @override |
+ jsAst.PropertyAccess typeAccess(Element element) { |
+ return globalPropertyAccess(element); |
} |
jsAst.FunctionDeclaration get generateAccessorFunction { |