| Index: pkg/compiler/lib/src/js_backend/js_interop_analysis.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/js_interop_analysis.dart b/pkg/compiler/lib/src/js_backend/js_interop_analysis.dart
|
| index 6e40c7d4be72c4345674e21493677edeb5fd9622..1b4aeb9cef0a6f68fb1d90e16f83fae0d022559e 100644
|
| --- a/pkg/compiler/lib/src/js_backend/js_interop_analysis.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/js_interop_analysis.dart
|
| @@ -19,6 +19,7 @@ import '../elements/elements.dart'
|
| FunctionElement,
|
| LibraryElement,
|
| ParameterElement,
|
| + MethodElement,
|
| MetadataAnnotation;
|
| import '../js/js.dart' as jsAst;
|
| import '../js/js.dart' show js;
|
| @@ -68,11 +69,11 @@ class JsInteropAnalysis {
|
| ConstantValue value = constructedConstant.fields[nameField];
|
| if (value.isString) {
|
| StringConstantValue stringValue = value;
|
| - backend.nativeClassDataBuilder
|
| + backend.nativeDataBuilder
|
| .setJsInteropName(e, stringValue.primitiveValue.slowToString());
|
| } else {
|
| // TODO(jacobr): report a warning if the value is not a String.
|
| - backend.nativeClassDataBuilder.setJsInteropName(e, '');
|
| + backend.nativeDataBuilder.setJsInteropName(e, '');
|
| }
|
| enabledJsInterop = true;
|
| return;
|
| @@ -107,14 +108,15 @@ class JsInteropAnalysis {
|
| processJsInteropAnnotation(library);
|
| library.implementation.forEachLocalMember((Element element) {
|
| processJsInteropAnnotation(element);
|
| - if (!backend.nativeData.isJsInterop(element)) return;
|
| - if (element is FunctionElement) {
|
| + if (element is MethodElement) {
|
| + if (!backend.nativeData.isJsInteropMember(element)) return;
|
| _checkFunctionParameters(element);
|
| }
|
|
|
| if (!element.isClass) return;
|
|
|
| ClassElement classElement = element;
|
| + if (!backend.nativeData.isJsInteropClass(classElement)) return;
|
|
|
| // Skip classes that are completely unreachable. This should only happen
|
| // when all of jsinterop types are unreachable from main.
|
| @@ -135,7 +137,7 @@ class JsInteropAnalysis {
|
| processJsInteropAnnotation(member);
|
|
|
| if (!member.isSynthesized &&
|
| - backend.nativeData.isJsInterop(classElement) &&
|
| + backend.nativeData.isJsInteropClass(classElement) &&
|
| member is FunctionElement) {
|
| FunctionElement fn = member;
|
| if (!fn.isExternal &&
|
|
|