WPT
wpt / streams / readable-streams / bad-underlying-sources.any.serviceworker.html
Spec: Streams ↗
Runs: Chrome 155.0.8039.0 (wpt@2b4dfe72c, 2026-09-03) | Firefox 157.0a1 (wpt@2b4dfe72c, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-56c61 (wpt@ed1909ed6, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 22/22 | 22/22 | 22/22 | 0/22 | 0/22 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Underlying source start: throwing getter | PASS | PASS | PASS | — | — | — |
| Underlying source start: throwing method | PASS | PASS | PASS | — | — | — |
| Underlying source: throwing pull getter (initial pull) | PASS | PASS | PASS | — | — | — |
| Underlying source: throwing pull method (initial pull) | PASS | PASS | PASS | — | — | — |
| Underlying source pull: throwing getter (second pull does not result in a second get) | PASS | PASS | PASS | — | — | — |
| Underlying source pull: throwing method (second pull) | PASS | PASS | PASS | — | — | — |
| Underlying source cancel: throwing getter | PASS | PASS | PASS | — | — | — |
| Underlying source cancel: throwing method | PASS | PASS | PASS | — | — | — |
| Underlying source: calling enqueue on an empty canceled stream should throw | PASS | PASS | PASS | — | — | — |
| Underlying source: calling enqueue on a non-empty canceled stream should throw | PASS | PASS | PASS | — | — | — |
| Underlying source: calling enqueue on a closed stream should throw | PASS | PASS | PASS | — | — | — |
| Underlying source: calling enqueue on an errored stream should throw | PASS | PASS | PASS | — | — | — |
| Underlying source: calling close twice on an empty stream should throw the second time | PASS | PASS | PASS | — | — | — |
| Underlying source: calling close twice on a non-empty stream should throw the second time | PASS | PASS | PASS | — | — | — |
| Underlying source: calling close on an empty canceled stream should throw | PASS | PASS | PASS | — | — | — |
| Underlying source: calling close on a non-empty canceled stream should throw | PASS | PASS | PASS | — | — | — |
| Underlying source: calling close after error should throw | PASS | PASS | PASS | — | — | — |
| Underlying source: calling error twice should not throw | PASS | PASS | PASS | — | — | — |
| Underlying source: calling error after close should not throw | PASS | PASS | PASS | — | — | — |
| Underlying source: calling error and returning a rejected promise from start should cause the stream to error with the first error | PASS | PASS | PASS | — | — | — |
| Underlying source: calling error and returning a rejected promise from pull should cause the stream to error with the first error | PASS | PASS | PASS | — | — | — |
| read should not error if it dequeues and pull() throws | PASS | PASS | PASS | — | — | — |