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 |
deleted file mode 100644 |
index b5482ce8f005103df3fa437f79ba5d47594fd8fb..0000000000000000000000000000000000000000 |
--- a/pkg/compiler/lib/src/js_backend/codegen/js_tree_builder.dart |
+++ /dev/null |
@@ -1,101 +0,0 @@ |
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library js_tree_ir_builder; |
- |
-import '../../tree_ir/tree_ir_builder.dart' show Builder; |
-import 'glue.dart' show Glue; |
-import '../../dart2jslib.dart' show Selector, InternalErrorFunction; |
-import '../../elements/elements.dart'; |
-import '../../cps_ir/cps_ir_nodes.dart' as cps_ir; |
-import '../../tree_ir/tree_ir_nodes.dart'; |
- |
-/// Subclass of [Builder] that can translate nodes which are specific to the |
-/// JavaScript backend. |
-class JsTreeBuilder extends Builder { |
- final Glue _glue; |
- final Element identicalFunction; |
- |
- JsTreeBuilder( |
- InternalErrorFunction internalError, |
- this.identicalFunction, |
- this._glue, |
- [Builder parent]) |
- : super(internalError, parent); |
- |
- JsTreeBuilder createInnerBuilder() { |
- return new JsTreeBuilder(internalError, identicalFunction, _glue, this); |
- } |
- |
- Selector get identicalSelector { |
- return new Selector.call('identical', null, 2); |
- } |
- |
- Expression visitIdentical(cps_ir.Identical node) { |
- return new InvokeStatic( |
- identicalFunction, |
- identicalSelector, |
- <Expression>[getVariableUse(node.left), |
- getVariableUse(node.right)])..isEffectivelyConstant = true; |
- } |
- |
- Expression visitInterceptor(cps_ir.Interceptor node) { |
- Element getInterceptor = _glue.getInterceptorMethod; |
- String name = _glue.getInterceptorName(node.interceptedClasses); |
- Selector selector = new Selector.call(name, null, 1); |
- _glue.registerUseInterceptorInCodegen(); |
- return new InvokeStatic( |
- getInterceptor, |
- selector, |
- <Expression>[getVariableUse(node.input)])..isEffectivelyConstant = true; |
- } |
- |
- Expression visitGetField(cps_ir.GetField node) { |
- return new GetField(getVariableUse(node.object), node.field); |
- } |
- |
- Statement visitSetField(cps_ir.SetField node) { |
- SetField setField = |
- new SetField(getVariableUse(node.object), |
- node.field, |
- getVariableUse(node.value)); |
- return new ExpressionStatement(setField, visit(node.body)); |
- } |
- |
- Expression visitCreateBox(cps_ir.CreateBox node) { |
- return new CreateBox(); |
- } |
- |
- Expression visitCreateInstance(cps_ir.CreateInstance node) { |
- return new CreateInstance( |
- node.classElement, |
- node.arguments.map(getVariableUse).toList(growable: false), |
- node.typeInformation.map(getVariableUse).toList(growable: false)); |
- } |
- |
- Expression visitCreateInvocationMirror(cps_ir.CreateInvocationMirror node) { |
- 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); |
- } |
- } |
-} |