Skip to content

Commit 908cedd

Browse files
Ensure pipeTo() releases its reader correctly
The user agent is allowed to use a default reader or a BYOB reader for the pipe, but we were always calling ReadableStreamDefaultReaderRelease in the finalize steps. This commit fixes the algorithm to we should use the appropriate release abstract operation corresponding to the chosen reader. This was broken in d5f92d9.
1 parent 3c6b8b3 commit 908cedd

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

index.bs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2219,7 +2219,9 @@ The following abstract operations operate on {{ReadableStream}} instances at a h
22192219
* <dfn id="rs-pipeTo-finalize"><i>Finalize</i></dfn>: both forms of shutdown will eventually ask
22202220
to finalize, optionally with an error |error|, which means to perform the following steps:
22212221
1. Perform ! [$WritableStreamDefaultWriterRelease$](|writer|).
2222-
1. Perform ! [$ReadableStreamDefaultReaderRelease$](|reader|).
2222+
1. If |reader| [=implements=] {{ReadableStreamBYOBReader}}, perform
2223+
! [$ReadableStreamBYOBReaderRelease$](|reader|).
2224+
1. Otherwise, perform ! [$ReadableStreamDefaultReaderRelease$](|reader|).
22232225
1. If |signal| is not undefined, [=AbortSignal/remove=] |abortAlgorithm| from |signal|.
22242226
1. If |error| was given, [=reject=] |promise| with |error|.
22252227
1. Otherwise, [=resolve=] |promise| with undefined.

0 commit comments

Comments
 (0)