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

Side by Side Diff: lib/compiler/implementation/dart_backend/backend.dart

Issue 10919033: Rework Unparser/unparse StringBuffer management. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 3 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 class DartBackend extends Backend { 5 class DartBackend extends Backend {
6 final List<CompilerTask> tasks; 6 final List<CompilerTask> tasks;
7 final bool cutDeclarationTypes; 7 final bool cutDeclarationTypes;
8 // TODO(antonm): make available from command-line options. 8 // TODO(antonm): make available from command-line options.
9 final bool outputAst = false; 9 final bool outputAst = false;
10 10
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 } else { 174 } else {
175 outputElement(topLevel); 175 outputElement(topLevel);
176 } 176 }
177 } 177 }
178 sb.add('</Program>\n'); 178 sb.add('</Program>\n');
179 compiler.assembledCode = sb.toString(); 179 compiler.assembledCode = sb.toString();
180 return; 180 return;
181 } 181 }
182 182
183 final unparser = new Unparser.withRenamer((Node node) => renames[node]); 183 final unparser = new Unparser.withRenamer((Node node) => renames[node]);
184 compiler.assembledCode = emitCode( 184 emitCode(compiler, unparser, imports, sortedTopLevels, sortedClassMembers);
185 compiler, unparser, imports, sortedTopLevels, sortedClassMembers); 185 compiler.assembledCode = unparser.result;
186 } 186 }
187 187
188 log(String message) => compiler.log('[DartBackend] $message'); 188 log(String message) => compiler.log('[DartBackend] $message');
189 } 189 }
190 190
191 /** 191 /**
192 * Some elements are not recorded by resolver now, 192 * Some elements are not recorded by resolver now,
193 * for example, typedefs or classes which are only 193 * for example, typedefs or classes which are only
194 * used in signatures, as/is operators or in super clauses 194 * used in signatures, as/is operators or in super clauses
195 * (just to name a few). Retraverse AST to pick those up. 195 * (just to name a few). Retraverse AST to pick those up.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 } 246 }
247 247
248 compareElements(e0, e1) { 248 compareElements(e0, e1) {
249 int result = compareBy((e) => e.getLibrary().uri.toString())(e0, e1); 249 int result = compareBy((e) => e.getLibrary().uri.toString())(e0, e1);
250 if (result != 0) return result; 250 if (result != 0) return result;
251 return compareBy((e) => e.position().charOffset)(e0, e1); 251 return compareBy((e) => e.position().charOffset)(e0, e1);
252 } 252 }
253 253
254 List<Element> sortElements(Collection<Element> elements) => 254 List<Element> sortElements(Collection<Element> elements) =>
255 sorted(elements, compareElements); 255 sorted(elements, compareElements);
OLDNEW
« no previous file with comments | « no previous file | lib/compiler/implementation/dart_backend/emitter.dart » ('j') | lib/compiler/implementation/tree/nodes.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698