| 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
|
|
|