Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
| =================================================================== |
| --- sdk/lib/_internal/compiler/implementation/ssa/builder.dart (revision 21192) |
| +++ sdk/lib/_internal/compiler/implementation/ssa/builder.dart (working copy) |
| @@ -3899,10 +3899,12 @@ |
| compiler.internalError( |
| 'rethrowableException should not be null', node: node); |
| } |
| - close(new HThrow(exception, isRethrow: true)); |
| + handleInTryStatement(); |
| + close(new HThrow(exception, isRethrow: true)).addSuccessor(graph.exit); |
|
kasperl
2013/04/11 12:28:53
I'd prefer a new version of close that adds the ex
ngeoffray
2013/04/11 12:52:28
Done.
|
| } else { |
| visit(node.expression); |
| - close(new HThrow(pop())); |
| + handleInTryStatement(); |
| + close(new HThrow(pop())).addSuccessor(graph.exit); |
| } |
| } |
| @@ -4314,7 +4316,7 @@ |
| if (!isAborted() && caseIterator.hasNext) { |
| pushInvokeHelper0(getFallThroughErrorElement, HType.UNKNOWN); |
| HInstruction error = pop(); |
| - close(new HThrow(error)); |
| + close(new HThrow(error)).addSuccessor(graph.exit); |
| } |
| statements.add( |
| new HSubGraphBlockInformation(new SubGraph(block, lastOpenedBlock))); |
| @@ -4431,7 +4433,7 @@ |
| compiler.findHelper(const SourceString("getFallThroughError")); |
| pushInvokeHelper0(element, HType.UNKNOWN); |
| HInstruction error = pop(); |
| - close(new HThrow(error)); |
| + close(new HThrow(error)).addSuccessor(graph.exit); |
| } |
| } |
| @@ -4647,7 +4649,8 @@ |
| void visitElse() { |
| if (link.isEmpty) { |
| - close(new HThrow(exception, isRethrow: true)); |
| + HBasicBlock block = close(new HThrow(exception, isRethrow: true)); |
| + block.addSuccessor(graph.exit); |
| } else { |
| CatchBlock newBlock = link.head; |
| handleIf(node, |
| @@ -4689,9 +4692,6 @@ |
| var last = block.last; |
| if (last is HExitTry) { |
| block.addSuccessor(successor); |
| - } else if (last is HTry) { |
| - // Skip all blocks inside this nested try/catch. |
| - i = last.joinBlock.id; |
| } |
| } |
| } |