| Index: pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
|
| diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
|
| index fee1dd7adcb33d52b63659533e63a44f2bcabc96..90c0b69577ac486b89976498474657cb73a978eb 100644
|
| --- a/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
|
| +++ b/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
|
| @@ -172,6 +172,10 @@ class BlockCollector extends StatementVisitor {
|
| _addStatement(node);
|
| visitStatement(node.next);
|
| }
|
| +
|
| + visitForeignStatement(ForeignStatement node) {
|
| + _addStatement(node);
|
| + }
|
| }
|
|
|
| class TreeTracer extends TracerUtil with StatementVisitor {
|
| @@ -321,6 +325,11 @@ class TreeTracer extends TracerUtil with StatementVisitor {
|
| String expr(Expression e) {
|
| return e.accept(new SubexpressionVisitor(names));
|
| }
|
| +
|
| + @override
|
| + visitForeignStatement(ForeignStatement node) {
|
| + printStatement(null, 'foreign');
|
| + }
|
| }
|
|
|
| class SubexpressionVisitor extends ExpressionVisitor<String> {
|
| @@ -511,6 +520,12 @@ class SubexpressionVisitor extends ExpressionVisitor<String> {
|
| }
|
|
|
| @override
|
| + String visitForeignExpression(ForeignExpression node) {
|
| + String arguments = node.arguments.map(visitExpression).join(', ');
|
| + return 'Foreign "${node.codeTemplate}"($arguments)';
|
| + }
|
| +
|
| + @override
|
| String visitApplyBuiltinOperator(ApplyBuiltinOperator node) {
|
| String args = node.arguments.map(visitExpression).join(', ');
|
| return 'ApplyBuiltinOperator ${node.operator} ($args)';
|
|
|