OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /// Tool used mainly by dart2js developers to debug the generated info and check | 5 /// Tool used mainly by dart2js developers to debug the generated info and check |
6 /// that it is consistent and that it covers all the data we expect it to cover. | 6 /// that it is consistent and that it covers all the data we expect it to cover. |
7 library dart2js_info.bin.debug_info; | 7 library dart2js_info.bin.debug_info; |
8 | 8 |
9 import 'dart:io'; | 9 import 'dart:io'; |
10 | 10 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 int totalLib = info.libraries.fold(0, (n, lib) => n + lib.size); | 60 int totalLib = info.libraries.fold(0, (n, lib) => n + lib.size); |
61 int constantsSize = info.constants.fold(0, (n, c) => n + c.size); | 61 int constantsSize = info.constants.fold(0, (n, c) => n + c.size); |
62 int accounted = totalLib + constantsSize; | 62 int accounted = totalLib + constantsSize; |
63 | 63 |
64 if (accounted != realTotal) { | 64 if (accounted != realTotal) { |
65 var percent = | 65 var percent = |
66 ((realTotal - accounted) * 100 / realTotal).toStringAsFixed(2); | 66 ((realTotal - accounted) * 100 / realTotal).toStringAsFixed(2); |
67 _fail('$percent% size missing: $accounted (all libs + consts) ' | 67 _fail('$percent% size missing: $accounted (all libs + consts) ' |
68 '< $realTotal (total)'); | 68 '< $realTotal (total)'); |
69 } | 69 } |
70 var missingTotal = tracker.missing.values.fold(0, (a, b) => a + b); | 70 int missingTotal = tracker.missing.values.fold(0, (a, b) => a + b); |
71 if (missingTotal > 0) { | 71 if (missingTotal > 0) { |
72 var percent = (missingTotal * 100 / realTotal).toStringAsFixed(2); | 72 var percent = (missingTotal * 100 / realTotal).toStringAsFixed(2); |
73 _fail('$percent% size missing in libraries (sum of elements > lib.size)'); | 73 _fail('$percent% size missing in libraries (sum of elements > lib.size)'); |
74 } | 74 } |
75 } | 75 } |
76 | 76 |
77 class _SizeTracker extends RecursiveInfoVisitor { | 77 class _SizeTracker extends RecursiveInfoVisitor { |
78 /// A library name for which to print debugging information (if not null). | 78 /// A library name for which to print debugging information (if not null). |
79 final String _debugLibName; | 79 final String _debugLibName; |
80 | 80 |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 if (unreachables.isNotEmpty) { | 274 if (unreachables.isNotEmpty) { |
275 _fail('${unreachables.length} elements are unreachable from the ' | 275 _fail('${unreachables.length} elements are unreachable from the ' |
276 'entrypoint'); | 276 'entrypoint'); |
277 } else { | 277 } else { |
278 _pass('all elements are reachable from the entrypoint'); | 278 _pass('all elements are reachable from the entrypoint'); |
279 } | 279 } |
280 } | 280 } |
281 | 281 |
282 _pass(String msg) => print('\x1b[32mPASS\x1b[0m: $msg'); | 282 _pass(String msg) => print('\x1b[32mPASS\x1b[0m: $msg'); |
283 _fail(String msg) => print('\x1b[31mFAIL\x1b[0m: $msg'); | 283 _fail(String msg) => print('\x1b[31mFAIL\x1b[0m: $msg'); |
OLD | NEW |