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 9dbaad40aa98b688eb834730d87bc21b3207a19c..879848ebd241e1639a5bb0289babd2ace68f6955 100644 |
| --- a/pkg/compiler/lib/src/js_backend/codegen/codegen.dart |
| +++ b/pkg/compiler/lib/src/js_backend/codegen/codegen.dart |
| @@ -132,14 +132,17 @@ class CodeGenerator extends tree_ir.Visitor<dynamic, js.Expression> { |
| // TODO: implement visitConditional |
| } |
| - @override |
| - js.Expression visitConstant(tree_ir.Constant node) { |
| - ConstantValue constant = node.expression.value; |
| + js.Expression buildConstant(ConstantValue constant) { |
| registry.registerCompileTimeConstant(constant); |
| return glue.constantReference(constant); |
| } |
| @override |
| + js.Expression visitConstant(tree_ir.Constant node) { |
| + return buildConstant(node.expression.value); |
| + } |
| + |
| + @override |
| js.Expression visitFunctionExpression(tree_ir.FunctionExpression node) { |
| return giveup(node); |
| // TODO: implement visitFunctionExpression |
| @@ -163,8 +166,16 @@ class CodeGenerator extends tree_ir.Visitor<dynamic, js.Expression> { |
| registry.registerStaticInvocation(element); |
| + compileConstant(ParameterElement parameter) { |
|
floitsch
2014/11/20 13:14:43
Add return type.
sigurdm
2014/11/21 09:52:53
Done.
|
| + return buildConstant(glue.getConstantForVariable(parameter).value); |
| + } |
| + |
| js.Expression elementAccess = glue.elementAccess(node.target); |
| - return new js.Call(elementAccess, visitArguments(node.arguments)); |
| + List<js.Expression> arguments = |
| + node.selector.makeArgumentsList2(node.arguments, element, |
| + visitExpression, |
| + compileConstant); |
| + return new js.Call(elementAccess, arguments); |
| } |
| @override |