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

Unified Diff: pkg/compiler/lib/src/js_emitter/lazy_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/lazy_emitter/emitter.dart
diff --git a/pkg/compiler/lib/src/js_emitter/lazy_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/lazy_emitter/emitter.dart
index 653f36cf5f63d9602f877d313d683c2e4e6a243f..17a558a5c21a059846a85db55edb75061e29e559 100644
--- a/pkg/compiler/lib/src/js_emitter/lazy_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/lazy_emitter/emitter.dart
@@ -11,13 +11,13 @@ import '../../compiler.dart' show Compiler;
import '../../constants/values.dart' show ConstantValue;
import '../../deferred_load.dart' show OutputUnit;
import '../../elements/elements.dart'
- show ClassElement, Element, FieldElement, MethodElement;
+ show ClassElement, FieldElement, MethodElement;
import '../../elements/entities.dart';
import '../../js/js.dart' as js;
import '../../js_backend/js_backend.dart' show JavaScriptBackend, Namer;
import '../../world.dart' show ClosedWorld;
import '../js_emitter.dart' show CodeEmitterTask, NativeEmitter;
-import '../js_emitter.dart' as emitterTask show Emitter, EmitterFactory;
+import '../js_emitter.dart' as emitterTask show EmitterBase, EmitterFactory;
import '../model.dart';
import '../program_builder/program_builder.dart' show ProgramBuilder;
import 'model_emitter.dart';
@@ -34,7 +34,7 @@ class EmitterFactory implements emitterTask.EmitterFactory {
}
}
-class Emitter implements emitterTask.Emitter {
+class Emitter extends emitterTask.EmitterBase {
final Compiler _compiler;
final Namer namer;
final ModelEmitter _emitter;
@@ -84,17 +84,12 @@ class Emitter implements emitterTask.Emitter {
return js.js('function() {}');
}
- js.PropertyAccess _globalPropertyAccess(Element element) {
- js.Name name = namer.globalPropertyName(element);
- js.PropertyAccess pa = new js.PropertyAccess(
- new js.VariableUse(namer.globalObjectFor(element)), name);
- return pa;
- }
-
@override
js.Expression isolateLazyInitializerAccess(FieldElement element) {
- return js.js('#.#',
- [namer.globalObjectFor(element), namer.lazyInitializerName(element)]);
+ return js.js('#.#', [
+ namer.globalObjectForMember(element),
+ namer.lazyInitializerName(element)
+ ]);
}
@override
@@ -103,21 +98,6 @@ class Emitter implements emitterTask.Emitter {
}
@override
- js.PropertyAccess staticFieldAccess(FieldElement element) {
- return _globalPropertyAccess(element);
- }
-
- @override
- js.PropertyAccess staticFunctionAccess(MethodElement element) {
- return _globalPropertyAccess(element);
- }
-
- @override
- js.PropertyAccess constructorAccess(ClassElement element) {
- return _globalPropertyAccess(element);
- }
-
- @override
js.PropertyAccess prototypeAccess(
ClassElement element, bool hasBeenInstantiated) {
js.Expression constructor =
@@ -126,17 +106,17 @@ class Emitter implements emitterTask.Emitter {
}
@override
- js.Expression interceptorClassAccess(ClassElement element) {
+ js.Expression interceptorClassAccess(ClassEntity element) {
// Some interceptors are eagerly constructed. However, native interceptors
// aren't.
- return js.js('#.ensureResolved()', _globalPropertyAccess(element));
+ return js.js('#.ensureResolved()', globalPropertyAccessForClass(element));
}
@override
js.Expression typeAccess(Entity element) {
// TODO(floitsch): minify 'ensureResolved'.
// TODO(floitsch): don't emit `ensureResolved` for eager classes.
- return js.js('#.ensureResolved()', _globalPropertyAccess(element));
+ return js.js('#.ensureResolved()', globalPropertyAccessForType(element));
}
@override

Powered by Google App Engine
This is Rietveld 408576698