Click here to download the Blitz Browser!

WPT

wpt / streams / readable-streams / async-iterator.any.serviceworker.html

Spec: Streams ↗

Runs: Chrome 155.0.8041.0 (wpt@4a01b83e3, 2026-09-04) | Firefox 157.0a1 (wpt@e7122b73f, 2026-09-04) | Safari 251 preview (wpt@2c385f65e, 2026-09-04) | Ladybird 1.0-70fb3 (wpt@4a01b83e3, 2026-09-04) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)

View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi

ChromeFirefoxSafariLadybirdServoBlitz
Total40/4137/4141/410/410/41NOT RUN
SubtestChromeFirefoxSafariLadybirdServoBlitz
Async iterator instances should have the correct list of propertiesFAILFAILPASS
Async-iterating a push sourcePASSPASSPASS
Async-iterating a pull sourcePASSPASSPASS
Async-iterating a push source with undefined valuesPASSPASSPASS
Async-iterating a pull source with undefined valuesPASSPASSPASS
Async-iterating a pull source manuallyPASSPASSPASS
Async-iterating an errored stream throwsPASSPASSPASS
Async-iterating a closed stream never executes the loop body, but works finePASSPASSPASS
Async-iterating an empty but not closed/errored stream never executes the loop body and stalls the async functionPASSPASSPASS
Async-iterating a partially consumed streamPASSPASSPASS
Cancellation behavior when throwing inside loop body; preventCancel = falsePASSPASSPASS
Cancellation behavior when throwing inside loop body; preventCancel = truePASSPASSPASS
Cancellation behavior when breaking inside loop body; preventCancel = falsePASSPASSPASS
Cancellation behavior when breaking inside loop body; preventCancel = truePASSPASSPASS
Cancellation behavior when returning inside loop body; preventCancel = falsePASSPASSPASS
Cancellation behavior when returning inside loop body; preventCancel = truePASSPASSPASS
Cancellation behavior when manually calling return(); preventCancel = falsePASSPASSPASS
Cancellation behavior when manually calling return(); preventCancel = truePASSPASSPASS
next() rejects if the stream errorsPASSPASSPASS
return() does not rejects if the stream has not errored yetPASSPASSPASS
return() rejects if the stream has erroredPASSPASSPASS
next() that succeeds; next() that reports an error; next()PASSPASSPASS
next() that succeeds; next() that reports an error(); next() [no awaiting]PASSPASSPASS
next() that succeeds; next() that reports an error(); return()PASSPASSPASS
next() that succeeds; next() that reports an error(); return() [no awaiting]PASSPASSPASS
next() that succeeds; return()PASSPASSPASS
next() that succeeds; return() [no awaiting]PASSPASSPASS
return(); next()PASSPASSPASS
return(); next() [no awaiting]PASSFAILPASS
return(); next() with delayed cancel()PASSPASSPASS
return(); next() with delayed cancel() [no awaiting]PASSFAILPASS
return(); return()PASSPASSPASS
return(); return() [no awaiting]PASSFAILPASS
values() throws if there's already a lockPASSPASSPASS
Acquiring a reader after exhaustively async-iterating a streamPASSPASSPASS
Acquiring a reader after return()ing from a stream that errorsPASSPASSPASS
Acquiring a reader after partially async-iterating a streamPASSPASSPASS
Acquiring a reader and reading the remaining chunks after partially async-iterating a stream with preventCancel = truePASSPASSPASS
return() should unlock the stream synchronously when preventCancel = falsePASSPASSPASS
return() should unlock the stream synchronously when preventCancel = truePASSPASSPASS
close() while next() is pendingPASSPASSPASS