| 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 /// Prints all information about all mirrors. This tests that it is possible to | 5 /// Prints all information about all mirrors. This tests that it is possible to |
| 6 /// enumerate all reflective information without crashing. | 6 /// enumerate all reflective information without crashing. |
| 7 | 7 |
| 8 // Note: Adding imports below is fine for regression tests. For example, | 8 // Note: Adding imports below is fine for regression tests. For example, |
| 9 // 'crash_library_metadata.dart' is imported to ensure the compiler doesn't | 9 // 'crash_library_metadata.dart' is imported to ensure the compiler doesn't |
| 10 // crash. | 10 // crash. |
| 11 | 11 |
| 12 // TODO(ahe): This test should be extended until we are sure all data is | 12 // TODO(ahe): This test should be extended until we are sure all data is |
| 13 // printed. | 13 // printed. |
| 14 | 14 |
| 15 library test.mirror_printer_test; | 15 library test.mirror_printer_test; |
| 16 | 16 |
| 17 @MirrorsUsed(targets: '*') | 17 @MirrorsUsed(targets: '*') |
| 18 import 'dart:mirrors'; | 18 import 'dart:mirrors'; |
| 19 | 19 |
| 20 import 'crash_library_metadata.dart'; // This would crash dart2js. | 20 import 'crash_library_metadata.dart'; // This would crash dart2js. |
| 21 | 21 |
| 22 // Importing dart:html to make things interesting. | 22 // Importing dart:html to make things interesting. |
| 23 import 'dart:html'; /// 01: ok | 23 import 'dart:html'; //# 01: ok |
| 24 | 24 |
| 25 class MirrorPrinter { | 25 class MirrorPrinter { |
| 26 final StringBuffer buffer; | 26 final StringBuffer buffer; |
| 27 final TypeMirror dynamicType = currentMirrorSystem().dynamicType; | 27 final TypeMirror dynamicType = currentMirrorSystem().dynamicType; |
| 28 | 28 |
| 29 int indentationLevel = 0; | 29 int indentationLevel = 0; |
| 30 | 30 |
| 31 MirrorPrinter(this.buffer); | 31 MirrorPrinter(this.buffer); |
| 32 | 32 |
| 33 void w(object) { | 33 void w(object) { |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 StringBuffer buffer = new StringBuffer(); | 178 StringBuffer buffer = new StringBuffer(); |
| 179 libraries.values.forEach(new MirrorPrinter(buffer).writeLibrary); | 179 libraries.values.forEach(new MirrorPrinter(buffer).writeLibrary); |
| 180 return buffer; | 180 return buffer; |
| 181 } | 181 } |
| 182 } | 182 } |
| 183 | 183 |
| 184 main() { | 184 main() { |
| 185 print(MirrorPrinter.stringify(currentMirrorSystem().libraries)); | 185 print(MirrorPrinter.stringify(currentMirrorSystem().libraries)); |
| 186 // Clear the nodes to avoid confusing the fine test framework (by "fine" I | 186 // Clear the nodes to avoid confusing the fine test framework (by "fine" I |
| 187 // mean something else) -- ahe. | 187 // mean something else) -- ahe. |
| 188 document.body.nodes.clear(); /// 01: continued | 188 document.body.nodes.clear(); //# 01: continued |
| 189 } | 189 } |
| OLD | NEW |