
PASS Creating a ReadableStream with an underlyingSource with type property set to 'bytes' should succeed 
PASS Calling error() with a this object different from ReadableByteStreamController should throw a TypeError 
PASS Calling close() with a this object different from ReadableByteStreamController should throw a TypeError 
PASS Calling enqueue() with a this object different from ReadableByteStreamController should throw a TypeError 
PASS Calling enqueue() when close has been requested but not yet performed should throw a TypeError 
PASS Calling enqueue() when stream is not readable should throw a TypeError 
PASS Calling enqueue() with a chunk that is not an object should trhow a TypeError 
PASS Calling enqueue() with a chunk that is not an ArrayBufferView should throw a TypeError 
PASS Calling error() after calling close() should throw a TypeError 
PASS Calling error() after calling error() should throw a TypeError 
PASS Calling close() after calling close() should throw a TypeError 
PASS Calling close() after calling error() should throw a TypeError 
PASS Calling read() on a reader associated to a controller that has been errored should fail with provided error 
PASS Calling read() on a reader associated to a controller that has been closed should not be rejected 
PASS Pending reading promise should be rejected if controller is errored (case where autoAllocateChunkSize is undefined) 
FAIL Pending reading promise should be rejected if controller is errored (case where autoAllocateChunkSize is specified) Can't find private variable: PrivateSymbol.Uint8Array
PASS Enqueuing a chunk, getting a reader and calling read should result in a promise resolved with said chunk 
PASS Getting a reader, calling read and enqueuing a chunk should result in the read promise being resolved with said chunk 
PASS Getting a reader, enqueuing a chunk and finally calling read should result in a promise resolved with said chunk 
PASS By default initial value of desiredSize should be 0 
FAIL Calling cancel() on a readable ReadableStream that is not locked to a reader should return a promise whose fulfillment handler returns undefined assert_object_equals: value is undefined, expected object
PASS Test that pull is not called when a new ReadableStream is created with default strategy parameters and a ReadableByteStreamController 
PASS Test that pull is called once when a new ReadableStream is created with a highWaterMark of 1 and a ReadableByteStreamController 
PASS For a ReadableStream created with a highWaterMark of 1 and a ReadableByteStreamController, calling cancel after pull has thrown an error should result in a promise rejected with the same error 
PASS Calling cancel after creating a ReadableStream with an underlyingByteStream's start function returning a rejected promise should result in a promise rejected with the same error 

