Index: lib/runtime/dart_runtime.js |
diff --git a/lib/runtime/dart_runtime.js b/lib/runtime/dart_runtime.js |
index c9c21ea81135409a3a068380013d6b5474ec4d79..9dcae087dffbccf780269a907f3ec0af6796e51c 100644 |
--- a/lib/runtime/dart_runtime.js |
+++ b/lib/runtime/dart_runtime.js |
@@ -61,7 +61,7 @@ var dart, _js_helper, _js_primitives; |
// Grab the `call` method if it's not a function. |
if (f !== null) f = f.call; |
if (!(f instanceof Function)) { |
- throwNoSuchMethod(obj, method, args); |
+ throwNoSuchMethod(obj, name, args); |
} |
} |
// TODO(jmesserly): enable this when we can fix => and methods. |
@@ -207,7 +207,15 @@ var dart, _js_helper, _js_primitives; |
} else { |
subtypeMap.set(t1, map = new Map()); |
} |
- map.set(t2, result = isSubtype_(t1, t2)); |
+ if (t2 == core.Type) { |
+ // Special case Types. |
+ result = t1.prototype instanceof core.Type || |
+ t1 instanceof AbstractFunctionType || |
+ isSubtype_(t1, t2); |
+ } else { |
+ result = isSubtype_(t1, t2) |
+ } |
+ map.set(t2, result); |
return result; |
} |
dart.isSubtype = isSubtype; |