| Index: sdk/lib/_internal/compiler/implementation/js_emitter/container_builder.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js_emitter/container_builder.dart b/sdk/lib/_internal/compiler/implementation/js_emitter/container_builder.dart
|
| index 291f30e31cf84737a6533e6137301b18ae6b057d..8229874b8005a32b5650a777a1d1744a73498fae 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js_emitter/container_builder.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js_emitter/container_builder.dart
|
| @@ -355,8 +355,9 @@ class ContainerBuilder extends CodeEmitterHelper {
|
| bool needsStubs = !parameters.optionalParameters.isEmpty;
|
| bool canTearOff = false;
|
| bool isClosure = false;
|
| - bool isNotApplyTarget =
|
| - !member.isFunction() || member.isConstructor() || member.isAccessor();
|
| + bool isNotApplyTarget = !member.isFunction() ||
|
| + member.isConstructor() ||
|
| + member.isAccessor();
|
| String tearOffName;
|
| if (isNotApplyTarget) {
|
| canTearOff = false;
|
| @@ -375,9 +376,9 @@ class ContainerBuilder extends CodeEmitterHelper {
|
| compiler.codegenWorld.staticFunctionsNeedingGetter.contains(member);
|
| tearOffName = namer.getStaticClosureName(member);
|
| }
|
| - final bool canBeApplied = !isNotApplyTarget &&
|
| - compiler.enabledFunctionApply &&
|
| - (canTearOff || member.name == 'call' || !member.isInstanceMember());
|
| + final bool canBeApplied = compiler.enabledFunctionApply &&
|
| + compiler.world.getMightBePassedToApply(member);
|
| +
|
| final bool canBeReflected = backend.isAccessibleByReflection(member);
|
| final bool needStructuredInfo =
|
| canTearOff || canBeReflected || canBeApplied;
|
|
|