Skip to content

Reject strings in ReadableStream.from - #59594

Merged
MattiasBuelens merged 1 commit into
web-platform-tests:masterfrom
MattiasBuelens:rs-from-reject-strings
Jul 13, 2026
Merged

Reject strings in ReadableStream.from#59594
MattiasBuelens merged 1 commit into
web-platform-tests:masterfrom
MattiasBuelens:rs-from-reject-strings

Reject strings in `ReadableStream.from`

245888f
Select commit
Loading
Failed to load commit list.
Community-TC Integration / wpt-firefox-nightly-stability succeeded Jun 20, 2026 in 3m 58s

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