Index: pkg/compiler/lib/src/native/behavior.dart |
diff --git a/pkg/compiler/lib/src/native/behavior.dart b/pkg/compiler/lib/src/native/behavior.dart |
index 936c8c7dd10f6d7f5b0a9f22b0fbd858682a89d4..e58b277e6208a06481cebf8588873d4ef9beed5e 100644 |
--- a/pkg/compiler/lib/src/native/behavior.dart |
+++ b/pkg/compiler/lib/src/native/behavior.dart |
@@ -3,7 +3,7 @@ |
// BSD-style license that can be found in the LICENSE file. |
import '../common.dart'; |
-import '../common/backend_api.dart' show BackendClasses, ForeignResolver; |
+import '../common/backend_api.dart' show ForeignResolver; |
import '../common/resolution.dart' show ParsingContext, Resolution; |
import '../compiler.dart' show Compiler; |
import '../compile_time_constants.dart' show ConstantEnvironment; |
@@ -15,6 +15,7 @@ import '../elements/entities.dart'; |
import '../elements/resolution_types.dart'; |
import '../elements/types.dart'; |
import '../js/js.dart' as js; |
+import '../js_backend/native_data.dart' show NativeData; |
import '../tree/tree.dart'; |
import '../universe/side_effects.dart' show SideEffects; |
import '../util/util.dart'; |
@@ -775,7 +776,8 @@ class NativeBehavior { |
metadata.add(annotation.constant); |
} |
- BehaviorBuilder builder = new ResolverBehaviorBuilder(compiler); |
+ BehaviorBuilder builder = |
+ new ResolverBehaviorBuilder(compiler, compiler.backend.nativeData); |
return builder.buildMethodBehavior( |
type, metadata, lookupFromElement(compiler.resolution, element), |
isJsInterop: isJsInterop); |
@@ -792,7 +794,8 @@ class NativeBehavior { |
metadata.add(annotation.constant); |
} |
- BehaviorBuilder builder = new ResolverBehaviorBuilder(compiler); |
+ BehaviorBuilder builder = |
+ new ResolverBehaviorBuilder(compiler, compiler.backend.nativeData); |
return builder.buildFieldLoadBehavior( |
type, metadata, lookupFromElement(resolution, element), |
isJsInterop: isJsInterop); |
@@ -800,7 +803,8 @@ class NativeBehavior { |
static NativeBehavior ofFieldElementStore( |
MemberElement field, Compiler compiler) { |
- BehaviorBuilder builder = new ResolverBehaviorBuilder(compiler); |
+ BehaviorBuilder builder = |
+ new ResolverBehaviorBuilder(compiler, compiler.backend.nativeData); |
ResolutionDartType type = field.computeType(compiler.resolution); |
return builder.buildFieldStoreBehavior(type); |
} |
@@ -846,9 +850,9 @@ class NativeBehavior { |
abstract class BehaviorBuilder { |
CommonElements get commonElements; |
- BackendClasses get backendClasses; |
DiagnosticReporter get reporter; |
ConstantEnvironment get constants; |
+ NativeData get nativeData; |
bool get trustJSInteropTypeAnnotations; |
Resolution get resolution => null; |
@@ -946,8 +950,7 @@ abstract class BehaviorBuilder { |
if (!isInterop) { |
_behavior.typesInstantiated.add(type); |
} else { |
- if (type is InterfaceType && |
- backendClasses.isNativeClass(type.element)) { |
+ if (type is InterfaceType && nativeData.isNativeClass(type.element)) { |
// Any declared native or interop type (isNative implies isJsInterop) |
// is assumed to be allocated. |
_behavior.typesInstantiated.add(type); |
@@ -1035,8 +1038,9 @@ abstract class BehaviorBuilder { |
class ResolverBehaviorBuilder extends BehaviorBuilder { |
final Compiler compiler; |
+ final NativeData nativeData; |
- ResolverBehaviorBuilder(this.compiler); |
+ ResolverBehaviorBuilder(this.compiler, this.nativeData); |
@override |
CommonElements get commonElements => compiler.commonElements; |
@@ -1052,8 +1056,5 @@ class ResolverBehaviorBuilder extends BehaviorBuilder { |
DiagnosticReporter get reporter => compiler.reporter; |
@override |
- BackendClasses get backendClasses => compiler.backend.backendClasses; |
- |
- @override |
Resolution get resolution => compiler.resolution; |
} |