Index: pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart |
diff --git a/pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart b/pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart |
index 98893f8630bc428eeee63f59cefd720693a1d612..b5482ce8f005103df3fa437f79ba5d47594fd8fb 100644 |
--- a/pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart |
+++ b/pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart |
@@ -78,4 +78,24 @@ class JsTreeBuilder extends Builder { |
return new CreateInvocationMirror(node.selector, |
node.arguments.map(getVariableUse).toList(growable: false)); |
} |
+ |
+ Statement visitForeignCode(cps_ir.ForeignCode node) { |
+ if (node.codeTemplate.isExpression) { |
+ Expression foreignCode = new ForeignExpression( |
+ node.codeTemplate, |
+ node.type, |
+ node.arguments.map(getVariableUse).toList(growable: false), |
+ node.nativeBehavior, |
+ node.dependency); |
+ return continueWithExpression(node.continuation, foreignCode); |
+ } else { |
+ assert(node.continuation == null); |
+ return new ForeignStatement( |
+ node.codeTemplate, |
+ node.type, |
+ node.arguments.map(getVariableUse).toList(growable: false), |
+ node.nativeBehavior, |
+ node.dependency); |
+ } |
+ } |
} |