Chromium Code Reviews| Index: third_party/WebKit/Source/core/streams/ReadableStream.js |
| diff --git a/third_party/WebKit/Source/core/streams/ReadableStream.js b/third_party/WebKit/Source/core/streams/ReadableStream.js |
| index 80580c76e90ad7b5de7c6650a4fea08d785c4911..a243d7fe29b13d63e5711cfba135702688b8fca8 100644 |
| --- a/third_party/WebKit/Source/core/streams/ReadableStream.js |
| +++ b/third_party/WebKit/Source/core/streams/ReadableStream.js |
| @@ -176,45 +176,52 @@ |
| throw new RangeError(errGetReaderBadMode); |
| } |
| - tee() { |
| - if (IsReadableStream(this) === false) { |
| - throw new TypeError(streamErrors.illegalInvocation); |
| + pipeThrough({writable, readable}, options) { |
| + this.pipeTo(writable, options); |
| + return readable; |
|
domenic
2017/04/03 05:49:30
Shouldn't this mark the promise as handled?
Adam Rice
2017/04/03 15:08:15
I want to update the implementation in a separate
|
| + } |
| + |
| + pipeTo(dest, {preventClose, preventAbort, preventCancel} = {}) { |
| + if (!IsReadableStream(this)) { |
| + return Promise_reject(new TypeError(streamErrors.illegalInvocation)); |
| } |
| - return ReadableStreamTee(this); |
| - } |
| - } |
| + if (!binding.IsWritableStream(dest)) { |
| + // TODO(ricea): Think about having a better error message. |
| + return Promise_reject(new TypeError(streamErrors.illegalInvocation)); |
| + } |
| - // TODO(ricea): Move this into the class definition once it ships. |
| - function ReadableStream_prototype_pipeThrough({writable, readable}, options) { |
| - this.pipeTo(writable, options); |
| - return readable; |
| - } |
| + preventClose = Boolean(preventClose); |
| + preventAbort = Boolean(preventAbort); |
| + preventCancel = Boolean(preventCancel); |
| - // TODO(ricea): Move this into the class definition once it ships. |
| - function ReadableStream_prototype_pipeTo( |
| - dest, {preventClose, preventAbort, preventCancel} = {}) { |
| - if (!IsReadableStream(this)) { |
| - return Promise_reject(new TypeError(streamErrors.illegalInvocation)); |
| - } |
| + if (IsReadableStreamLocked(this)) { |
| + return Promise_reject(new TypeError(errCannotPipeLockedStream)); |
| + } |
| + |
| + if (binding.IsWritableStreamLocked(dest)) { |
| + return Promise_reject(new TypeError(errCannotPipeToALockedStream)); |
| + } |
| - if (!binding.IsWritableStream(dest)) { |
| - // TODO(ricea): Think about having a better error message. |
| - return Promise_reject(new TypeError(streamErrors.illegalInvocation)); |
| + return ReadableStreamPipeTo(this, dest, preventClose, preventAbort, |
| + preventCancel); |
| } |
| - preventClose = Boolean(preventClose); |
| - preventAbort = Boolean(preventAbort); |
| - preventCancel = Boolean(preventCancel); |
| + tee() { |
| + if (IsReadableStream(this) === false) { |
| + throw new TypeError(streamErrors.illegalInvocation); |
| + } |
| - const readable = this; |
| - if (IsReadableStreamLocked(readable)) { |
| - return Promise_reject(new TypeError(errCannotPipeLockedStream)); |
| + return ReadableStreamTee(this); |
| } |
| + } |
| - if (binding.IsWritableStreamLocked(dest)) { |
| - return Promise_reject(new TypeError(errCannotPipeToALockedStream)); |
| - } |
| + function ReadableStreamPipeTo(readable, dest, preventClose, preventAbort, |
| + preventCancel) { |
| + // assert(IsReadableStream(readable)); |
| + // assert(binding.IsWritableStream(dest)); |
| + // assert(!IsReadableStreamLocked(readable)); |
| + // assert(!binding.IsWritableStreamLocked(dest)); |
|
tyoshino (SeeGerritForStatus)
2017/04/05 06:08:41
Please write some comment in natural language to e
Adam Rice
2017/04/05 07:03:47
Done.
|
| const reader = AcquireReadableStreamDefaultReader(readable); |
| const writer = binding.AcquireWritableStreamDefaultWriter(dest); |
| @@ -1108,9 +1115,4 @@ |
| return new ReadableStream( |
| underlyingSource, strategy, createWithExternalControllerSentinel); |
| }; |
| - |
| - // Temporary exports while pipeTo() and pipeThrough() are behind flags |
| - binding.ReadableStream_prototype_pipeThrough = |
| - ReadableStream_prototype_pipeThrough; |
| - binding.ReadableStream_prototype_pipeTo = ReadableStream_prototype_pipeTo; |
| }); |