Skip to content

Commit 1eb74e3

Browse files
devsnekMattiasBuelens
authored andcommitted
squash! more
1 parent f39c70a commit 1eb74e3

File tree

2 files changed

+9
-19
lines changed

2 files changed

+9
-19
lines changed

index.bs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -869,16 +869,13 @@ for="ReadableStreamAsyncIteratorPrototype">return( <var>value</var> )</h4>
869869
<emu-alg>
870870
1. If ! IsReadableStreamAsyncIterator(*this*) is *false*, return <a>a promise rejected with</a> *TypeError* exception.
871871
1. Let _reader_ be *this*.[[asyncIteratorReader]].
872+
1. If _reader_.[[ownerReadableStream]] is *undefined*, return <a>a promise rejected with</a> a *TypeError* exception.
873+
1. If _reader_.[[readRequests]] is not empty, return <a>a promise rejected with</a> a *TypeError* exception.
872874
1. If *this*.[[preventCancel]] is *false*, then:
873-
1. If _reader_.[[ownerReadableStream]] is *undefined*, return <a>a promise rejected with</a> a *TypeError*
874-
exception.
875-
1. If _reader_.[[readRequests]] is not empty, return <a>a promise rejected with</a> a *TypeError* exception.
876875
1. Let _result_ be ! ReadableStreamReaderGenericCancel(_reader_, _value_).
877876
1. Perform ! ReadableStreamReaderGenericRelease(_reader_).
878877
1. Return the result of <a>transforming</a> _result_ by a fulfillment handler that returns !
879878
ReadableStreamCreateReadResult(_value_, *true*, *true*).
880-
1. If _reader_.[[ownerReadableStream]] is *undefined*, return <a>a promise rejected with</a> a *TypeError* exception.
881-
1. If _reader_.[[readRequests]] is not empty, return <a>a promise rejected with</a> a *TypeError* exception.
882879
1. Perform ! ReadableStreamReaderGenericRelease(_reader_).
883880
1. Return <a>a promise resolved with</a> ! ReadableStreamCreateReadResult(_value_, *true*, *true*).
884881
</emu-alg>

reference-implementation/lib/readable-stream.js

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ const ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf({
179179
}
180180
const reader = this._asyncIteratorReader;
181181
if (reader._ownerReadableStream === undefined) {
182-
return Promise.reject(readerLockException('next'));
182+
return Promise.reject(readerLockException('iterate'));
183183
}
184184
return ReadableStreamDefaultReaderRead(reader, true);
185185
},
@@ -189,25 +189,18 @@ const ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf({
189189
return Promise.reject(streamAsyncIteratorBrandCheckException('next'));
190190
}
191191
const reader = this._asyncIteratorReader;
192-
if (this.preventCancel === false) {
193-
if (reader._ownerReadableStream === undefined) {
194-
return Promise.reject(readerLockException('next'));
195-
}
196-
if (reader._readRequests.length > 0) {
197-
return Promise.reject(new TypeError(
198-
'Tried to release a reader lock when that reader has pending read() calls un-settled'));
199-
}
200-
const result = ReadableStreamReaderGenericCancel(reader, value);
201-
ReadableStreamReaderGenericRelease(reader);
202-
return result.then(() => ReadableStreamCreateReadResult(value, true, true));
203-
}
204192
if (reader._ownerReadableStream === undefined) {
205-
return Promise.reject(readerLockException('next'));
193+
return Promise.reject(readerLockException('finish iterating'));
206194
}
207195
if (reader._readRequests.length > 0) {
208196
return Promise.reject(new TypeError(
209197
'Tried to release a reader lock when that reader has pending read() calls un-settled'));
210198
}
199+
if (this._preventCancel === false) {
200+
const result = ReadableStreamReaderGenericCancel(reader, value);
201+
ReadableStreamReaderGenericRelease(reader);
202+
return result.then(() => ReadableStreamCreateReadResult(value, true, true));
203+
}
211204
ReadableStreamReaderGenericRelease(reader);
212205
return Promise.resolve(ReadableStreamCreateReadResult(value, true, true));
213206
}

0 commit comments

Comments
 (0)