Index: tests/language/regress_21795_test.dart |
=================================================================== |
--- tests/language/regress_21795_test.dart (revision 0) |
+++ tests/language/regress_21795_test.dart (working copy) |
@@ -0,0 +1,46 @@ |
+// Copyright (c) 2015, 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. |
+ |
+// Regression test for issue 21795. |
+ |
+foo(t) { |
+ try { |
+ if (t == 123) throw 42; |
+ } finally { } |
+} |
+ |
+bar() { |
+ try { |
+ return 42; |
+ } finally { } |
+} |
+ |
+ |
+class A { |
+ test(t) { |
+ try { |
+ foo(t); |
+ } finally { |
+ if (t == 0) { |
+ try { |
+ } catch (err, st) { |
+ } |
+ } |
+ } |
+ } |
+} |
+ |
+ |
+main() { |
+ var a = new A(); |
+ for (var i=0; i<10000; ++i) a.test(0); |
+ try { |
+ a.test(123); |
+ } catch (e, s) { |
+ if (s.toString().indexOf("foo") == -1) { |
+ print(s); |
+ throw "Expected foo in stacktrace!"; |
+ } |
+ } |
+} |