Harness status: OK

Found 41 tests

36 Pass
5 Fail
Pass	Async iterator instances should have the correct list of properties
Pass	Async-iterating a push source
Pass	Async-iterating a pull source
Pass	Async-iterating a push source with undefined values
Pass	Async-iterating a pull source with undefined values
Pass	Async-iterating a pull source manually
Pass	Async-iterating an errored stream throws
Pass	Async-iterating a closed stream never executes the loop body, but works fine
Pass	Async-iterating an empty but not closed/errored stream never executes the loop body and stalls the async function
Pass	Async-iterating a partially consumed stream
Fail	Cancellation behavior when throwing inside loop body; preventCancel = false
Pass	Cancellation behavior when throwing inside loop body; preventCancel = true
Fail	Cancellation behavior when breaking inside loop body; preventCancel = false
Pass	Cancellation behavior when breaking inside loop body; preventCancel = true
Fail	Cancellation behavior when returning inside loop body; preventCancel = false
Pass	Cancellation behavior when returning inside loop body; preventCancel = true
Pass	Cancellation behavior when manually calling return(); preventCancel = false
Pass	Cancellation behavior when manually calling return(); preventCancel = true
Pass	next() rejects if the stream errors
Pass	return() does not rejects if the stream has not errored yet
Pass	return() rejects if the stream has errored
Pass	next() that succeeds; next() that reports an error; next()
Pass	next() that succeeds; next() that reports an error(); next() [no awaiting]
Pass	next() that succeeds; next() that reports an error(); return()
Pass	next() that succeeds; next() that reports an error(); return() [no awaiting]
Pass	next() that succeeds; return()
Pass	next() that succeeds; return() [no awaiting]
Pass	return(); next()
Pass	return(); next() [no awaiting]
Pass	return(); next() with delayed cancel()
Pass	return(); next() with delayed cancel() [no awaiting]
Pass	return(); return()
Pass	return(); return() [no awaiting]
Pass	values() throws if there's already a lock
Pass	Acquiring a reader after exhaustively async-iterating a stream
Pass	Acquiring a reader after return()ing from a stream that errors
Fail	Acquiring a reader after partially async-iterating a stream
Fail	Acquiring a reader and reading the remaining chunks after partially async-iterating a stream with preventCancel = true
Pass	return() should unlock the stream synchronously when preventCancel = false
Pass	return() should unlock the stream synchronously when preventCancel = true
Pass	close() while next() is pending