| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2012, 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 |
| 5 closure0() { |
| 6 var f = fib(i) { |
| 7 if (i < 2) return i; |
| 8 return fib(i - 1) + fib(i - 2); |
| 9 }; |
| 10 Expect.equals(5, f(5)); |
| 11 } |
| 12 |
| 13 closure1() { |
| 14 var decr1 = 0; |
| 15 var decr2 = 0; |
| 16 var f = fib(i) { |
| 17 if (i < 2) return i; |
| 18 return fib(i - decr1) + fib(i - decr2); |
| 19 }; |
| 20 decr1++; |
| 21 decr2 += 2; |
| 22 Expect.equals(5, f(5)); |
| 23 } |
| 24 |
| 25 closure2() { |
| 26 var f = fun(doReturnClosure) { |
| 27 if (doReturnClosure) { |
| 28 return inner() => fun(false); |
| 29 } else { |
| 30 return 499; |
| 31 } |
| 32 }; |
| 33 var g = f(true); |
| 34 Expect.equals(499, g()); |
| 35 } |
| 36 |
| 37 main() { |
| 38 closure0(); |
| 39 closure1(); |
| 40 closure2(); |
| 41 } |
| OLD | NEW |