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

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

Issue 2907373002: Use entities for globals in Namer. (Closed)
Patch Set: Updated cf. comments Created 3 years, 7 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/full_emitter/emitter.dart
diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
index 8952e16f83f91081a31c7ff853123b33557af947..513e5285175551c5fc95253eeacf31618ac04c99 100644
--- a/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart
@@ -53,7 +53,7 @@ import '../../world.dart' show ClosedWorld;
import '../constant_ordering.dart' show deepCompareConstants;
import '../headers.dart';
import '../js_emitter.dart' hide Emitter, EmitterFactory;
-import '../js_emitter.dart' as js_emitter show Emitter, EmitterFactory;
+import '../js_emitter.dart' as js_emitter show EmitterBase, EmitterFactory;
import '../model.dart';
import '../program_builder/program_builder.dart';
import '../sorter.dart';
@@ -91,7 +91,7 @@ class EmitterFactory implements js_emitter.EmitterFactory {
}
}
-class Emitter implements js_emitter.Emitter {
+class Emitter extends js_emitter.EmitterBase {
final Compiler compiler;
final CodeEmitterTask task;
final ClosedWorld _closedWorld;
@@ -299,38 +299,20 @@ class Emitter implements js_emitter.Emitter {
return '$initName.$global';
}
- jsAst.PropertyAccess globalPropertyAccess(Element element) {
- jsAst.Name name = namer.globalPropertyName(element);
- jsAst.PropertyAccess pa = new jsAst.PropertyAccess(
- new jsAst.VariableUse(namer.globalObjectFor(element)), name);
- return pa;
- }
-
@override
jsAst.Expression isolateLazyInitializerAccess(FieldElement element) {
- return jsAst.js('#.#',
- [namer.globalObjectFor(element), namer.lazyInitializerName(element)]);
+ return jsAst.js('#.#', [
+ namer.globalObjectForMember(element),
+ namer.lazyInitializerName(element)
+ ]);
}
@override
jsAst.Expression isolateStaticClosureAccess(MethodElement element) {
- return jsAst.js('#.#()',
- [namer.globalObjectFor(element), namer.staticClosureName(element)]);
- }
-
- @override
- jsAst.PropertyAccess staticFieldAccess(FieldElement element) {
- return globalPropertyAccess(element);
- }
-
- @override
- jsAst.PropertyAccess staticFunctionAccess(MethodElement element) {
- return globalPropertyAccess(element);
- }
-
- @override
- jsAst.PropertyAccess constructorAccess(ClassElement element) {
- return globalPropertyAccess(element);
+ return jsAst.js('#.#()', [
+ namer.globalObjectForMember(element),
+ namer.staticClosureName(element)
+ ]);
}
@override
@@ -340,16 +322,6 @@ class Emitter implements js_emitter.Emitter {
}
@override
- jsAst.PropertyAccess interceptorClassAccess(ClassElement element) {
- return globalPropertyAccess(element);
- }
-
- @override
- jsAst.PropertyAccess typeAccess(Entity element) {
- return globalPropertyAccess(element);
- }
-
- @override
jsAst.Template templateForBuiltin(JsBuiltin builtin) {
switch (builtin) {
case JsBuiltin.dartObjectConstructor:
@@ -609,7 +581,7 @@ class Emitter implements js_emitter.Emitter {
jsAst.Statement buildInitialization(
FieldElement element, jsAst.Expression initialValue) {
return js.statement('${namer.staticStateHolder}.# = #',
- [namer.globalPropertyName(element), initialValue]);
+ [namer.globalPropertyNameForMember(element), initialValue]);
}
bool inMainUnit = (outputUnit == compiler.deferredLoadTask.mainOutputUnit);
@@ -1078,7 +1050,7 @@ class Emitter implements js_emitter.Emitter {
..add(js.string(libraryName))
..add(js.string(uri.toString()))
..add(metadata == null ? new jsAst.ArrayHole() : metadata)
- ..add(js('#', namer.globalObjectFor(library)))
+ ..add(js('#', namer.globalObjectForLibrary(library)))
..add(initializer);
if (library == compiler.mainApp) {
parts.add(js.number(1));
@@ -1157,7 +1129,7 @@ class Emitter implements js_emitter.Emitter {
assert(commonElements.objectClass != null);
builder.superName = namer.className(commonElements.objectClass);
jsAst.Node declaration = builder.toObjectInitializer();
- jsAst.Name mangledName = namer.globalPropertyName(typedef);
+ jsAst.Name mangledName = namer.globalPropertyNameForType(typedef);
String reflectionName = getReflectionName(typedef, mangledName);
getLibraryDescriptor(library, mainFragment)
..addProperty(mangledName, declaration)
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/code_emitter_task.dart ('k') | pkg/compiler/lib/src/js_emitter/lazy_emitter/emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698