OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 // SharedOptions=--enable-enum | 5 @MirrorsUsed(targets: const ["A"]) |
6 | |
7 import 'dart:mirrors'; | 6 import 'dart:mirrors'; |
8 | 7 |
9 import 'package:expect/expect.dart'; | 8 import 'package:expect/expect.dart'; |
10 | 9 |
11 enum Foo { BAR, BAZ } | 10 class A { |
| 11 toString() => "A"; |
| 12 } |
12 | 13 |
13 main() { | 14 main() { |
14 Expect.equals('Foo.BAR', Foo.BAR.toString()); | 15 // The invocation cache must not find the 'toString' from JavaScript's |
15 var name = reflect(Foo.BAR).invoke(#toString, []).reflectee; | 16 // Object.prototype. |
16 Expect.equals('Foo.BAR', name); | 17 var toString = reflect(new A()).getField(#toString).reflectee; |
| 18 Expect.equals("A", Function.apply(toString, [], {})); |
17 } | 19 } |
OLD | NEW |