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 |