| Index: pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| index 417f83a4423689219b92ffdeccae55d20341b4ef..bcf09683b88188eb9cd796c250bc132d3264e51d 100644
|
| --- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart
|
| @@ -307,6 +307,15 @@ class CodeGenerator extends tree_ir.StatementVisitor
|
|
|
| @override
|
| js.Expression visitInvokeMethodDirectly(tree_ir.InvokeMethodDirectly node) {
|
| + if (node.isTearOff) {
|
| + // If this is a tear-off, register the fact that a tear-off closure
|
| + // will be created, and that this tear-off must bypass ordinary
|
| + // dispatch to ensure the super method is invoked.
|
| + registry.registerStaticUse(new StaticUse.staticInvoke(
|
| + glue.closureFromTearOff, new CallStructure.unnamed(
|
| + glue.closureFromTearOff.parameters.length)));
|
| + registry.registerStaticUse(new StaticUse.superTearOff(node.target));
|
| + }
|
| if (node.target is ConstructorBodyElement) {
|
| registry.registerStaticUse(
|
| new StaticUse.constructorBodyInvoke(
|
|
|