Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(209)

Side by Side Diff: dart/tests/compiler/dart2js_extra/mirror_test.dart

Issue 14646031: Implement invoke, setField, and getField (unminified). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address review comments. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "package:expect/expect.dart"; 5 import "package:expect/expect.dart";
6 import 'dart:mirrors'; 6 import 'dart:mirrors';
7 7
8 import 'async_helper.dart'; 8 import 'async_helper.dart';
9 9
10 void test(void onDone(bool success)) { 10 void test(void onDone(bool success)) {
11 var now = new DateTime.now(); 11 var now = new DateTime.now();
12 InstanceMirror mirror = reflect(now); 12 InstanceMirror mirror = reflect(now);
13 print('now: ${now}'); 13 print('now: ${now}');
14 print('mirror.type: ${mirror.type}'); 14 print('mirror.type: ${mirror.type}');
15 print('now.toUtc(): ${now.toUtc()}'); 15 print('now.toUtc(): ${now.toUtc()}');
16 16
17 mirror.invokeAsync("toUtc", []).then((value) { 17 var value = mirror.invoke(const Symbol("toUtc"), []);
18 print('mirror.invoke("toUtc", []): $value');
19 Expect.isTrue(value.hasReflectee);
20 Expect.equals(now.toUtc(), value.reflectee);
21
22 mirror.invokeAsync(const Symbol("toUtc"), []).then((value) {
18 print('mirror.invokeAsync("toUtc", []): $value'); 23 print('mirror.invokeAsync("toUtc", []): $value');
19 Expect.isTrue(value.hasReflectee); 24 Expect.isTrue(value.hasReflectee);
20 Expect.equals(now.toUtc(), value.reflectee); 25 Expect.equals(now.toUtc(), value.reflectee);
21 onDone(true); 26 onDone(true);
22 }); 27 });
23 } 28 }
24 29
25 void main() { 30 void main() {
26 reflect("""
27
28 This program is using an experimental feature called \"mirrors\". As
29 currently implemented, mirrors do not work with minification, and will
30 cause spurious errors depending on how code was optimized.
31
32 The authors of this program are aware of these problems and have
33 decided the thrill of using an experimental feature is outweighing the
34 risks. Furthermore, the authors of this program understand that
35 long-term, to fix the problems mentioned above, mirrors may have
36 negative impact on size and performance of Dart programs compiled to
37 JavaScript.
38 """);
39 asyncTest(test); 31 asyncTest(test);
40 } 32 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698