Index: tool/input_sdk/private/ddc_runtime/classes.dart |
diff --git a/tool/input_sdk/private/ddc_runtime/classes.dart b/tool/input_sdk/private/ddc_runtime/classes.dart |
index 4b27c394c23e3b3edc70caaf9a2b59c2f1120433..fa284f6a19c28221750d215ad05cc7397d849528 100644 |
--- a/tool/input_sdk/private/ddc_runtime/classes.dart |
+++ b/tool/input_sdk/private/ddc_runtime/classes.dart |
@@ -122,11 +122,16 @@ final _constructorSig = JS('', 'Symbol("sigCtor")'); |
final _methodSig = JS('', 'Symbol("sig")'); |
final _staticSig = JS('', 'Symbol("sigStatic")'); |
-/// Get the type of a method using the stored signature |
+/// Get the type of a method from an object using the stored signature |
getMethodType(obj, name) => JS('', '''(() => { |
if ($obj === void 0) return void 0; |
if ($obj == null) return void 0; |
- let sigObj = $obj.__proto__.constructor[$_methodSig]; |
+ return $getMethodTypeFromType($obj.__proto__.constructor, $name); |
+})()'''); |
+ |
+/// Get the type of a method from a type using the stored signature |
+getMethodTypeFromType(type, name) => JS('', '''(() => { |
+ let sigObj = $type[$_methodSig]; |
if (sigObj === void 0) return void 0; |
let parts = sigObj[$name]; |
if (parts === void 0) return void 0; |