Chromium Code Reviews| 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 cf32d70856c138f45ef28b62ea2febc98da253af..35962b202e569dc4caaf6c9961fa8924ab863f32 100644 |
| --- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart |
| +++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart |
| @@ -169,7 +169,7 @@ class CodeGenerator extends tree_ir.Visitor<dynamic, js.Expression> { |
| js.Expression buildStaticInvoke(Selector selector, |
| Element target, |
| List<js.Expression> arguments) { |
| - registry.registerStaticInvocation(target.declaration); |
| + registry.registerStaticInvocation(target); |
|
sigurdm
2015/01/20 10:54:25
This should still be declaration.
asgerf
2015/01/20 13:07:50
Done.
|
| js.Expression elementAccess = glue.staticFunctionAccess(target); |
| List<js.Expression> compiledArguments = |
| selector.makeArgumentsList(target.implementation, |
| @@ -181,6 +181,7 @@ class CodeGenerator extends tree_ir.Visitor<dynamic, js.Expression> { |
| @override |
| js.Expression visitInvokeConstructor(tree_ir.InvokeConstructor node) { |
| if (node.constant != null) return giveup(node); |
| + registry.registerInstantiatedClass(node.target.enclosingClass); |
| return buildStaticInvoke(node.selector, |
| node.target, |
| visitArguments(node.arguments)); |
| @@ -213,9 +214,13 @@ class CodeGenerator extends tree_ir.Visitor<dynamic, js.Expression> { |
| } |
| @override |
| - js.Expression visitInvokeSuperMethod(tree_ir.InvokeSuperMethod node) { |
| - return giveup(node); |
| - // TODO: implement visitInvokeSuperMethod |
| + js.Expression visitInvokeMethodDirectly(tree_ir.InvokeMethodDirectly node) { |
| + registry.registerDirectInvocation(node.target); |
|
sigurdm
2015/01/20 10:54:25
Register the declaration
asgerf
2015/01/20 13:07:50
Done.
|
| + return js.js('#.#.call(#, #)', |
| + [glue.prototypeAccess(node.target.enclosingClass), |
| + glue.invocationName(node.selector), |
| + visitExpression(node.receiver), |
| + visitArguments(node.arguments)]); |
| } |
| @override |