- From: Domenic Denicola <notifications@github.com>
- Date: Thu, 06 Jan 2022 14:37:47 -0800
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/pull/1168/review/846127110@github.com>
@domenic commented on this pull request.
It'd be great if @nidhijaju could take a glance at this, from a perspective of "does this seem reasonable to implement in Chromium at some point" / "does the motivation and behavior make sense". For the latter https://github.com/web-platform-tests/wpt/pull/32072 might be helpful.
> @@ -2776,6 +2786,26 @@ The following abstract operations support the implementation and manipulation of
|view|, |readIntoRequest|).
</div>
+<div algorithm>
+ <dfn abstract-op lt="ReadableStreamBYOBReaderRelease"
+ id="readable-stream-byob-reader-release">ReadableStreamBYOBReaderRelease(|reader|)</dfn>
No hand-crafted id=""s for new abstract-ops
> + performs the following steps:
+
+ 1. Perform ! [$ReadableStreamReaderGenericRelease$](|reader|).
+ 1. Let |e| be a new {{TypeError}} exception.
+ 1. Perform ! [$ReadableStreamBYOBReaderErrorReadIntoRequests$](|reader|, |e|).
+</div>
+
+<div algorithm>
+ <dfn abstract-op lt="ReadableStreamBYOBReaderErrorReadIntoRequests">ReadableStreamBYOBReaderErrorReadIntoRequests(|reader|, |e|)</dfn>
+ performs the following steps:
+
+ 1. Let |readIntoRequests| be |reader|.[=ReadableStreamBYOBReader/[[readIntoRequests]]=].
+ 1. Set |reader|.[=ReadableStreamBYOBReader/[[readIntoRequests]]=] to a new empty [=list=].
+ 1. [=list/For each=] |readIntoRequest| of |readIntoRequests|,
+ 1. Perform |readIntoRequest|'s [=read-into request/error steps=], given |e|.
+</div>
Alphabetize abstract ops within their section
> @@ -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
Can we merge this with the previous "If controller.[[pendingPullIntos]] is not empty" block? I think it should be OK; the intermediate step should not do anything observable...
> @@ -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
+ [=list/is empty|empty=],
+ 1. Let |firstPendingPullInto| be
+ |controller|.[=ReadableByteStreamController/[[pendingPullIntos]]=][0].
+ 1. If |firstPendingPullInto|'s [=pull-into descriptor/reader type=] is "`none`",
+ 1. Perform ? [$ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue$](|controller|,
Nit: I like to avoid nesting single-step blocks; this can just be `If X, Y` in one line.
> @@ -3435,6 +3539,8 @@ The following abstract operations support the implementation of the
|firstDescriptor|)</dfn> performs the following steps:
1. Assert: |firstDescriptor|'s [=pull-into descriptor/bytes filled=] is 0.
+ 1. If |firstDescriptor|'s [=pull-into descriptor/reader type=] is "`none`",
+ 1. Perform ! [$ReadableByteStreamControllerShiftPendingPullInto$](|controller|).
Same single-nested-step nit here.
> @@ -3196,6 +3255,20 @@ The following abstract operations support the implementation of the
|controller|.[=ReadableByteStreamController/[[queueTotalSize]]=] + |byteLength|.
</div>
+<div algorithm>
+ <dfn abstract-op lt="ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue">ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(|controller|,
Maybe "Enqueue ... to queue" is not necessary? Although hmm, I see it has a sibling following a similar naming scheme. Oh well.
--
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/pull/1168#pullrequestreview-846127110
You are receiving this because you are subscribed to this thread.
Message ID: <whatwg/streams/pull/1168/review/846127110@github.com>
Received on Thursday, 6 January 2022 22:37:59 UTC