| 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 invocation of implicit closures. | |
| 5 // VMOptions= | |
| 6 // VMOptions=--use_slow_path | |
| 7 | |
| 8 class First { | |
| 9 First(this.i) {} | |
| 10 var b; | |
| 11 int foo() { return i; } | |
| 12 Function foo1() { | |
| 13 local() { | |
| 14 return i; | |
| 15 } | |
| 16 return local; | |
| 17 } | |
| 18 int i; | |
| 19 } | |
| 20 | |
| 21 class ImplicitClosureTest { | |
| 22 static void testMain() { | |
| 23 First obj = new First(20); | |
| 24 | |
| 25 Function func = () => obj.i; | |
| 26 obj.b = func; | |
| 27 Expect.equals(20, obj.b()); | |
| 28 | |
| 29 var ib1 = obj.foo1(); | |
| 30 Expect.equals(obj.i, ib1()); | |
| 31 | |
| 32 var ib = obj.foo; | |
| 33 Expect.equals(obj.i, ib()); | |
| 34 } | |
| 35 } | |
| 36 | |
| 37 | |
| 38 main() { | |
| 39 ImplicitClosureTest.testMain(); | |
| 40 } | |
| OLD | NEW |