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