Index: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart |
index 77738817c2a7d27fd5808bd06158f47586f5032b..2668a8fb122a8818d7fef38273e4be079f8197fc 100644 |
--- a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart |
+++ b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart |
@@ -990,11 +990,12 @@ class JavaScriptBackend extends Backend { |
} |
void registerIsCheck(DartType type, Enqueuer world) { |
- if (!type.isRaw) { |
+ if (!type.isRaw || type is TypeVariableType) { |
enqueueInResolution(getSetRuntimeTypeInfo()); |
enqueueInResolution(getGetRuntimeTypeInfo()); |
enqueueInResolution(getGetRuntimeTypeArgument()); |
enqueueInResolution(getCheckArguments()); |
+ enqueueInResolution(getGetObjectIsSubtype()); |
} |
// [registerIsCheck] is also called for checked mode checks, so we |
// need to register checked mode helpers. |
@@ -1427,6 +1428,10 @@ class JavaScriptBackend extends Backend { |
return compiler.findHelper(const SourceString('checkArguments')); |
} |
+ Element getGetObjectIsSubtype() { |
+ return compiler.findHelper(const SourceString('objectIsSubtype')); |
+ } |
+ |
Element getThrowNoSuchMethod() { |
return compiler.findHelper(const SourceString('throwNoSuchMethod')); |
} |