- From: Mattias Buelens <notifications@github.com>
- Date: Fri, 07 Jan 2022 14:46:28 -0800
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Friday, 7 January 2022 22:46:40 UTC
@MattiasBuelens commented on this pull request.
> @@ -3153,10 +3202,14 @@ The following abstract operations support the implementation of the
|controller|.[=ReadableByteStreamController/[[pendingPullIntos]]=][0].
1. If ! [$IsDetachedBuffer$](|firstPendingPullInto|'s [=pull-into descriptor/buffer=])
is true, throw a {{TypeError}} exception.
+ 1. Perform ! [$ReadableByteStreamControllerInvalidateBYOBRequest$](|controller|).
Merging the two ifs turned out to be a little tricky. `EnqueueDetachedPullIntoToQueue` eventually calls `ShiftPendingPullInto`, which requires `controller.[[byobRequest]]` to be null. So we must ensure that `InvalidateBYOBRequest` happens *before* `EnqueueDetachedPullIntoToQueue`, but *after* we've done the early-return checks (e.g. throwing a `TypeError` for a detached buffer).
Luckily, it's safe to move the `InvalidateBYOBRequest` call *inside* the if too. If a BYOB request exists, then there must be at least one pull-into descriptor too. 😉
--
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/pull/1168#pullrequestreview-847052489
You are receiving this because you are subscribed to this thread.
Message ID: <whatwg/streams/pull/1168/review/847052489@github.com>
Received on Friday, 7 January 2022 22:46:40 UTC