Index: tests/kernel/unsorted/try_finally_test.dart |
diff --git a/tests/kernel/unsorted/try_finally_test.dart b/tests/kernel/unsorted/try_finally_test.dart |
index db3069b0f0467c59dbd5f0305dbd56f5702f5039..87bb968248bec9ff624584ed614bc14dd355b08f 100644 |
--- a/tests/kernel/unsorted/try_finally_test.dart |
+++ b/tests/kernel/unsorted/try_finally_test.dart |
@@ -144,6 +144,34 @@ testStopContinueInsideSwitch2() { |
} |
} |
+testNestedFinally() { |
+ var events = ''; |
+ try { |
+ try { |
+ events = '$events|start'; |
+ } finally { |
+ events = '$events|start-catch'; |
+ } |
+ try { |
+ try { |
+ return; |
+ } finally { |
+ events = '$events|inner'; |
+ throw 0; |
+ } |
+ } finally { |
+ events = '$events|middle'; |
+ } |
+ } catch (e) { |
+ events = '$events|outer-catch'; |
+ } finally { |
+ events = '$events|outer-finally'; |
+ } |
+ Expect.equals( |
+ events, |
+ '|start|start-catch|inner|middle|outer-catch|outer-finally'); |
+} |
+ |
main() { |
Expect.isTrue(testSimpleBreak() == 3); |
Expect.isTrue(testReturnFinally() == 42); |
@@ -155,4 +183,5 @@ main() { |
Expect.isTrue(testStopContinueInsideLoop() == 42); |
Expect.isTrue(testStopContinueInsideSwitch() == 42); |
Expect.isTrue(testStopContinueInsideSwitch2() == 42); |
+ testNestedFinally(); |
} |