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

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

Issue 809433004: dart2js: is-checks for the new emitter. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Improved test. Created 5 years, 12 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/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 {

Powered by Google App Engine
This is Rietveld 408576698