Index: pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart |
diff --git a/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart b/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart |
index a13db64f16ffeb8002c0c9af344c535d073f94c4..70d1a6712913297594ae78fb805f6f359c5423ef 100644 |
--- a/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart |
+++ b/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart |
@@ -71,6 +71,7 @@ class CustomElementsAnalysis { |
if (!Elements.isNativeOrExtendsNative(classElement)) return; |
if (classElement.isMixinApplication) return; |
if (classElement.isAbstract) return; |
+ if (classElement.isJsInterop) return; |
joinFor(enqueuer).instantiatedClasses.add(classElement); |
} |
@@ -151,6 +152,9 @@ class CustomElementsAnalysisJoin { |
var newActiveClasses = new Set<ClassElement>(); |
for (ClassElement classElement in instantiatedClasses) { |
bool isNative = classElement.isNative; |
+ // JsInterop classes are opaque interfaces without a concrete |
+ // implementation. |
+ if (classElement.isJsInterop) continue; |
bool isExtension = |
!isNative && Elements.isNativeOrExtendsNative(classElement); |
// Generate table entries for native classes that are explicitly named and |