| Index: sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| ===================================================================
|
| --- sdk/lib/_internal/compiler/implementation/enqueue.dart (revision 23339)
|
| +++ sdk/lib/_internal/compiler/implementation/enqueue.dart (working copy)
|
| @@ -209,20 +209,19 @@
|
| if (member.name == Compiler.NO_SUCH_METHOD) {
|
| enableNoSuchMethod(member);
|
| }
|
| - if (universe.hasInvocation(member, compiler)) {
|
| - return addToWorkList(member);
|
| - }
|
| // If there is a property access with the same name as a method we
|
| // need to emit the method.
|
| if (universe.hasInvokedGetter(member, compiler)) {
|
| - // We will emit a closure, so make sure the closure class is
|
| + // We will emit a closure, so make sure the bound closure class is
|
| // generated.
|
| - compiler.closureClass.ensureResolved(compiler);
|
| - registerInstantiatedClass(compiler.closureClass,
|
| + registerInstantiatedClass(compiler.boundClosureClass,
|
| // Precise dependency is not important here.
|
| compiler.globalDependencies);
|
| return addToWorkList(member);
|
| }
|
| + if (universe.hasInvocation(member, compiler)) {
|
| + return addToWorkList(member);
|
| + }
|
| } else if (member.kind == ElementKind.GETTER) {
|
| if (universe.hasInvokedGetter(member, compiler)) {
|
| return addToWorkList(member);
|
| @@ -420,6 +419,10 @@
|
| } else {
|
| addToWorkList(member);
|
| }
|
| + if (selector.isGetter() && member.isFunction()) {
|
| + registerInstantiatedClass(compiler.boundClosureClass,
|
| + compiler.globalDependencies);
|
| + }
|
| return true;
|
| }
|
| return false;
|
| @@ -439,6 +442,8 @@
|
|
|
| void registerGetOfStaticFunction(FunctionElement element) {
|
| registerStaticUse(element);
|
| + registerInstantiatedClass(compiler.closureClass,
|
| + compiler.globalDependencies);
|
| universe.staticFunctionsNeedingGetter.add(element);
|
| }
|
|
|
|
|