Index: frog/leg/ssa/tracer.dart |
=================================================================== |
--- frog/leg/ssa/tracer.dart (revision 4024) |
+++ frog/leg/ssa/tracer.dart (working copy) |
@@ -382,6 +382,24 @@ |
return visitInvokeStatic(node); |
} |
+ String visitTry(HTry node) { |
+ List<HBasicBlock> successors = currentBlock.successors; |
+ String tryBlock = 'B${successors[0].id}'; |
+ StringBuffer catchBlocks = new StringBuffer(); |
+ for (int i = 1; i < successors.length - 1; i++) { |
+ catchBlocks.add('B${successors[i].id}, '); |
+ } |
+ |
+ String finallyBlock; |
+ if (node.finallyBlock != null) { |
+ finallyBlock = 'B${node.finallyBlock.id}'; |
+ } else { |
+ catchBlocks.add('B${successors[successors.length - 1].id}'); |
+ finallyBlock = 'none'; |
+ } |
+ return "Try: $tryBlock, Catch: $catchBlocks, Finally: $finallyBlock"; |
+ } |
+ |
String visitTypeGuard(HTypeGuard node) { |
String type; |
switch (node.type) { |