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 library dump_info; | 5 library dump_info; |
6 | 6 |
7 import 'dart:convert' | 7 import 'dart:convert' |
8 show ChunkedConversionSink, JsonEncoder, StringConversionSink; | 8 show ChunkedConversionSink, JsonEncoder, StringConversionSink; |
9 | 9 |
10 import 'package:dart2js_info/info.dart'; | 10 import 'package:dart2js_info/info.dart'; |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 // TODO(sigmund,het): move more features here. Ideally the dump-info task | 361 // TODO(sigmund,het): move more features here. Ideally the dump-info task |
362 // shouldn't reach into internals of other parts of the compiler. For example, | 362 // shouldn't reach into internals of other parts of the compiler. For example, |
363 // we currently reach into the full emitter and as a result we don't support | 363 // we currently reach into the full emitter and as a result we don't support |
364 // dump-info when using the startup-emitter (issue #24190). | 364 // dump-info when using the startup-emitter (issue #24190). |
365 abstract class InfoReporter { | 365 abstract class InfoReporter { |
366 void reportInlined(Element element, Element inlinedFrom); | 366 void reportInlined(Element element, Element inlinedFrom); |
367 } | 367 } |
368 | 368 |
369 class DumpInfoTask extends CompilerTask implements InfoReporter { | 369 class DumpInfoTask extends CompilerTask implements InfoReporter { |
370 static const ImpactUseCase IMPACT_USE = const ImpactUseCase('Dump info'); | 370 static const ImpactUseCase IMPACT_USE = const ImpactUseCase('Dump info'); |
| 371 final Compiler compiler; |
371 | 372 |
372 DumpInfoTask(Compiler compiler) : super(compiler); | 373 DumpInfoTask(Compiler compiler) |
| 374 : compiler = compiler, |
| 375 super(compiler.measurer); |
373 | 376 |
374 String get name => "Dump Info"; | 377 String get name => "Dump Info"; |
375 | 378 |
376 ElementInfoCollector infoCollector; | 379 ElementInfoCollector infoCollector; |
377 | 380 |
378 /// The size of the generated output. | 381 /// The size of the generated output. |
379 int _programSize; | 382 int _programSize; |
380 | 383 |
381 // A set of javascript AST nodes that we care about the size of. | 384 // A set of javascript AST nodes that we care about the size of. |
382 // This set is automatically populated when registerElementAst() | 385 // This set is automatically populated when registerElementAst() |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 compilationMoment: new DateTime.now(), | 584 compilationMoment: new DateTime.now(), |
582 compilationDuration: compiler.measurer.wallClock.elapsed, | 585 compilationDuration: compiler.measurer.wallClock.elapsed, |
583 toJsonDuration: stopwatch.elapsedMilliseconds, | 586 toJsonDuration: stopwatch.elapsedMilliseconds, |
584 dumpInfoDuration: this.timing, | 587 dumpInfoDuration: this.timing, |
585 noSuchMethodEnabled: compiler.backend.enabledNoSuchMethod, | 588 noSuchMethodEnabled: compiler.backend.enabledNoSuchMethod, |
586 minified: compiler.options.enableMinification); | 589 minified: compiler.options.enableMinification); |
587 | 590 |
588 ChunkedConversionSink<Object> sink = encoder.startChunkedConversion( | 591 ChunkedConversionSink<Object> sink = encoder.startChunkedConversion( |
589 new StringConversionSink.fromStringSink(buffer)); | 592 new StringConversionSink.fromStringSink(buffer)); |
590 sink.add(new AllInfoJsonCodec().encode(result)); | 593 sink.add(new AllInfoJsonCodec().encode(result)); |
591 reporter.reportInfo(NO_LOCATION_SPANNABLE, MessageKind.GENERIC, { | 594 compiler.reporter.reportInfo(NO_LOCATION_SPANNABLE, MessageKind.GENERIC, { |
592 'text': "View the dumped .info.json file at " | 595 'text': "View the dumped .info.json file at " |
593 "https://dart-lang.github.io/dump-info-visualizer" | 596 "https://dart-lang.github.io/dump-info-visualizer" |
594 }); | 597 }); |
595 } | 598 } |
596 } | 599 } |
OLD | NEW |