| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library loop_rewriter; | 5 library loop_rewriter; |
| 6 | 6 |
| 7 import 'tree_ir_nodes.dart'; | 7 import '../tree_ir/tree_ir_nodes.dart'; |
| 8 | 8 |
| 9 /// Rewrites [WhileTrue] statements with an [If] body into a [WhileCondition], | 9 /// Rewrites [WhileTrue] statements with an [If] body into a [WhileCondition], |
| 10 /// in situations where only one of the branches contains a [Continue] to the | 10 /// in situations where only one of the branches contains a [Continue] to the |
| 11 /// loop. Schematically: | 11 /// loop. Schematically: |
| 12 /// | 12 /// |
| 13 /// L: | 13 /// L: |
| 14 /// while (true) { | 14 /// while (true) { |
| 15 /// if (E) { | 15 /// if (E) { |
| 16 /// S1 (has references to L) | 16 /// S1 (has references to L) |
| 17 /// } else { | 17 /// } else { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 Statement visitFunctionDeclaration(FunctionDeclaration node) { | 125 Statement visitFunctionDeclaration(FunctionDeclaration node) { |
| 126 new LoopRewriter().rewrite(node.definition); | 126 new LoopRewriter().rewrite(node.definition); |
| 127 node.next = visitStatement(node.next); | 127 node.next = visitStatement(node.next); |
| 128 return node; | 128 return node; |
| 129 } | 129 } |
| 130 | 130 |
| 131 void visitFunctionExpression(FunctionExpression node) { | 131 void visitFunctionExpression(FunctionExpression node) { |
| 132 new LoopRewriter().rewrite(node.definition); | 132 new LoopRewriter().rewrite(node.definition); |
| 133 } | 133 } |
| 134 } | 134 } |
| OLD | NEW |