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 library lib; |
| 6 |
| 7 @MirrorsUsed(targets: "lib") |
5 import 'dart:mirrors'; | 8 import 'dart:mirrors'; |
6 import 'package:expect/expect.dart'; | 9 import 'package:expect/expect.dart'; |
7 import 'stringify.dart'; | 10 import 'stringify.dart'; |
8 | 11 |
9 testIntercepted() { | 12 testIntercepted() { |
10 var instance = []; | 13 var instance = []; |
11 var closureMirror = reflect(instance.toString); | 14 var closureMirror = reflect(instance.toString); |
12 var methodMirror = closureMirror.function; | 15 var methodMirror = closureMirror.function; |
13 Expect.equals(#toString, methodMirror.simpleName); | 16 Expect.equals(#toString, methodMirror.simpleName); |
14 Expect.equals('[]', closureMirror.apply([]).reflectee); | 17 Expect.equals('[]', closureMirror.apply([]).reflectee); |
15 } | 18 } |
16 | 19 |
17 testNonIntercepted() { | 20 testNonIntercepted() { |
18 var closure = new Map().containsKey; | 21 var closure = new Map().containsKey; |
19 var closureMirror = reflect(closure); | 22 var closureMirror = reflect(closure); |
20 var methodMirror = closureMirror.function; | 23 var methodMirror = closureMirror.function; |
21 Expect.equals(#containsKey, methodMirror.simpleName); | 24 Expect.equals(#containsKey, methodMirror.simpleName); |
22 Expect.isFalse(closureMirror.apply([7]).reflectee); | 25 Expect.isFalse(closureMirror.apply([7]).reflectee); |
23 } | 26 } |
24 | 27 |
25 main() { | 28 main() { |
26 testIntercepted(); | 29 testIntercepted(); |
27 testNonIntercepted(); | 30 testNonIntercepted(); |
28 } | 31 } |
OLD | NEW |