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

Unified Diff: sdk/lib/_internal/compiler/implementation/lib/core_patch.dart

Issue 12218086: Add StringSink and update StringBuffer. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Add writeAll to CodeBuffer. Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/compiler/implementation/lib/core_patch.dart
diff --git a/sdk/lib/_internal/compiler/implementation/lib/core_patch.dart b/sdk/lib/_internal/compiler/implementation/lib/core_patch.dart
index 5ccfcfc55381a7d59057b21e1f110a357169be06..e7005aa30d5db50d09553a726e7037076b9c821a 100644
--- a/sdk/lib/_internal/compiler/implementation/lib/core_patch.dart
+++ b/sdk/lib/_internal/compiler/implementation/lib/core_patch.dart
@@ -244,9 +244,28 @@ patch bool identical(Object a, Object b) {
}
patch class StringBuffer {
- patch factory StringBuffer([Object content = ""]) {
- return new JsStringBuffer(content);
+ String _contents = "";
+
+ patch StringBuffer([Object content = ""]) {
+ if (content is String) {
+ _contents = content;
+ } else {
+ write(content);
+ }
}
+
+ patch int get length => _contents.length;
+
+ patch void write(Object obj) {
+ String str = obj is String ? obj : "$obj";
+ _contents = Primitives.stringConcatUnchecked(_contents, str);
+ }
+
+ patch void clear() {
+ _contents = "";
+ }
+
+ patch String toString() => _contents;
}
patch class NoSuchMethodError {

Powered by Google App Engine
This is Rietveld 408576698