- 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