| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library dart2js.ir_nodes; | 4 library dart2js.ir_nodes; |
| 5 | 5 |
| 6 import 'dart:collection'; | 6 import 'dart:collection'; |
| 7 import 'cps_fragment.dart' show CpsFragment; | 7 import 'cps_fragment.dart' show CpsFragment; |
| 8 import 'cps_ir_nodes_sexpr.dart'; | 8 import 'cps_ir_nodes_sexpr.dart'; |
| 9 import '../constants/values.dart' as values; | 9 import '../constants/values.dart' as values; |
| 10 import '../dart_types.dart' show DartType, InterfaceType, TypeVariableType; | 10 import '../dart_types.dart' show DartType, InterfaceType, TypeVariableType; |
| (...skipping 2164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2175 while (node.next != null) { | 2175 while (node.next != null) { |
| 2176 if (node is LetCont) { | 2176 if (node is LetCont) { |
| 2177 stack.addAll(node.continuations); | 2177 stack.addAll(node.continuations); |
| 2178 } else if (node is LetHandler) { | 2178 } else if (node is LetHandler) { |
| 2179 stack.add(node.handler); | 2179 stack.add(node.handler); |
| 2180 } | 2180 } |
| 2181 node = node.next; | 2181 node = node.next; |
| 2182 nodes.add(node); | 2182 nodes.add(node); |
| 2183 } | 2183 } |
| 2184 } | 2184 } |
| 2185 |
| 2185 walkBlock(root); | 2186 walkBlock(root); |
| 2186 while (stack.isNotEmpty) { | 2187 while (stack.isNotEmpty) { |
| 2187 walkBlock(stack.removeLast()); | 2188 walkBlock(stack.removeLast()); |
| 2188 } | 2189 } |
| 2189 nodes.reversed.forEach(v.visit); | 2190 nodes.reversed.forEach(v.visit); |
| 2190 } | 2191 } |
| 2191 | 2192 |
| 2192 /// Visits block-level nodes in lexical pre-order. | 2193 /// Visits block-level nodes in lexical pre-order. |
| 2193 /// | 2194 /// |
| 2194 /// Traversal continues at the original success for the current node, so: | 2195 /// Traversal continues at the original success for the current node, so: |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2205 if (node is LetCont) { | 2206 if (node is LetCont) { |
| 2206 stack.addAll(node.continuations); | 2207 stack.addAll(node.continuations); |
| 2207 } else if (node is LetHandler) { | 2208 } else if (node is LetHandler) { |
| 2208 stack.add(node.handler); | 2209 stack.add(node.handler); |
| 2209 } | 2210 } |
| 2210 Expression next = node.next; | 2211 Expression next = node.next; |
| 2211 v.visit(node); | 2212 v.visit(node); |
| 2212 node = next; | 2213 node = next; |
| 2213 } | 2214 } |
| 2214 } | 2215 } |
| 2216 |
| 2215 walkBlock(root); | 2217 walkBlock(root); |
| 2216 while (stack.isNotEmpty) { | 2218 while (stack.isNotEmpty) { |
| 2217 walkBlock(stack.removeLast()); | 2219 walkBlock(stack.removeLast()); |
| 2218 } | 2220 } |
| 2219 } | 2221 } |
| 2220 } | 2222 } |
| 2221 | 2223 |
| 2222 abstract class Visitor<T> implements BlockVisitor<T> { | 2224 abstract class Visitor<T> implements BlockVisitor<T> { |
| 2223 const Visitor(); | 2225 const Visitor(); |
| 2224 | 2226 |
| (...skipping 889 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3114 _definitions.getCopy(node.conditionRef), | 3116 _definitions.getCopy(node.conditionRef), |
| 3115 _copies[node.trueContinuation], | 3117 _copies[node.trueContinuation], |
| 3116 _copies[node.falseContinuation], | 3118 _copies[node.falseContinuation], |
| 3117 node.sourceInformation)..isStrictCheck = node.isStrictCheck); | 3119 node.sourceInformation)..isStrictCheck = node.isStrictCheck); |
| 3118 } | 3120 } |
| 3119 | 3121 |
| 3120 visitUnreachable(Unreachable node) { | 3122 visitUnreachable(Unreachable node) { |
| 3121 plug(new Unreachable()); | 3123 plug(new Unreachable()); |
| 3122 } | 3124 } |
| 3123 } | 3125 } |
| OLD | NEW |