PASS Can get the ReadableStreamReader constructor indirectly PASS ReadableStreamReader constructor should get a ReadableStream object as argument FAIL ReadableStreamReader instances should have the correct list of properties assert_array_equals: lengths differ, expected 5 got 4 PASS ReadableStreamReader closed should always return the same promise object PASS Constructing a ReadableStreamReader directly should fail if the stream is already locked (via direct construction) PASS Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via direct construction) PASS Constructing a ReadableStreamReader directly should fail if the stream is already locked (via getReader) PASS Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via getReader) PASS Constructing a ReadableStreamReader directly should be OK if the stream is closed PASS Constructing a ReadableStreamReader directly should be OK if the stream is errored PASS Reading from a reader for an empty stream will wait until a chunk is available PASS cancel() on a reader releases the reader before calling through PASS closed should be fulfilled after stream is closed (.closed access before acquiring) PASS closed should be fulfilled after reader releases its lock (multiple stream locks) PASS Multiple readers can access the stream in sequence PASS Cannot use an already-released reader to unlock a stream again PASS cancel() on a released reader is a no-op and does not pass through PASS Getting a second reader after erroring the stream should succeed PASS Garbage-collecting a ReadableStreamReader should not unlock its stream