- From: Adam Rice <notifications@github.com>
- Date: Mon, 17 Sep 2018 21:50:12 -0700
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/pull/954/review/156201727@github.com>
ricea commented on this pull request.
> + if (IsReadableStreamAsyncIterator(this) === false) {
+ return Promise.reject(streamAsyncIteratorBrandCheckException('next'));
+ }
+ const reader = this._asyncIteratorReader;
+ if (reader._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('next'));
+ }
+ return ReadableStreamDefaultReaderRead(reader, true);
+ },
+
+ return(value) {
+ if (IsReadableStreamAsyncIterator(this) === false) {
+ return Promise.reject(streamAsyncIteratorBrandCheckException('next'));
+ }
+ const reader = this._asyncIteratorReader;
+ if (this.preventCancel === false) {
Should be `this._preventCancel`.
> }
+const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () {}).prototype);
+const ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf({
+ next() {
+ if (IsReadableStreamAsyncIterator(this) === false) {
+ return Promise.reject(streamAsyncIteratorBrandCheckException('next'));
+ }
+ const reader = this._asyncIteratorReader;
+ if (reader._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('next'));
Maybe this should be `readerLockException('iterate')`?
"Cannot next a stream using a released reader" doesn't make much sense.
> + }
+ const reader = this._asyncIteratorReader;
+ if (reader._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('next'));
+ }
+ return ReadableStreamDefaultReaderRead(reader, true);
+ },
+
+ return(value) {
+ if (IsReadableStreamAsyncIterator(this) === false) {
+ return Promise.reject(streamAsyncIteratorBrandCheckException('next'));
+ }
+ const reader = this._asyncIteratorReader;
+ if (this.preventCancel === false) {
+ if (reader._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('next'));
This should not be `'next'`. Maybe `'finish iterating'` makes sense?
> +
+<emu-alg>
+ 1. If ! IsReadableStreamAsyncIterator(*this*) is *false*, return <a>a promise rejected with</a> *TypeError* exception.
+ 1. Let _reader_ be *this*.[[asyncIteratorReader]].
+ 1. If _reader_.[[ownerReadableStream]] is *undefined*, return <a>a promise rejected with</a> a *TypeError* exception.
+ 1. Return ! ReadableStreamDefaultReaderRead(_reader_, *true*).
+</emu-alg>
+
+<h4 id="rs-asynciterator-prototype-return" method
+for="ReadableStreamAsyncIteratorPrototype">return( <var>value</var> )</h4>
+
+<emu-alg>
+ 1. If ! IsReadableStreamAsyncIterator(*this*) is *false*, return <a>a promise rejected with</a> *TypeError* exception.
+ 1. Let _reader_ be *this*.[[asyncIteratorReader]].
+ 1. If *this*.[[preventCancel]] is *false*, then:
+ 1. If _reader_.[[ownerReadableStream]] is *undefined*, return <a>a promise rejected with</a> a *TypeError*
These two steps are in both branches of the if statement and so should be moved up above it.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/pull/954#pullrequestreview-156201727
Received on Tuesday, 18 September 2018 04:50:34 UTC