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 65a49c860c848a5b5a6176a510fee0ef5095984a..84d66e8829b91d7826816c7bba57ff77a42d520d 100644 |
--- a/pkg/compiler/lib/src/js_backend/js_interop_analysis.dart |
+++ b/pkg/compiler/lib/src/js_backend/js_interop_analysis.dart |
@@ -120,6 +120,12 @@ class JsInteropAnalysis { |
ClassElement classElement = element; |
+ // If we have no indication that the type was instantiated, we don't need |
+ // to generate code for it. Note that anonymous types are abstract and |
+ // contain only a factory constructor, so they are marked in the world |
+ // as being implemented rather than being instantiated. |
+ if (!backend.compiler.world.isImplemented(classElement)) return; |
+ |
if (!classElement |
.implementsInterface(helpers.jsJavaScriptObjectClass)) { |
backend.reporter.reportErrorMessage(classElement, |