Reject strings in ReadableStream.from - #59594
Community-TC (pull_request)
Verify that all tests affected by a pull request are stable when executed in firefox.
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-06-20T20:46:34.147Z
Resolved: 2026-06-20T20:50:32.167Z
Task Execution Time: 3 minutes, 58 seconds, 20 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: Apkuh7tVSdaE3fHAs0YMUw
RunId: 0
Artifacts
- public/logs/live_backing.log
- public/logs/live.log
- public/results/checkrun.md
WPT Command: python3 ./wpt run --channel=nightly --verify --verify-no-chaos-mode --verify-repeat-loop=0 --verify-repeat-restart=10 --github-checks-text-file=/home/test/artifacts/checkrun.md --affected base_head --log-mach-level=info --log-mach=- -y --no-pause --no-restart-on-unexpected --install-fonts --verify-log-full --no-headless --binary=/home/test/build/firefox/firefox firefox
[taskcluster 2026-06-20 20:46:34.211Z] Task ID: Apkuh7tVSdaE3fHAs0YMUw
[taskcluster 2026-06-20 20:46:34.211Z] Worker ID: 7796352946582275092
[taskcluster 2026-06-20 20:46:34.211Z] Worker Group: us-central1-a
[taskcluster 2026-06-20 20:46:34.211Z] Worker Node Type: projects/757942385826/machineTypes/n2-standard-4
[taskcluster 2026-06-20 20:46:34.211Z] Worker Pool: proj-wpt/ci
[taskcluster 2026-06-20 20:46:34.211Z] Worker Version: 46.1.0
[taskcluster 2026-06-20 20:46:34.211Z] Public IP: 34.69.73.200
[taskcluster 2026-06-20 20:46:34.211Z] Hostname: proj-wpt-ci-cai73op0sfyzunozqyjviw
[taskcluster 2026-06-20 20:46:35.170Z] === Task Starting ===
+ '[' '' ']'
+ '[' -d /etc/profile.d ']'
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/01-locale-fix.sh ']'
+ . /etc/profile.d/01-locale-fix.sh
+++ /usr/bin/locale-check C.UTF-8
++ eval
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/apps-bin-path.sh ']'
+ . /etc/profile.d/apps-bin-path.sh
...(3533 lines hidden)...
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically a symbol` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically a string` | FAIL | `assert_throws_js: from() should throw a TypeError function "() => ReadableStream.from(iterable)" did not throw` |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with a non-callable @@iterator method` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with a non-callable @@asyncIterator method` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with an @@iterator method returning a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with an @@asyncIterator method returning a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from re-throws errors from calling the @@iterator method` | PASS | |
2:29.29 INFO | `ReadableStream.from re-throws errors from calling the @@asyncIterator method` | PASS | |
2:29.29 INFO | `ReadableStream.from ignores @@iterator if @@asyncIterator exists` | PASS | |
2:29.29 INFO | `ReadableStream.from ignores a null @@asyncIterator` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts an empty iterable` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream errors when next() rejects` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream errors when next() throws synchronously` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream errors when next() returns a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream errors when next() fulfills with a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream stalls when next() never settles` | PASS | |
2:29.29 INFO | `ReadableStream.from: calls next() after first read()` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancelling the returned stream calls and awaits return()` | PASS | |
2:29.29 INFO | `ReadableStream.from: return() is not called when iterator completes normally` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() resolves when return() method is missing` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() rejects when return() is not a method` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() rejects when return() rejects` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() rejects when return() throws synchronously` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() rejects when return() fulfills with a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from: reader.read() inside next()` | PASS | |
2:29.29 INFO | `ReadableStream.from: reader.cancel() inside next()` | PASS | |
2:29.29 INFO | `ReadableStream.from: reader.cancel() inside return()` | PASS | |
2:29.29 INFO | `ReadableStream.from(array), push() to array while reading` | PASS | |
2:29.29 INFO
2:29.29 INFO ### /streams/readable-streams/from.any.html ###
2:29.29 INFO | Subtest | Results | Messages |
2:29.29 INFO |---------------------------------------------------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------|
2:29.29 INFO | | OK | |
2:29.29 INFO | `ReadableStream.from accepts an array of values` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts an array of promises` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts an array iterator` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts a Set` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts a Set iterator` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts a sync generator` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts an async generator` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts a sync iterable of values` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts a sync iterable of promises` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts a sync iterable with a function iterator` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts an async iterable` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts an async iterable with a function iterator` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts a ReadableStream` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts a ReadableStream async iterator` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically null` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically undefined` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically 0` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically NaN` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically true` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically {}` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically Object.create(null)` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically a function` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically a symbol` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically a string` | FAIL | `assert_throws_js: from() should throw a TypeError function "() => ReadableStream.from(iterable)" did not throw` |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with a non-callable @@iterator method` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with a non-callable @@asyncIterator method` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with an @@iterator method returning a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with an @@asyncIterator method returning a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from re-throws errors from calling the @@iterator method` | PASS | |
2:29.29 INFO | `ReadableStream.from re-throws errors from calling the @@asyncIterator method` | PASS | |
2:29.29 INFO | `ReadableStream.from ignores @@iterator if @@asyncIterator exists` | PASS | |
2:29.29 INFO | `ReadableStream.from ignores a null @@asyncIterator` | PASS | |
2:29.29 INFO | `ReadableStream.from accepts an empty iterable` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream errors when next() rejects` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream errors when next() throws synchronously` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream errors when next() returns a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream errors when next() fulfills with a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from: stream stalls when next() never settles` | PASS | |
2:29.29 INFO | `ReadableStream.from: calls next() after first read()` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancelling the returned stream calls and awaits return()` | PASS | |
2:29.29 INFO | `ReadableStream.from: return() is not called when iterator completes normally` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() resolves when return() method is missing` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() rejects when return() is not a method` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() rejects when return() rejects` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() rejects when return() throws synchronously` | PASS | |
2:29.29 INFO | `ReadableStream.from: cancel() rejects when return() fulfills with a non-object` | PASS | |
2:29.29 INFO | `ReadableStream.from: reader.read() inside next()` | PASS | |
2:29.29 INFO | `ReadableStream.from: reader.cancel() inside next()` | PASS | |
2:29.29 INFO | `ReadableStream.from: reader.cancel() inside return()` | PASS | |
2:29.30 INFO | `ReadableStream.from(array), push() to array while reading` | PASS | |
2:29.30 INFO
2:29.30 INFO ### /streams/readable-streams/from.any.serviceworker.html ###
2:29.30 INFO | Subtest | Results | Messages |
2:29.30 INFO |---------------------------------------------------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------|
2:29.30 INFO | | OK | |
2:29.30 INFO | `ReadableStream.from accepts an array of values` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an array of promises` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an array iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a Set` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a Set iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a sync generator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an async generator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a sync iterable of values` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a sync iterable of promises` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a sync iterable with a function iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an async iterable` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an async iterable with a function iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a ReadableStream` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a ReadableStream async iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically null` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically undefined` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically 0` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically NaN` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically true` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically {}` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically Object.create(null)` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically a function` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically a symbol` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically a string` | FAIL | `assert_throws_js: from() should throw a TypeError function "() => ReadableStream.from(iterable)" did not throw` |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with a non-callable @@iterator method` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with a non-callable @@asyncIterator method` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with an @@iterator method returning a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with an @@asyncIterator method returning a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from re-throws errors from calling the @@iterator method` | PASS | |
2:29.30 INFO | `ReadableStream.from re-throws errors from calling the @@asyncIterator method` | PASS | |
2:29.30 INFO | `ReadableStream.from ignores @@iterator if @@asyncIterator exists` | PASS | |
2:29.30 INFO | `ReadableStream.from ignores a null @@asyncIterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an empty iterable` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream errors when next() rejects` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream errors when next() throws synchronously` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream errors when next() returns a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream errors when next() fulfills with a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream stalls when next() never settles` | PASS | |
2:29.30 INFO | `ReadableStream.from: calls next() after first read()` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancelling the returned stream calls and awaits return()` | PASS | |
2:29.30 INFO | `ReadableStream.from: return() is not called when iterator completes normally` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() resolves when return() method is missing` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() rejects when return() is not a method` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() rejects when return() rejects` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() rejects when return() throws synchronously` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() rejects when return() fulfills with a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from: reader.read() inside next()` | PASS | |
2:29.30 INFO | `ReadableStream.from: reader.cancel() inside next()` | PASS | |
2:29.30 INFO | `ReadableStream.from: reader.cancel() inside return()` | PASS | |
2:29.30 INFO | `ReadableStream.from(array), push() to array while reading` | PASS | |
2:29.30 INFO
2:29.30 INFO ### /streams/readable-streams/from.any.sharedworker.html ###
2:29.30 INFO | Subtest | Results | Messages |
2:29.30 INFO |---------------------------------------------------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------|
2:29.30 INFO | | OK | |
2:29.30 INFO | `ReadableStream.from accepts an array of values` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an array of promises` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an array iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a Set` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a Set iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a sync generator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an async generator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a sync iterable of values` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a sync iterable of promises` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a sync iterable with a function iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an async iterable` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an async iterable with a function iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a ReadableStream` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts a ReadableStream async iterator` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically null` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically undefined` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically 0` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically NaN` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically true` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically {}` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically Object.create(null)` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically a function` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically a symbol` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically a string` | FAIL | `assert_throws_js: from() should throw a TypeError function "() => ReadableStream.from(iterable)" did not throw` |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with a non-callable @@iterator method` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with a non-callable @@asyncIterator method` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with an @@iterator method returning a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from throws on invalid iterables; specifically an object with an @@asyncIterator method returning a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from re-throws errors from calling the @@iterator method` | PASS | |
2:29.30 INFO | `ReadableStream.from re-throws errors from calling the @@asyncIterator method` | PASS | |
2:29.30 INFO | `ReadableStream.from ignores @@iterator if @@asyncIterator exists` | PASS | |
2:29.30 INFO | `ReadableStream.from ignores a null @@asyncIterator` | PASS | |
2:29.30 INFO | `ReadableStream.from accepts an empty iterable` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream errors when next() rejects` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream errors when next() throws synchronously` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream errors when next() returns a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream errors when next() fulfills with a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from: stream stalls when next() never settles` | PASS | |
2:29.30 INFO | `ReadableStream.from: calls next() after first read()` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancelling the returned stream calls and awaits return()` | PASS | |
2:29.30 INFO | `ReadableStream.from: return() is not called when iterator completes normally` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() resolves when return() method is missing` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() rejects when return() is not a method` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() rejects when return() rejects` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() rejects when return() throws synchronously` | PASS | |
2:29.30 INFO | `ReadableStream.from: cancel() rejects when return() fulfills with a non-object` | PASS | |
2:29.30 INFO | `ReadableStream.from: reader.read() inside next()` | PASS | |
2:29.30 INFO | `ReadableStream.from: reader.cancel() inside next()` | PASS | |
2:29.30 INFO | `ReadableStream.from: reader.cancel() inside return()` | PASS | |
2:29.30 INFO | `ReadableStream.from(array), push() to array while reading` | PASS | |
2:29.30 INFO
2:29.30 INFO ::: Running tests in a loop with restarts 10 times : PASS
2:29.30 INFO :::
2:29.30 INFO ::: Test verification PASS
2:29.30 INFO :::
[taskcluster 2026-06-20 20:50:30.905Z] === Task Finished ===
[taskcluster 2026-06-20 20:50:31.336Z] Successful task run with exit code: 0 completed in 237.127 seconds