This is a testharness.js-based test.
PASS ReadableStream can be constructed with no errors
PASS ReadableStream can't be constructed with garbage
FAIL ReadableStream can't be constructed with an invalid type assert_throws_js: constructor should throw when the type is null function "() => new ReadableStream({ type: null })" threw object "RangeError: Failed to construct 'ReadableStream': Invalid type is specified" ("RangeError") expected instance of function "function TypeError() { [native code] }" ("TypeError")
PASS ReadableStream constructor should throw for non-function start arguments
PASS ReadableStream constructor will not tolerate initial garbage as cancel argument
PASS ReadableStream constructor will not tolerate initial garbage as pull argument
PASS ReadableStream start should be called with the proper thisArg
PASS ReadableStream start controller parameter should be extensible
PASS default ReadableStream getReader() should only accept mode:undefined
PASS ReadableStream should be able to call start method within prototype chain of its source
PASS ReadableStream start should be able to return a promise
PASS ReadableStream start should be able to return a promise and reject it
PASS ReadableStream should be able to enqueue different objects.
FAIL ReadableStream: if pull rejects, it should error the stream assert_true: expected true got false
PASS ReadableStream: should only call pull once upon starting the stream
PASS ReadableStream: should call pull when trying to read from a started, empty stream
PASS ReadableStream: should only call pull once on a non-empty stream read from before start fulfills
PASS ReadableStream: should only call pull once on a non-empty stream read from after start fulfills
PASS ReadableStream: should call pull in reaction to read()ing the last chunk, if not draining
PASS ReadableStream: should not call pull() in reaction to read()ing the last chunk, if draining
PASS ReadableStream: should not call pull until the previous pull call's promise fulfills
PASS ReadableStream: should pull after start, and after every read
PASS ReadableStream: should not call pull after start if the stream is now closed
PASS ReadableStream: should call pull after enqueueing from inside pull (with no read requests), if strategy allows
PASS ReadableStream pull should be able to close a stream.
PASS ReadableStream pull should be able to error a stream.
PASS ReadableStream pull should be able to error a stream and throw.
PASS ReadableStream: enqueue should throw when the stream is readable but draining
PASS ReadableStream: enqueue should throw when the stream is closed
PASS ReadableStream: should call underlying source methods as methods
PASS ReadableStream: desiredSize when closed
PASS ReadableStream: desiredSize when errored
PASS Subclassing ReadableStream should work
PASS ReadableStream strategies: the default strategy should give desiredSize of 1 to start, decreasing by 1 per enqueue
PASS ReadableStream strategies: the default strategy should continue giving desiredSize of 1 if the chunks are read immediately
PASS ReadableStream integration test: adapting a random push source
PASS ReadableStream integration test: adapting a sync pull source
PASS ReadableStream integration test: adapting an async pull source
Harness: the test ran to completion.

