OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 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 | 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 import 'dart:mirrors'; | 5 import 'dart:mirrors'; |
6 | 6 |
7 import 'async_helper.dart'; | 7 import 'async_helper.dart'; |
8 | 8 |
9 void test(void onDone(bool success)) { | 9 void test(void onDone(bool success)) { |
10 var now = new Date.now(); | 10 var now = new DateTime.now(); |
11 InstanceMirror mirror = reflect(now); | 11 InstanceMirror mirror = reflect(now); |
12 print('now: ${now}'); | 12 print('now: ${now}'); |
13 print('mirror.type: ${mirror.type}'); | 13 print('mirror.type: ${mirror.type}'); |
14 print('now.toUtc(): ${now.toUtc()}'); | 14 print('now.toUtc(): ${now.toUtc()}'); |
15 | 15 |
16 mirror.invoke("toUtc", []).then((value) { | 16 mirror.invoke("toUtc", []).then((value) { |
17 print('mirror.invoke("toUtc", []): $value'); | 17 print('mirror.invoke("toUtc", []): $value'); |
18 Expect.isTrue(value.hasReflectee); | 18 Expect.isTrue(value.hasReflectee); |
19 Expect.equals(now.toUtc(), value.reflectee); | 19 Expect.equals(now.toUtc(), value.reflectee); |
20 onDone(true); | 20 onDone(true); |
21 }); | 21 }); |
22 } | 22 } |
23 | 23 |
24 void main() { | 24 void main() { |
25 print(""" | 25 print(""" |
26 | 26 |
27 This program is using an experimental feature called \"mirrors\". As | 27 This program is using an experimental feature called \"mirrors\". As |
28 currently implemented, mirrors do not work with minification, and will | 28 currently implemented, mirrors do not work with minification, and will |
29 cause spurious errors depending on how code was optimized. | 29 cause spurious errors depending on how code was optimized. |
30 | 30 |
31 The authors of this program are aware of these problems and have | 31 The authors of this program are aware of these problems and have |
32 decided the thrill of using an experimental feature is outweighing the | 32 decided the thrill of using an experimental feature is outweighing the |
33 risks. Furthermore, the authors of this program understand that | 33 risks. Furthermore, the authors of this program understand that |
34 long-term, to fix the problems mentioned above, mirrors may have | 34 long-term, to fix the problems mentioned above, mirrors may have |
35 negative impact on size and performance of Dart programs compiled to | 35 negative impact on size and performance of Dart programs compiled to |
36 JavaScript. | 36 JavaScript. |
37 """); | 37 """); |
38 asyncTest(test); | 38 asyncTest(test); |
39 } | 39 } |
OLD | NEW |