Index: tests/kernel/unsorted/rethrow_test.dart |
diff --git a/tests/kernel/unsorted/rethrow_test.dart b/tests/kernel/unsorted/rethrow_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..04a5a844cf1546cc2cb593eafe7122b18fda3818 |
--- /dev/null |
+++ b/tests/kernel/unsorted/rethrow_test.dart |
@@ -0,0 +1,67 @@ |
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+import 'expect.dart'; |
+ |
+testNormalRethrow() { |
+ var x = 0; |
+ try { |
+ try { |
+ throw x++; |
+ } catch (e) { |
+ Expect.isTrue(e == 0); |
+ x++; |
+ rethrow; |
+ } |
+ } catch (e) { |
+ Expect.isTrue(e == 0); |
+ x++; |
+ } |
+ Expect.isTrue(x == 3); |
+} |
+ |
+testNormalRethrow2() { |
+ var x = 0; |
+ try { |
+ try { |
+ throw x++; |
+ } on int catch (e) { |
+ Expect.isTrue(e == 0); |
+ x++; |
+ rethrow; |
+ } |
+ } catch (e) { |
+ Expect.isTrue(e == 0); |
+ x++; |
+ } |
+ Expect.isTrue(x == 3); |
+} |
+ |
+testRethrowWithinTryRethrow() { |
+ var x = 0; |
+ try { |
+ try { |
+ throw x++; |
+ } on int catch (e) { |
+ Expect.isTrue(e == 0); |
+ x++; |
+ try { |
+ x++; |
+ rethrow; |
+ } finally { |
+ x++; |
+ } |
+ } |
+ } catch (e) { |
+ Expect.isTrue(e == 0); |
+ x++; |
+ } |
+ Expect.isTrue(x == 5); |
+} |
+ |
+main() { |
+ testNormalRethrow(); |
+ testNormalRethrow2(); |
+ testRethrowWithinTryRethrow(); |
+} |