Index: pkg/compiler/lib/src/js_emitter/program_builder/field_visitor.dart |
diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/field_visitor.dart b/pkg/compiler/lib/src/js_emitter/program_builder/field_visitor.dart |
index 89a60a213d06769f054c058ea9583d507b7d1ab5..1e61b8a21c64473f804b085de2dc8bde3c072c46 100644 |
--- a/pkg/compiler/lib/src/js_emitter/program_builder/field_visitor.dart |
+++ b/pkg/compiler/lib/src/js_emitter/program_builder/field_visitor.dart |
@@ -26,13 +26,15 @@ typedef void AcceptField(FieldEntity member, js.Name name, js.Name accessorName, |
bool needsGetter, bool needsSetter, bool needsCheckedSetter); |
class FieldVisitor { |
- final Compiler compiler; |
- final Namer namer; |
- final ClosedWorld closedWorld; |
+ final CompilerOptions _options; |
+ final CodegenWorldBuilder _codegenWorldBuilder; |
+ final NativeData _nativeData; |
+ final MirrorsData _mirrorsData; |
+ final Namer _namer; |
+ final ClosedWorld _closedWorld; |
- JavaScriptBackend get backend => compiler.backend; |
- |
- FieldVisitor(this.compiler, this.namer, this.closedWorld); |
+ FieldVisitor(this._options, this._codegenWorldBuilder, this._nativeData, |
+ this._mirrorsData, this._namer, this._closedWorld); |
/** |
* Invokes [f] for each of the fields of [element]. |
@@ -59,12 +61,12 @@ class FieldVisitor { |
bool isInstantiated = false; |
if (element.isClass) { |
cls = element; |
- isNativeClass = backend.nativeData.isNativeClass(cls); |
+ isNativeClass = _nativeData.isNativeClass(cls); |
// If the class is never instantiated we still need to set it up for |
// inheritance purposes, but we can simplify its JavaScript constructor. |
- isInstantiated = compiler.codegenWorldBuilder.directlyInstantiatedClasses |
- .contains(cls); |
+ isInstantiated = |
+ _codegenWorldBuilder.directlyInstantiatedClasses.contains(cls); |
} else if (element.isLibrary) { |
isLibrary = true; |
assert(invariant(element, visitStatics)); |
@@ -89,13 +91,13 @@ class FieldVisitor { |
needsSetter = fieldNeedsSetter(field); |
} |
- if ((isInstantiated && !backend.nativeData.isNativeClass(cls)) || |
+ if ((isInstantiated && !_nativeData.isNativeClass(cls)) || |
needsGetter || |
needsSetter) { |
- js.Name accessorName = namer.fieldAccessorName(field); |
- js.Name fieldName = namer.fieldPropertyName(field); |
+ js.Name accessorName = _namer.fieldAccessorName(field); |
+ js.Name fieldName = _namer.fieldPropertyName(field); |
bool needsCheckedSetter = false; |
- if (compiler.options.enableTypeAssertions && |
+ if (_options.enableTypeAssertions && |
needsSetter && |
!canAvoidGeneratedCheckedSetter(field)) { |
needsCheckedSetter = true; |
@@ -132,18 +134,18 @@ class FieldVisitor { |
bool fieldNeedsGetter(FieldElement field) { |
assert(field.isField); |
if (fieldAccessNeverThrows(field)) return false; |
- if (backend.mirrorsData.shouldRetainGetter(field)) return true; |
+ if (_mirrorsData.shouldRetainGetter(field)) return true; |
return field.isClassMember && |
- compiler.codegenWorldBuilder.hasInvokedGetter(field, closedWorld); |
+ _codegenWorldBuilder.hasInvokedGetter(field, _closedWorld); |
} |
bool fieldNeedsSetter(FieldElement field) { |
assert(field.isField); |
if (fieldAccessNeverThrows(field)) return false; |
if (field.isFinal || field.isConst) return false; |
- if (backend.mirrorsData.shouldRetainSetter(field)) return true; |
+ if (_mirrorsData.shouldRetainSetter(field)) return true; |
return field.isClassMember && |
- compiler.codegenWorldBuilder.hasInvokedSetter(field, closedWorld); |
+ _codegenWorldBuilder.hasInvokedSetter(field, _closedWorld); |
} |
static bool fieldAccessNeverThrows(VariableElement field) { |