
PASS Service worker test setup 
PASS Running templatedRSEmpty with ReadableStream (empty) 
PASS ReadableStream (empty): instances have the correct methods and properties 
PASS ReadableStream (empty): calling getReader with invalid arguments should throw appropriate errors 
PASS Running templatedRSEmptyReader with ReadableStream (empty) reader 
PASS ReadableStream (empty) reader: instances have the correct methods and properties 
PASS ReadableStream (empty) reader: locked should be true 
PASS ReadableStream (empty) reader: read() should never settle 
PASS ReadableStream (empty) reader: two read()s should both never settle 
PASS ReadableStream (empty) reader: read() should return distinct promises each time 
PASS ReadableStream (empty) reader: getReader() again on the stream should fail 
PASS ReadableStream (empty) reader: releasing the lock with pending read requests should throw but the read requests should stay pending 
PASS ReadableStream (empty) reader: releasing the lock should cause further read() calls to reject with a TypeError 
PASS ReadableStream (empty) reader: releasing the lock should cause closed calls to reject with a TypeError 
PASS ReadableStream (empty) reader: releasing the lock should cause locked to become false 
PASS ReadableStream (empty) reader: canceling via the reader should cause the reader to act closed 
PASS ReadableStream (empty) reader: canceling via the stream should fail 
PASS Running templatedRSClosed with ReadableStream (closed via call in start) 
PASS ReadableStream (closed via call in start): cancel() should return a distinct fulfilled promise each time 
PASS ReadableStream (closed via call in start): locked should be false 
PASS ReadableStream (closed via call in start): getReader() should be OK 
PASS ReadableStream (closed via call in start): should be able to acquire multiple readers if they are released in succession 
PASS ReadableStream (closed via call in start): should not be able to acquire a second reader if we don't release the first one 
PASS Running templatedRSClosedReader with ReadableStream reader (closed before getting reader) 
PASS ReadableStream reader (closed before getting reader): read() should fulfill with { value: undefined, done: true } 
PASS ReadableStream reader (closed before getting reader): read() multiple times should fulfill with { value: undefined, done: true } 
PASS ReadableStream reader (closed before getting reader): read() should work when used within another read() fulfill callback 
PASS ReadableStream reader (closed before getting reader): closed should fulfill with undefined 
PASS ReadableStream reader (closed before getting reader): releasing the lock should cause closed to reject and change identity 
PASS ReadableStream reader (closed before getting reader): cancel() should return a distinct fulfilled promise each time 
PASS Running templatedRSClosedReader with ReadableStream reader (closed after getting reader) 
PASS ReadableStream reader (closed after getting reader): read() should fulfill with { value: undefined, done: true } 
PASS ReadableStream reader (closed after getting reader): read() multiple times should fulfill with { value: undefined, done: true } 
PASS ReadableStream reader (closed after getting reader): read() should work when used within another read() fulfill callback 
PASS ReadableStream reader (closed after getting reader): closed should fulfill with undefined 
PASS ReadableStream reader (closed after getting reader): releasing the lock should cause closed to reject and change identity 
PASS ReadableStream reader (closed after getting reader): cancel() should return a distinct fulfilled promise each time 
PASS Running templatedRSClosed with ReadableStream (closed via cancel) 
PASS ReadableStream (closed via cancel): cancel() should return a distinct fulfilled promise each time 
PASS ReadableStream (closed via cancel): locked should be false 
PASS ReadableStream (closed via cancel): getReader() should be OK 
PASS ReadableStream (closed via cancel): should be able to acquire multiple readers if they are released in succession 
PASS ReadableStream (closed via cancel): should not be able to acquire a second reader if we don't release the first one 
PASS Running templatedRSClosedReader with ReadableStream reader (closed via cancel after getting reader) 
PASS ReadableStream reader (closed via cancel after getting reader): read() should fulfill with { value: undefined, done: true } 
PASS ReadableStream reader (closed via cancel after getting reader): read() multiple times should fulfill with { value: undefined, done: true } 
PASS ReadableStream reader (closed via cancel after getting reader): read() should work when used within another read() fulfill callback 
PASS ReadableStream reader (closed via cancel after getting reader): closed should fulfill with undefined 
PASS ReadableStream reader (closed via cancel after getting reader): releasing the lock should cause closed to reject and change identity 
PASS ReadableStream reader (closed via cancel after getting reader): cancel() should return a distinct fulfilled promise each time 
PASS Running templatedRSErrored with ReadableStream (errored via call in start) 
PASS ReadableStream (errored via call in start): getReader() should return a reader that acts errored 
PASS ReadableStream (errored via call in start): read() twice should give the error each time 
PASS ReadableStream (errored via call in start): locked should be false 
PASS Running templatedRSErroredSyncOnly with ReadableStream (errored via call in start) 
PASS ReadableStream (errored via call in start): should be able to obtain a second reader, with the correct closed promise 
PASS ReadableStream (errored via call in start): should not be able to obtain additional readers if we don't release the first lock 
PASS ReadableStream (errored via call in start): cancel() should return a distinct rejected promise each time 
PASS ReadableStream (errored via call in start): reader cancel() should return a distinct rejected promise each time 
PASS Running templatedRSErrored with ReadableStream (errored via returning a rejected promise in start) 
PASS ReadableStream (errored via returning a rejected promise in start): getReader() should return a reader that acts errored 
PASS ReadableStream (errored via returning a rejected promise in start): read() twice should give the error each time 
PASS ReadableStream (errored via returning a rejected promise in start): locked should be false 
PASS Running templatedRSErroredReader with ReadableStream (errored via returning a rejected promise in start) reader 
PASS ReadableStream (errored via returning a rejected promise in start) reader: closed should reject with the error 
PASS ReadableStream (errored via returning a rejected promise in start) reader: releasing the lock should cause closed to reject and change identity 
PASS ReadableStream (errored via returning a rejected promise in start) reader: read() should reject with the error 
PASS Running templatedRSErroredReader with ReadableStream reader (errored before getting reader) 
PASS ReadableStream reader (errored before getting reader): closed should reject with the error 
PASS ReadableStream reader (errored before getting reader): releasing the lock should cause closed to reject and change identity 
PASS ReadableStream reader (errored before getting reader): read() should reject with the error 
PASS Running templatedRSErroredReader with ReadableStream reader (errored after getting reader) 
PASS ReadableStream reader (errored after getting reader): closed should reject with the error 
PASS ReadableStream reader (errored after getting reader): releasing the lock should cause closed to reject and change identity 
PASS ReadableStream reader (errored after getting reader): read() should reject with the error 
PASS Running templatedRSTwoChunksOpenReader with ReadableStream (two chunks enqueued, still open) reader 
PASS ReadableStream (two chunks enqueued, still open) reader: calling read() twice without waiting will eventually give both chunks (sequential) 
PASS ReadableStream (two chunks enqueued, still open) reader: calling read() twice without waiting will eventually give both chunks (nested) 
PASS ReadableStream (two chunks enqueued, still open) reader: read() should return distinct promises each time 
PASS ReadableStream (two chunks enqueued, still open) reader: cancel() after a read() should still give that single read result 
PASS Running templatedRSTwoChunksClosedReader with ReadableStream (two chunks enqueued, then closed) reader 
PASS ReadableStream (two chunks enqueued, then closed) reader: third read(), without waiting, should give { value: undefined, done: true } (sequential) 
PASS ReadableStream (two chunks enqueued, then closed) reader: third read(), without waiting, should give { value: undefined, done: true } (nested) 
PASS ReadableStream (two chunks enqueued, then closed) reader: draining the stream via read() should cause the reader closed promise to fulfill, but locked stays true 
PASS ReadableStream (two chunks enqueued, then closed) reader: releasing the lock after the stream is closed should cause locked to become false 
PASS ReadableStream (two chunks enqueued, then closed) reader: releasing the lock should cause further read() calls to reject with a TypeError 
PASS ReadableStream (two chunks enqueued, then closed) reader: reader's closed property always returns the same promise 

