- From: Mattias Buelens <notifications@github.com>
- Date: Thu, 06 Jan 2022 15:15:38 -0800
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/pull/1168/review/846154655@github.com>
@MattiasBuelens commented on this pull request.
> @@ -3156,7 +3207,15 @@ The following abstract operations support the implementation of the
1. Set |firstPendingPullInto|'s [=pull-into descriptor/buffer=] to !
[$TransferArrayBuffer$](|firstPendingPullInto|'s [=pull-into descriptor/buffer=]).
1. Perform ! [$ReadableByteStreamControllerInvalidateBYOBRequest$](|controller|).
- 1. If ! [$ReadableStreamHasDefaultReader$](|stream|) is true
+ 1. If |controller|.[=ReadableByteStreamController/[[pendingPullIntos]]=] is not
This hinged on what we wanted to do with the errors from `ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue()`. That is: if that call failed, is it a problem that we did not yet call `ReadableByteStreamControllerInvalidateBYOBRequest()`?
From https://github.com/whatwg/streams/pull/1168#discussion_r779034631, I think the conclusion is: no. If we're going to error the entire stream in response to an allocation failure in `EnqueueDetachedPullIntoToQueue()`, then it doesn't really matter what happens to the BYOB request. So we can do:
1. Transfer `firstPendingPullInto`'s buffer (and throw an error if it's already detached).
2. If `firstPendingPullInto`'s reader type is `"none"`, move its filled bytes to the stream's queue. If this fails, error the stream (and re-throw the error to the caller of `enqueue()`).
3. Invalidate the BYOB request.
--
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/pull/1168#discussion_r779928344
You are receiving this because you are subscribed to this thread.
Message ID: <whatwg/streams/pull/1168/review/846154655@github.com>
Received on Thursday, 6 January 2022 23:15:51 UTC