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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/code_buffer.dart

Issue 13008021: Add optional writeAll separator argument. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 7 years, 9 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 part of dart2js; 5 part of dart2js;
6 6
7 class CodeBuffer implements StringBuffer { 7 class CodeBuffer implements StringBuffer {
8 StringBuffer buffer; 8 StringBuffer buffer;
9 List<CodeBufferMarker> markers; 9 List<CodeBufferMarker> markers;
10 int lastBufferOffset = 0; 10 int lastBufferOffset = 0;
(...skipping 19 matching lines...) Expand all
30 */ 30 */
31 CodeBuffer write(var object) { 31 CodeBuffer write(var object) {
32 if (object is CodeBuffer) { 32 if (object is CodeBuffer) {
33 return addBuffer(object); 33 return addBuffer(object);
34 } 34 }
35 if (mappedRangeCounter == 0) setSourceLocation(null); 35 if (mappedRangeCounter == 0) setSourceLocation(null);
36 buffer.write(object); 36 buffer.write(object);
37 return this; 37 return this;
38 } 38 }
39 39
40 CodeBuffer writeAll(Iterable<Object> objects) { 40 CodeBuffer writeAll(Iterable<Object> objects, [String separator = ""]) {
41 for (var object in objects) { 41 Iterator iterator = objects.iterator;
42 write(object); 42 if (!iterator.moveNext()) return this;
43 if (separator == "") {
44 do {
45 write(iterator.current);
46 } while (iterator.moveNext());
47 } else {
48 buffer.write(iterator.current);
49 while (iterator.moveNext()) {
50 write(separator);
51 write(iterator.current);
52 }
43 } 53 }
44 return this; 54 return this;
45 } 55 }
46 56
47 CodeBuffer writeln([var object = ""]) { 57 CodeBuffer writeln([var object = ""]) {
48 return write(object).write("\n"); 58 return write(object).write("\n");
49 } 59 }
50 60
51 CodeBuffer addBuffer(CodeBuffer other) { 61 CodeBuffer addBuffer(CodeBuffer other) {
52 if (other.markers.length > 0) { 62 if (other.markers.length > 0) {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 }); 120 });
111 } 121 }
112 } 122 }
113 123
114 class CodeBufferMarker { 124 class CodeBufferMarker {
115 final int offsetDelta; 125 final int offsetDelta;
116 final sourcePosition; 126 final sourcePosition;
117 127
118 CodeBufferMarker(this.offsetDelta, this.sourcePosition); 128 CodeBufferMarker(this.offsetDelta, this.sourcePosition);
119 } 129 }
OLDNEW
« no previous file with comments | « pkg/scheduled_test/lib/src/scheduled_server/safe_http_server.dart ('k') | sdk/lib/collection/collections.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698