Index: sdk/lib/convert/line_splitter.dart |
diff --git a/sdk/lib/convert/line_splitter.dart b/sdk/lib/convert/line_splitter.dart |
index a9c94488a6c366e35d8650785403ef71338aac88..b728d8f2c2edf434a7e7f49f62216dc0451dec6c 100644 |
--- a/sdk/lib/convert/line_splitter.dart |
+++ b/sdk/lib/convert/line_splitter.dart |
@@ -17,8 +17,9 @@ const int _CR = 13; |
* |
* The returned lines do not contain the line terminators. |
*/ |
-class LineSplitter extends |
- ChunkedConverter<String, List<String>, String, String> { |
+class LineSplitter |
+ extends Converter<String, List<String>>/*=Object*/ |
+ implements Object/*=StreamTransformer<String, String>*/ { |
const LineSplitter(); |
@@ -80,6 +81,12 @@ class LineSplitter extends |
} |
return new _LineSplitterSink(sink); |
} |
+ |
+ Stream/*<String>*/ bind(Stream/*<String>*/ stream) { |
+ return new Stream<String>.eventTransformed( |
+ stream, |
+ (EventSink<String> sink) => new _LineSplitterEventSink(sink)); |
+ } |
} |
// TODO(floitsch): deal with utf8. |
@@ -157,3 +164,16 @@ class _LineSplitterSink extends StringConversionSinkBase { |
} |
} |
} |
+ |
+class _LineSplitterEventSink extends _LineSplitterSink |
+ implements EventSink<String> { |
+ final EventSink<String> _eventSink; |
+ |
+ _LineSplitterEventSink(EventSink<String> eventSink) |
+ : _eventSink = eventSink, |
+ super(new StringConversionSink.from(eventSink)); |
+ |
+ void addError(Object o, [StackTrace stackTrace]) { |
+ _eventSink.addError(o, stackTrace); |
+ } |
+} |