| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file |  | 
| 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. |  | 
| 4 // Dart test program for testing execution of finally blocks after an exception |  | 
| 5 // is thrown from inside a local function capturing a variable. |  | 
| 6 |  | 
| 7 |  | 
| 8 class MyException { |  | 
| 9   const MyException(String message) : message_ = message; |  | 
| 10   final String message_; |  | 
| 11 } |  | 
| 12 |  | 
| 13 class Helper { |  | 
| 14   static int f1(int k) { |  | 
| 15     var b; |  | 
| 16     try { |  | 
| 17       var a = new List(10); |  | 
| 18       int i = 0; |  | 
| 19       while (i < 10) { |  | 
| 20         int j = i; |  | 
| 21         a[i] = () { |  | 
| 22           if (j == 5) { |  | 
| 23             throw new MyException("Test for exception being thrown"); |  | 
| 24           } |  | 
| 25           k += 10; |  | 
| 26           return j; |  | 
| 27         }; |  | 
| 28         if (i == 0) { |  | 
| 29           b = a[i]; |  | 
| 30         } |  | 
| 31         i++; |  | 
| 32       } |  | 
| 33       for(int i = 0; i < 10; i++) { |  | 
| 34         a[i](); |  | 
| 35       } |  | 
| 36     } catch (MyException exception) { |  | 
| 37       k += 100; |  | 
| 38       print(exception.message_); |  | 
| 39       b(); |  | 
| 40     } finally { |  | 
| 41       k += 1000; |  | 
| 42       b(); |  | 
| 43     } |  | 
| 44     return k; |  | 
| 45   } |  | 
| 46 } |  | 
| 47 |  | 
| 48 class ExecuteFinally7Test { |  | 
| 49   static testMain() { |  | 
| 50     Expect.equals(1171, Helper.f1(1)); |  | 
| 51   } |  | 
| 52 } |  | 
| 53 |  | 
| 54 main() { |  | 
| 55   ExecuteFinally7Test.testMain(); |  | 
| 56 } |  | 
| OLD | NEW | 
|---|