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

Side by Side Diff: pkg/compiler/lib/src/dump_info.dart

Issue 832363002: Remove Compiler.assembledCode. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 11 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) 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' show 7 import 'dart:convert' show
8 HtmlEscape, 8 HtmlEscape,
9 JsonEncoder, 9 JsonEncoder,
10 StringConversionSink, 10 StringConversionSink,
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 return json; 79 return json;
80 } 80 }
81 } 81 }
82 82
83 class ElementToJsonVisitor extends ElementVisitor<Map<String, dynamic>> { 83 class ElementToJsonVisitor extends ElementVisitor<Map<String, dynamic>> {
84 final GroupedIdMapper mapper = new GroupedIdMapper(); 84 final GroupedIdMapper mapper = new GroupedIdMapper();
85 final Compiler compiler; 85 final Compiler compiler;
86 86
87 final Map<Element, Map<String, dynamic>> jsonCache = {}; 87 final Map<Element, Map<String, dynamic>> jsonCache = {};
88 88
89 int programSize; 89 final int programSize;
90 String dart2jsVersion; 90 String dart2jsVersion;
91 91
92 ElementToJsonVisitor(this.compiler); 92 ElementToJsonVisitor(this.compiler, this.programSize);
93 93
94 void run() { 94 void run() {
95 Backend backend = compiler.backend; 95 Backend backend = compiler.backend;
96 if (backend is JavaScriptBackend) {
97 // Add up the sizes of all output-buffers.
98 programSize = backend.emitter.oldEmitter.outputBuffers.values.fold(0,
99 (a, b) => a + b.length);
100 } else {
101 programSize = compiler.assembledCode.length;
102 }
103 96
104 dart2jsVersion = compiler.hasBuildId ? compiler.buildId : null; 97 dart2jsVersion = compiler.hasBuildId ? compiler.buildId : null;
105 98
106 for (var library in compiler.libraryLoader.libraries.toList()) { 99 for (var library in compiler.libraryLoader.libraries.toList()) {
107 library.accept(this); 100 library.accept(this);
108 } 101 }
109 } 102 }
110 103
111 // If keeping the element is in question (like if a function has a size 104 // If keeping the element is in question (like if a function has a size
112 // of zero), only keep it if it holds dependencies to elsewhere. 105 // of zero), only keep it if it holds dependencies to elsewhere.
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 List<jsAst.Node> code = _elementToNodes[element]; 541 List<jsAst.Node> code = _elementToNodes[element];
549 if (code == null) return null; 542 if (code == null) return null;
550 // Concatenate rendered ASTs. 543 // Concatenate rendered ASTs.
551 StringBuffer sb = new StringBuffer(); 544 StringBuffer sb = new StringBuffer();
552 for (jsAst.Node ast in code) { 545 for (jsAst.Node ast in code) {
553 sb.writeln(jsAst.prettyPrint(ast, compiler).getText()); 546 sb.writeln(jsAst.prettyPrint(ast, compiler).getText());
554 } 547 }
555 return sb; 548 return sb;
556 } 549 }
557 550
558 void collectInfo() { 551 void collectInfo(int programSize) {
559 infoCollector = new ElementToJsonVisitor(compiler)..run(); 552 infoCollector = new ElementToJsonVisitor(compiler, programSize)..run();
560 } 553 }
561 554
562 void dumpInfo() { 555 void dumpInfo(int programSize) {
563 measure(() { 556 measure(() {
564 if (infoCollector == null) { 557 if (infoCollector == null) {
565 collectInfo(); 558 collectInfo(programSize);
566 } 559 }
567 560
568 StringBuffer jsonBuffer = new StringBuffer(); 561 StringBuffer jsonBuffer = new StringBuffer();
569 dumpInfoJson(jsonBuffer); 562 dumpInfoJson(jsonBuffer);
570 compiler.outputProvider('', 'info.json') 563 compiler.outputProvider('', 'info.json')
571 ..add(jsonBuffer.toString()) 564 ..add(jsonBuffer.toString())
572 ..close(); 565 ..close();
573 }); 566 });
574 } 567 }
575 568
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 ChunkedConversionSink<Object> sink = 651 ChunkedConversionSink<Object> sink =
659 encoder.startChunkedConversion( 652 encoder.startChunkedConversion(
660 new StringConversionSink.fromStringSink(buffer)); 653 new StringConversionSink.fromStringSink(buffer));
661 sink.add(outJson); 654 sink.add(outJson);
662 compiler.reportInfo(NO_LOCATION_SPANNABLE, 655 compiler.reportInfo(NO_LOCATION_SPANNABLE,
663 const MessageKind( 656 const MessageKind(
664 "View the dumped .info.json file at " 657 "View the dumped .info.json file at "
665 "https://dart-lang.github.io/dump-info-visualizer")); 658 "https://dart-lang.github.io/dump-info-visualizer"));
666 } 659 }
667 } 660 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698