do not reset current flow after processing finally block if it was unreachable (#11310)

* do not reset current flow after processing finally block if it was unreachable

* fix tests
This commit is contained in:
Vladimir Matveev authored and GitHub committed 2016-10-03 11:03:28 -07:00
1 parent 9afb07de5a
commit 4800464ed6
5 files changed
+88 -1

No files matched your search

+5 -1
View File
@@ -964,7 +964,11 @@ namespace ts {
currentFlow = preTryFlow;
bind(node.finallyBlock);
}
currentFlow = finishFlowLabel(postFinallyLabel);
// if try statement has finally block and flow after finally block is unreachable - keep it
// otherwise use whatever flow was accumulated at postFinallyLabel
if (!node.finallyBlock || !(currentFlow.flags & FlowFlags.Unreachable)) {
currentFlow = finishFlowLabel(postFinallyLabel);
}
}
function bindSwitchStatement(node: SwitchStatement): void {