OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // Regression test for dart2js that used to not treat the finally | 5 // Regression test for dart2js that used to not treat the finally |
6 // block as a successor of a nested try block. | 6 // block as a successor of a nested try block. |
7 | 7 |
8 import "package:expect/expect.dart"; | 8 import "package:expect/expect.dart"; |
9 | 9 |
10 var a; | 10 var a; |
11 | 11 |
12 foo() { | 12 foo() { |
13 var b = a == 8; // This should not be GVN'ed. | 13 var b = a == 8; // This should not be GVN'ed. |
14 while (!b) { | 14 while (!b) { |
15 try { | 15 try { |
16 try { | 16 try {} finally { |
17 } finally { | |
18 a = 8; | 17 a = 8; |
19 break; | 18 break; |
20 } | 19 } |
21 } finally { | 20 } finally { |
22 return a == 8; | 21 return a == 8; |
23 } | 22 } |
24 } | 23 } |
25 } | 24 } |
26 | 25 |
27 main() { | 26 main() { |
28 Expect.isTrue(foo()); | 27 Expect.isTrue(foo()); |
29 } | 28 } |
OLD | NEW |