| Index: dart/sdk/lib/_internal/lib/js_mirrors.dart
|
| diff --git a/dart/sdk/lib/_internal/lib/js_mirrors.dart b/dart/sdk/lib/_internal/lib/js_mirrors.dart
|
| index ba809de98874a716724c141d3153732464e8504d..cb4897515bf99a2eaedaacf7ac7245b686bb4ace 100644
|
| --- a/dart/sdk/lib/_internal/lib/js_mirrors.dart
|
| +++ b/dart/sdk/lib/_internal/lib/js_mirrors.dart
|
| @@ -1631,7 +1631,10 @@ class JsClosureMirror extends JsInstanceMirror implements ClosureMirror {
|
| MethodMirror get function {
|
| String cacheName = Primitives.mirrorFunctionCacheName;
|
| JsMethodMirror cachedFunction;
|
| - // TODO(ahe): Restore caching.
|
| + // TODO(ahe): Restore caching. We used to have a one-to-one correspondence
|
| + // between a method that could be torn off and a constructor (the bound
|
| + // closure classes). But now all tear-offs share the same constructor (a
|
| + // class called BoundClosure in js_helper.dart).
|
| //= JS('JsMethodMirror|Null', r'#.constructor[#]', reflectee, cacheName);
|
| if (cachedFunction != null) return cachedFunction;
|
| disableTreeShaking();
|
| @@ -1769,6 +1772,7 @@ class JsMethodMirror extends JsDeclarationMirror implements MethodMirror {
|
| var functionType = info.functionType;
|
| var type;
|
| if (functionType is int) {
|
| + // A reference to a type variable in init.metadata.
|
| type = new JsFunctionTypeMirror(info.computeFunctionRti(null), this);
|
| assert(_parameterCount == type.parameters.length);
|
| } else if (isTopLevel) {
|
|
|