Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove JS stream usage #29881

Draft
wants to merge 15 commits into
base: main
Choose a base branch
from
Draft

Remove JS stream usage #29881

wants to merge 15 commits into from

Conversation

jdm
Copy link
Member

@jdm jdm commented Jun 16, 2023

Rewrite readable stream code to avoid use of JS streams. Fixes #29088.

@jdm jdm changed the title No streams Remove JS stream usage Jun 16, 2023
@jdm
Copy link
Member Author

jdm commented Jun 16, 2023

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit 1748461 with merge f175fb0...

bors-servo added a commit that referenced this pull request Jun 16, 2023
Remove JS stream usage

Rewrite readable stream code to avoid use of JS streams. Fixes #29088.
@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@jdm
Copy link
Member Author

jdm commented Jun 16, 2023

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit 063a794 with merge 92f9b41...

bors-servo added a commit that referenced this pull request Jun 16, 2023
Remove JS stream usage

Rewrite readable stream code to avoid use of JS streams. Fixes #29088.
@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@jdm
Copy link
Member Author

jdm commented Jun 16, 2023

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit 759696b with merge 113ef95...

bors-servo added a commit that referenced this pull request Jun 16, 2023
Remove JS stream usage

Rewrite readable stream code to avoid use of JS streams. Fixes #29088.
@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@jdm
Copy link
Member Author

jdm commented Jun 16, 2023

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit d2fe7a3 with merge 3c3d8d0...

bors-servo added a commit that referenced this pull request Jun 16, 2023
Remove JS stream usage

Rewrite readable stream code to avoid use of JS streams. Fixes #29088.
@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5286601539):

Flaky unexpected result (19)
  • OK /_mozilla/css/stylesheet_media_queries.html (#17159)
    • FAIL [expected PASS] subtest: Media queries within stylesheets assert_equals: expected "rgb(0, 255, 0)" but got "rgb(255, 0, 0)"
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • FAIL [expected PASS] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='' assert_unreached: load should not be fired Reached unreachable code
  • OK /html/browsers/history/the-history-interface/traverse_the_history_5.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • TIMEOUT [expected CRASH] /html/browsers/windows/embedded-opener-remove-frame.html (#23867)
    • TIMEOUT [expected FAIL] subtest: opener of discarded auxiliary browsing context Test timed out
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/document-with-fragment-top.html (#28259)
    • TIMEOUT [expected FAIL] subtest: Autofocus elements in top-level browsing context's documents with "top" fragments should work. Test timed out
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected FAIL] subtest: Host element with delegatesFocus including no focusable descendants should be skipped Test timed out
    • NOTRUN [expected FAIL] subtest: Area element should support autofocus
  • OK /html/semantics/forms/form-submission-0/text-plain.window.html (#28687)
    • PASS [expected FAIL] subtest: text/plain: \r\n in name (normal form)
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: non-ASCII in filename (formdata event)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: character not in encoding in filename (formdata event)
  • OK /html/webappapis/animation-frames/callback-cross-realm-report-exception.html
    • FAIL [expected PASS] subtest: requestAnimationFrame() reports the exception from its callback in the callback's global object assert_array_equals: lengths differ, expected array ["frame1"] length 1, got [] length 0
  • OK /html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed.html (#29137)
    • FAIL [expected PASS] subtest: document.write in an imported module assert_true: onload must be called expected true got false
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • CRASH [expected OK] /url/failure.html (#28574)
  • TIMEOUT [expected OK] /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html (#27664)
  • CRASH [expected TIMEOUT] /webmessaging/broadcastchannel/cross-partition.https.tentative.html (#29058)
  • OK [expected TIMEOUT] /webmessaging/with-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • OK [expected TIMEOUT] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html (#29053)
    • PASS [expected TIMEOUT] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe
Stable unexpected results that are known to be intermittent (11)
  • OK /_mozilla/mozilla/task_queue_throttling.any.html (#22519)
    • FAIL [expected PASS] subtest: Throttling the performance timeline task queue. assert_true: expected true got false
  • OK /css/css-transforms/animation/transform-interpolation-004.html (#28335)
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (-1) should be [matrix3d(1, 0, 0, 0, 5.2998553125713235, 1, 0, 0, 0, 0, 1, 0, -8, 4, -12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.25) should be [matrix3d(1, 0, 0, 0, 0.621795827675797, 1, 0, 0, 0, 0, 1, 0, 2, -1, 3, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.75) should be [matrix3d(1, 0, 0, 0, -1.2494279662824135, 1, 0, 0, 0, 0, 1, 0, 6, -3, 9, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (1) should be [matrix3d(1, 0, 0, 0, -2.185039863261519, 1, 0, 0, 0, 0, 1, 0, 8, -4, 12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (2) should be [matrix3d(1, 0, 0, 0, -5.9274874511779405, 1, 0, 0, 0, 0, 1, 0, 16, -8, 24, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (-1) should be [matrix3d(1, 0, 0, 0, 5.2998553125713235, 1, 0, 0, 0, 0, 1, 0, -8, 4, -12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.25) should be [matrix3d(1, 0, 0, 0, 0.621795827675797, 1, 0, 0, 0, 0, 1, 0, 2, -1, 3, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.75) should be [matrix3d(1, 0, 0, 0, -1.2494279662824135, 1, 0, 0, 0, 0, 1, 0, 6, -3, 9, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (1) should be [matrix3d(1, 0, 0, 0, -2.185039863261519, 1, 0, 0, 0, 0, 1, 0, 8, -4, 12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (2) should be [matrix3d(1, 0, 0, 0, -5.9274874511779405, 1, 0, 0, 0, 0, 1, 0, 16, -8, 24, 1)]
    • And 56 more unexpected results...
  • OK /fetch/local-network-access/worker-blob-fetch.window.html (#29602)
    • FAIL [expected PASS] subtest: private to private: success. assert_equals: fetch error expected (undefined) undefined but got (string) "unknown error"
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • PASS [expected FAIL] subtest: Cross-origin navigation started from unload handler must be ignored
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • FAIL [expected PASS] subtest: Same-origin navigation started from unload handler must be ignored assert_equals: expected "?pass" but got "?fail"
  • OK /html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html (#23849)
    • FAIL [expected PASS] subtest: The document for a standalone media file should have one child in the body. assert_equals: expected "image/png" but got "text/html"
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • PASS [expected FAIL] subtest: Check that rel=noopener with target=_self does a normal load
  • TIMEOUT [expected ERROR] /resource-timing/content-type-parsing.html (#29131)
  • OK [expected ERROR] /workers/constructors/Worker/Worker-constructor.html (#22991)
  • TIMEOUT [expected OK] /xhr/send-timeout-events.htm (#26879)
Stable unexpected results (84)
  • OK /FileAPI/Blob-methods-from-detached-frame.html
    • FAIL [expected PASS] subtest: slice() promise_test: Unhandled rejection with value: object "TypeError: slicedBlob.stream().getReader is not a function"
    • FAIL [expected PASS] subtest: stream() promise_test: Unhandled rejection with value: object "TypeError: stream.call(...).getReader is not a function"
  • OK /FileAPI/blob/Blob-stream.any.html
    • FAIL [expected PASS] subtest: Blob.stream() assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() empty Blob assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() non-unicode input assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() garbage collection of blob shouldn't break streamconsumption assert_true: expected true got false
  • OK /FileAPI/blob/Blob-stream.any.worker.html
    • FAIL [expected PASS] subtest: Blob.stream() assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() empty Blob assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() non-unicode input assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() garbage collection of blob shouldn't break streamconsumption assert_true: expected true got false
  • OK /fetch/api/basic/request-upload.any.html
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing String assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing null assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing number assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing ArrayBuffer assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing Blob assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK /fetch/api/basic/request-upload.any.worker.html
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing String assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing null assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing number assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing ArrayBuffer assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing Blob assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK [expected TIMEOUT] /fetch/api/basic/request-upload.h2.any.html
    • FAIL [expected TIMEOUT] subtest: Fetch with POST with empty ReadableStream assert_equals: expected "" but got "[object ReadableStream]"
    • FAIL [expected NOTRUN] subtest: Fetch with POST with ReadableStream assert_equals: expected "Test" but got "[object ReadableStream]"
    • PASS [expected NOTRUN] subtest: Fetch with POST with ReadableStream on 421 response should return the response and not retry.
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream assert_equals: Request should not have a content-type set expected (object) null but got (string) "text/plain;charset=UTF-8"
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream, using request object assert_equals: Request should not have a content-type set expected (object) null but got (string) "text/plain;charset=UTF-8"
    • PASS [expected NOTRUN] subtest: Synchronous feature detect fails if feature unsupported
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a String assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing null assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a number assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload should fail on a 401 response assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK [expected TIMEOUT] /fetch/api/basic/request-upload.h2.any.worker.html
    • FAIL [expected TIMEOUT] subtest: Fetch with POST with empty ReadableStream assert_equals: expected "" but got "[object ReadableStream]"
    • FAIL [expected NOTRUN] subtest: Fetch with POST with ReadableStream assert_equals: expected "Test" but got "[object ReadableStream]"
    • PASS [expected NOTRUN] subtest: Fetch with POST with ReadableStream on 421 response should return the response and not retry.
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream assert_equals: Request should not have a content-type set expected (object) null but got (string) "text/plain;charset=UTF-8"
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream, using request object assert_equals: Request should not have a content-type set expected (object) null but got (string) "text/plain;charset=UTF-8"
    • PASS [expected NOTRUN] subtest: Synchronous feature detect fails if feature unsupported
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a String assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing null assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a number assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload should fail on a 401 response assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK /fetch/api/basic/stream-response.any.html
    • FAIL [expected PASS] subtest: Stream response's body when content-type is present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Stream response's body when content-type is not present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
  • OK /fetch/api/basic/stream-response.any.worker.html
    • FAIL [expected PASS] subtest: Stream response's body when content-type is present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Stream response's body when content-type is not present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
  • TIMEOUT [expected OK] /fetch/api/basic/stream-safe-creation.any.html
    • TIMEOUT [expected PASS] subtest: throwing Object.prototype.start accessor should not affect stream creation by 'consumeEmptyResponse' Test timed out
    • NOTRUN [expected PASS] subtest: Object.prototype.start accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: throwing Object.prototype.type accessor should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: Object.prototype.type accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: throwing Object.prototype.size accessor should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: Object.prototype.size accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: Object.prototype.start function which errors the stream should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: throwing Object.prototype.start accessor should not affect stream creation by 'consumeNonEmptyResponse'
    • And 26 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/basic/stream-safe-creation.any.worker.html
    • TIMEOUT [expected PASS] subtest: throwing Object.prototype.start accessor should not affect stream creation by 'consumeEmptyResponse' Test timed out
    • NOTRUN [expected PASS] subtest: Object.prototype.start accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: throwing Object.prototype.type accessor should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: Object.prototype.type accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: throwing Object.prototype.size accessor should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: Object.prototype.size accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: Object.prototype.start function which errors the stream should not affect stream creation by 'consumeEmptyResponse'
    • NOTRUN [expected PASS] subtest: throwing Object.prototype.start accessor should not affect stream creation by 'consumeNonEmptyResponse'
    • And 26 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/basic/text-utf8.any.html
    • TIMEOUT [expected FAIL] subtest: UTF-8 with BOM with Request.text() Test timed out
    • NOTRUN [expected FAIL] subtest: UTF-8 with BOM with Response.text()
    • NOTRUN [expected FAIL] subtest: UTF-8 with BOM with fetched data (UTF-8 charset)
    • NOTRUN [expected FAIL] subtest: UTF-8 with BOM with fetched data (UTF-16 charset)
    • NOTRUN [expected PASS] subtest: UTF-8 with BOM (Response object)
    • NOTRUN [expected PASS] subtest: UTF-8 with BOM (Request object)
    • NOTRUN [expected PASS] subtest: UTF-8 without BOM with Request.text()
    • NOTRUN [expected PASS] subtest: UTF-8 without BOM with Response.text()
    • NOTRUN [expected PASS] subtest: UTF-8 without BOM with fetched data (UTF-8 charset)
    • NOTRUN [expected PASS] subtest: UTF-8 without BOM with fetched data (UTF-16 charset)
    • And 20 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/basic/text-utf8.any.worker.html
    • TIMEOUT [expected FAIL] subtest: UTF-8 with BOM with Request.text() Test timed out
    • NOTRUN [expected FAIL] subtest: UTF-8 with BOM with Response.text()
    • NOTRUN [expected FAIL] subtest: UTF-8 with BOM with fetched data (UTF-8 charset)
    • NOTRUN [expected FAIL] subtest: UTF-8 with BOM with fetched data (UTF-16 charset)
    • NOTRUN [expected PASS] subtest: UTF-8 with BOM (Response object)
    • NOTRUN [expected PASS] subtest: UTF-8 with BOM (Request object)
    • NOTRUN [expected PASS] subtest: UTF-8 without BOM with Request.text()
    • NOTRUN [expected PASS] subtest: UTF-8 without BOM with Response.text()
    • NOTRUN [expected PASS] subtest: UTF-8 without BOM with fetched data (UTF-8 charset)
    • NOTRUN [expected PASS] subtest: UTF-8 without BOM with fetched data (UTF-16 charset)
    • And 20 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/body/formdata.any.html
    • TIMEOUT [expected FAIL] subtest: Consume empty response.formData() as FormData Test timed out
    • NOTRUN [expected FAIL] subtest: Consume empty request.formData() as FormData
  • TIMEOUT [expected OK] /fetch/api/body/formdata.any.worker.html
    • TIMEOUT [expected FAIL] subtest: Consume empty response.formData() as FormData Test timed out
    • NOTRUN [expected FAIL] subtest: Consume empty request.formData() as FormData
  • TIMEOUT [expected OK] /fetch/api/body/mime-type.any.html
    • TIMEOUT [expected PASS] subtest: Request: overriding explicit Content-Type Test timed out
    • NOTRUN [expected PASS] subtest: Response: overriding explicit Content-Type
    • NOTRUN [expected PASS] subtest: Request: removing implicit Content-Type
    • NOTRUN [expected PASS] subtest: Response: removing implicit Content-Type
    • NOTRUN [expected PASS] subtest: Request: setting missing Content-Type
    • NOTRUN [expected PASS] subtest: Response: setting missing Content-Type
    • NOTRUN [expected PASS] subtest: Request: MIME type for Blob from empty body
    • NOTRUN [expected PASS] subtest: Response: MIME type for Blob from empty body
    • NOTRUN [expected PASS] subtest: Request: MIME type for Blob from empty body with Content-Type
    • NOTRUN [expected PASS] subtest: Response: MIME type for Blob from empty body with Content-Type
    • And 10 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/body/mime-type.any.worker.html
    • TIMEOUT [expected PASS] subtest: Request: overriding explicit Content-Type Test timed out
    • NOTRUN [expected PASS] subtest: Response: overriding explicit Content-Type
    • NOTRUN [expected PASS] subtest: Request: removing implicit Content-Type
    • NOTRUN [expected PASS] subtest: Response: removing implicit Content-Type
    • NOTRUN [expected PASS] subtest: Request: setting missing Content-Type
    • NOTRUN [expected PASS] subtest: Response: setting missing Content-Type
    • NOTRUN [expected PASS] subtest: Request: MIME type for Blob from empty body
    • NOTRUN [expected PASS] subtest: Response: MIME type for Blob from empty body
    • NOTRUN [expected PASS] subtest: Request: MIME type for Blob from empty body with Content-Type
    • NOTRUN [expected PASS] subtest: Response: MIME type for Blob from empty body with Content-Type
    • And 10 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/cors/cors-basic.any.html
    • TIMEOUT [expected PASS] subtest: Same domain different port [no-cors mode] Test timed out
    • NOTRUN [expected PASS] subtest: Same domain different port [server forbid CORS]
    • NOTRUN [expected PASS] subtest: Same domain different port [cors mode]
    • NOTRUN [expected PASS] subtest: Same domain different protocol different port [no-cors mode]
    • NOTRUN [expected PASS] subtest: Same domain different protocol different port [server forbid CORS]
    • NOTRUN [expected PASS] subtest: Same domain different protocol different port [cors mode]
    • NOTRUN [expected PASS] subtest: Cross domain basic usage [no-cors mode]
    • NOTRUN [expected PASS] subtest: Cross domain basic usage [server forbid CORS]
    • NOTRUN [expected PASS] subtest: Cross domain basic usage [cors mode]
    • NOTRUN [expected PASS] subtest: Cross domain different port [no-cors mode]
    • And 5 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/cors/cors-basic.any.worker.html
    • TIMEOUT [expected PASS] subtest: Same domain different port [no-cors mode] Test timed out
    • NOTRUN [expected PASS] subtest: Same domain different port [server forbid CORS]
    • NOTRUN [expected PASS] subtest: Same domain different port [cors mode]
    • NOTRUN [expected PASS] subtest: Same domain different protocol different port [no-cors mode]
    • NOTRUN [expected PASS] subtest: Same domain different protocol different port [server forbid CORS]
    • NOTRUN [expected PASS] subtest: Same domain different protocol different port [cors mode]
    • NOTRUN [expected PASS] subtest: Cross domain basic usage [no-cors mode]
    • NOTRUN [expected PASS] subtest: Cross domain basic usage [server forbid CORS]
    • NOTRUN [expected PASS] subtest: Cross domain basic usage [cors mode]
    • NOTRUN [expected PASS] subtest: Cross domain different port [no-cors mode]
    • And 5 more unexpected results...
  • OK /fetch/api/idlharness.any.html
    • FAIL [expected PASS] subtest: Response interface: new Response() must inherit property "body" with the proper type assert_true: wrong type: not a ReadableStream expected true got false
  • OK /fetch/api/idlharness.any.worker.html
    • FAIL [expected PASS] subtest: Response interface: new Response() must inherit property "body" with the proper type assert_true: wrong type: not a ReadableStream expected true got false
  • OK /fetch/api/redirect/redirect-upload.h2.any.html
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 301 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 302 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 307 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 308 assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK /fetch/api/redirect/redirect-upload.h2.any.worker.html
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 301 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 302 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 307 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 308 assert_unreached: Should have rejected: undefined Reached unreachable code
  • TIMEOUT [expected OK] /fetch/api/request/request-consume-empty.any.html
    • TIMEOUT [expected PASS] subtest: Consume request's body as text Test timed out
    • NOTRUN [expected PASS] subtest: Consume request's body as blob
    • NOTRUN [expected PASS] subtest: Consume request's body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume request's body as json (error case)
    • NOTRUN [expected PASS] subtest: Consume request's body as formData with correct multipart type (error case)
    • NOTRUN [expected PASS] subtest: Consume request's body as formData with correct urlencoded type
    • NOTRUN [expected PASS] subtest: Consume request's body as formData without correct type (error case)
    • NOTRUN [expected PASS] subtest: Consume empty blob request body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume empty text request body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume empty blob request body as text
    • And 4 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/request/request-consume-empty.any.worker.html
    • TIMEOUT [expected PASS] subtest: Consume request's body as text Test timed out
    • NOTRUN [expected PASS] subtest: Consume request's body as blob
    • NOTRUN [expected PASS] subtest: Consume request's body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume request's body as json (error case)
    • NOTRUN [expected PASS] subtest: Consume request's body as formData with correct multipart type (error case)
    • NOTRUN [expected PASS] subtest: Consume request's body as formData with correct urlencoded type
    • NOTRUN [expected PASS] subtest: Consume request's body as formData without correct type (error case)
    • NOTRUN [expected PASS] subtest: Consume empty blob request body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume empty text request body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume empty blob request body as text
    • And 4 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/request/request-consume.any.html
    • TIMEOUT [expected PASS] subtest: Consume String request's body as text Test timed out
    • NOTRUN [expected PASS] subtest: Consume String request's body as blob
    • NOTRUN [expected PASS] subtest: Consume String request's body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume String request's body as JSON
    • NOTRUN [expected PASS] subtest: Consume ArrayBuffer request's body as text
    • NOTRUN [expected PASS] subtest: Consume ArrayBuffer request's body as blob
    • NOTRUN [expected PASS] subtest: Consume ArrayBuffer request's body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume ArrayBuffer request's body as JSON
    • NOTRUN [expected PASS] subtest: Consume Uint8Array request's body as text
    • NOTRUN [expected PASS] subtest: Consume Uint8Array request's body as blob
    • And 28 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/request/request-consume.any.worker.html
    • TIMEOUT [expected PASS] subtest: Consume String request's body as text Test timed out
    • NOTRUN [expected PASS] subtest: Consume String request's body as blob
    • NOTRUN [expected PASS] subtest: Consume String request's body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume String request's body as JSON
    • NOTRUN [expected PASS] subtest: Consume ArrayBuffer request's body as text
    • NOTRUN [expected PASS] subtest: Consume ArrayBuffer request's body as blob
    • NOTRUN [expected PASS] subtest: Consume ArrayBuffer request's body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume ArrayBuffer request's body as JSON
    • NOTRUN [expected PASS] subtest: Consume Uint8Array request's body as text
    • NOTRUN [expected PASS] subtest: Consume Uint8Array request's body as blob
    • And 28 more unexpected results...
  • OK /fetch/api/request/request-disturbed.any.html
    • FAIL [expected PASS] subtest: Request's body: initial state assert_true: non-null body type expected true got false
    • FAIL [expected PASS] subtest: Check cloning a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
    • FAIL [expected PASS] subtest: Check creating a new request from a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
    • FAIL [expected PASS] subtest: Check consuming a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
  • OK /fetch/api/request/request-disturbed.any.worker.html
    • FAIL [expected PASS] subtest: Request's body: initial state assert_true: non-null body type expected true got false
    • FAIL [expected PASS] subtest: Check cloning a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
    • FAIL [expected PASS] subtest: Check creating a new request from a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
    • FAIL [expected PASS] subtest: Check consuming a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
  • TIMEOUT [expected OK] /fetch/api/request/request-headers.any.html
    • TIMEOUT [expected PASS] subtest: Testing empty Request Content-Type header Test timed out
  • TIMEOUT [expected OK] /fetch/api/request/request-headers.any.worker.html
    • TIMEOUT [expected PASS] subtest: Testing empty Request Content-Type header Test timed out
  • TIMEOUT [expected OK] /fetch/api/request/request-init-002.any.html
    • TIMEOUT [expected PASS] subtest: Initialize Request's body with "undefined", undefined Test timed out
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "null", null
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "[object Blob]", application/octet-binary
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "[object FormData]", multipart/form-data
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "This is a USVString", text/plain;charset=UTF-8
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "hi!", text/plain;charset=UTF-8
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "name=value", application/x-www-form-urlencoded;charset=UTF-8
  • TIMEOUT [expected OK] /fetch/api/request/request-init-002.any.worker.html
    • TIMEOUT [expected PASS] subtest: Initialize Request's body with "undefined", undefined Test timed out
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "null", null
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "[object Blob]", application/octet-binary
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "[object FormData]", multipart/form-data
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "This is a USVString", text/plain;charset=UTF-8
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "hi!", text/plain;charset=UTF-8
    • NOTRUN [expected PASS] subtest: Initialize Request's body with "name=value", application/x-www-form-urlencoded;charset=UTF-8
  • TIMEOUT [expected OK] /fetch/api/request/request-init-contenttype.any.html
    • TIMEOUT [expected FAIL] subtest: Default Content-Type for Request with FormData body Test timed out
    • FAIL [expected PASS] subtest: Default Content-Type for Request with ReadableStream body assert_equals: expected (object) null but got (string) "text/plain;charset=UTF-8"
  • TIMEOUT [expected OK] /fetch/api/request/request-init-contenttype.any.worker.html
    • TIMEOUT [expected FAIL] subtest: Default Content-Type for Request with FormData body Test timed out
    • FAIL [expected PASS] subtest: Default Content-Type for Request with ReadableStream body assert_equals: expected (object) null but got (string) "text/plain;charset=UTF-8"
  • OK /fetch/api/request/request-init-stream.any.html
    • FAIL [expected PASS] subtest: Constructing a Request with a stream holds the original object. assert_equals: expected object "[object ReadableStream]" but got object "[object ReadableStream]"
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which getReader() is called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() is called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() and releaseLock() are called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
  • OK /fetch/api/request/request-init-stream.any.worker.html
    • FAIL [expected PASS] subtest: Constructing a Request with a stream holds the original object. assert_equals: expected object "[object ReadableStream]" but got object "[object ReadableStream]"
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which getReader() is called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() is called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() and releaseLock() are called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
  • OK /fetch/api/response/response-body-read-task-handling.html
    • FAIL [expected PASS] subtest: reading from a body stream should occur in a microtask scope promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
  • OK /fetch/api/response/response-cancel-stream.any.html
    • FAIL [expected PASS] subtest: Cancelling a starting blob Response stream (new Response(...)).body.cancel is not a function
    • FAIL [expected PASS] subtest: Cancelling a loading blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a closed blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a starting Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Cancelling a loading Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Cancelling a closed Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Accessing .body after canceling it promise_test: Unhandled rejection with value: object "TypeError: body.cancel is not a function"
  • OK /fetch/api/response/response-cancel-stream.any.worker.html
    • FAIL [expected PASS] subtest: Cancelling a starting blob Response stream (new Response(...)).body.cancel is not a function
    • FAIL [expected PASS] subtest: Cancelling a loading blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a closed blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a starting Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Cancelling a loading Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Cancelling a closed Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Accessing .body after canceling it promise_test: Unhandled rejection with value: object "TypeError: body.cancel is not a function"
  • TIMEOUT [expected OK] /fetch/api/response/response-clone.any.html
    • FAIL [expected PASS] subtest: Check orginal response's body after cloning response.body.getReader is not a function
    • TIMEOUT [expected PASS] subtest: Cannot clone a disturbed response Test timed out
    • NOTRUN [expected FAIL] subtest: Cloned responses should provide the same data
    • NOTRUN [expected FAIL] subtest: Cancelling stream should not affect cloned one
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk)
    • And 7 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/response/response-clone.any.worker.html
    • FAIL [expected PASS] subtest: Check orginal response's body after cloning response.body.getReader is not a function
    • TIMEOUT [expected PASS] subtest: Cannot clone a disturbed response Test timed out
    • NOTRUN [expected FAIL] subtest: Cloned responses should provide the same data
    • NOTRUN [expected FAIL] subtest: Cancelling stream should not affect cloned one
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk)
    • NOTRUN [expected FAIL] subtest: Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk)
    • And 7 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/response/response-consume-empty.any.html
    • TIMEOUT [expected FAIL] subtest: Consume response's body as text Test timed out
    • NOTRUN [expected FAIL] subtest: Consume response's body as blob
    • NOTRUN [expected FAIL] subtest: Consume response's body as arrayBuffer
    • NOTRUN [expected FAIL] subtest: Consume response's body as json (error case)
    • NOTRUN [expected FAIL] subtest: Consume response's body as formData with correct multipart type (error case)
    • NOTRUN [expected FAIL] subtest: Consume response's body as formData with correct urlencoded type
    • NOTRUN [expected FAIL] subtest: Consume response's body as formData without correct type (error case)
    • NOTRUN [expected PASS] subtest: Consume empty blob response body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume empty text response body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume empty blob response body as text
    • And 4 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/response/response-consume-empty.any.worker.html
    • TIMEOUT [expected FAIL] subtest: Consume response's body as text Test timed out
    • NOTRUN [expected FAIL] subtest: Consume response's body as blob
    • NOTRUN [expected FAIL] subtest: Consume response's body as arrayBuffer
    • NOTRUN [expected FAIL] subtest: Consume response's body as json (error case)
    • NOTRUN [expected FAIL] subtest: Consume response's body as formData with correct multipart type (error case)
    • NOTRUN [expected FAIL] subtest: Consume response's body as formData with correct urlencoded type
    • NOTRUN [expected FAIL] subtest: Consume response's body as formData without correct type (error case)
    • NOTRUN [expected PASS] subtest: Consume empty blob response body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume empty text response body as arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume empty blob response body as text
    • And 4 more unexpected results...
  • OK /fetch/api/response/response-consume-stream.any.html
    • FAIL [expected PASS] subtest: Read empty text response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read empty blob response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read blob response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read text response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read URLSearchParams response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read array buffer response's body as readableStream with mode=undefined (new Response(...)).body.getReader is not a function
    • FAIL [expected PASS] subtest: Read form data response's body as readableStream with mode=undefined response.body.getReader is not a function
  • OK /fetch/api/response/response-consume-stream.any.worker.html
    • FAIL [expected PASS] subtest: Read empty text response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read empty blob response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read blob response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read text response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read URLSearchParams response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read array buffer response's body as readableStream with mode=undefined (new Response(...)).body.getReader is not a function
    • FAIL [expected PASS] subtest: Read form data response's body as readableStream with mode=undefined response.body.getReader is not a function
  • TIMEOUT [expected OK] /fetch/api/response/response-consume.html
    • TIMEOUT [expected PASS] subtest: Consume response's body: from text to text Test timed out
    • NOTRUN [expected PASS] subtest: Consume response's body: from text to blob
    • NOTRUN [expected PASS] subtest: Consume response's body: from text to arrayBuffer
    • NOTRUN [expected PASS] subtest: Consume response's body: from text to json
    • NOTRUN [expected FAIL] subtest: Consume response's body: from text with correct multipart type to formData
    • NOTRUN [expected FAIL] subtest: Consume response's body: from text with correct multipart type to formData with BOM
    • NOTRUN [expected PASS] subtest: Consume response's body: from text without correct multipart type to formData (error case)
    • NOTRUN [expected PASS] subtest: Consume response's body: from text with correct urlencoded type to formData
    • NOTRUN [expected PASS] subtest: Consume response's body: from text without correct urlencoded type to formData (error case)
    • NOTRUN [expected PASS] subtest: Consume response's body: from blob to blob
    • And 30 more unexpected results...
  • TIMEOUT [expected OK] /fetch/api/response/response-error-from-stream.any.html
    • TIMEOUT [expected PASS] subtest: ReadableStream start() Error propagates to Response.arrayBuffer() Promise Test timed out
    • NOTRUN [expected PASS] subtest: ReadableStream start() Error propagates to Response.blob() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream start() Error propagates to Response.formData() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream start() Error propagates to Response.json() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream start() Error propagates to Response.text() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.arrayBuffer() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.blob() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.formData() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.json() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.text() Promise
  • TIMEOUT [expected OK] /fetch/api/response/response-error-from-stream.any.worker.html
    • TIMEOUT [expected PASS] subtest: ReadableStream start() Error propagates to Response.arrayBuffer() Promise Test timed out
    • NOTRUN [expected PASS] subtest: ReadableStream start() Error propagates to Response.blob() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream start() Error propagates to Response.formData() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream start() Error propagates to Response.json() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream start() Error propagates to Response.text() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.arrayBuffer() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.blob() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.formData() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.json() Promise
    • NOTRUN [expected PASS] subtest: ReadableStream pull() Error propagates to Response.text() Promise
  • OK /fetch/api/response/response-from-stream.any.html
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which getReader() is called assert_throws_js: function "() => new Response(stream)" did not throw
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() is called assert_throws_js: function "() => new Response(stream)" did not throw
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() and releaseLock() are called assert_throws_js: function "() => new Response(stream)" did not throw
  • OK /fetch/api/response/response-from-stream.any.worker.html
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which getReader() is called assert_throws_js: function "() => new Response(stream)" did not throw
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() is called assert_throws_js: function "() => new Response(stream)" did not throw
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() and releaseLock() are called assert_throws_js: function "() => new Response(stream)" did not throw
  • TIMEOUT [expected OK] /fetch/api/response/response-init-002.any.html
    • TIMEOUT [expected PASS] subtest: Initialize Response's body with application/octet-binary Test timed out
    • NOTRUN [expected PASS] subtest: Initialize Response's body with multipart/form-data
    • NOTRUN [expected PASS] subtest: Initialize Response's body with application/x-www-form-urlencoded;charset=UTF-8
    • NOTRUN [expected PASS] subtest: Initialize Response's body with text/plain;charset=UTF-8
    • NOTRUN [expected PASS] subtest: Read Response's body as readableStream
    • NOTRUN [expected PASS] subtest: Testing empty Response Content-Type header
  • TIMEOUT [expected OK] /fetch/api/response/response-init-002.any.worker.html
    • TIMEOUT [expected PASS] subtest: Initialize Response's body with application/octet-binary Test timed out
    • NOTRUN [expected PASS] subtest: Initialize Response's body with multipart/form-data
    • NOTRUN [expected PASS] subtest: Initialize Response's body with application/x-www-form-urlencoded;charset=UTF-8
    • NOTRUN [expected PASS] subtest: Initialize Response's body with text/plain;charset=UTF-8
    • NOTRUN [expected PASS] subtest: Read Response's body as readableStream
    • NOTRUN [expected PASS] subtest: Testing empty Response Content-Type header
  • TIMEOUT [expected OK] /fetch/api/response/response-init-contenttype.any.html
    • TIMEOUT [expected FAIL] subtest: Default Content-Type for Response with FormData body Test timed out
    • FAIL [expected PASS] subtest: Default Content-Type for Response with ReadableStream body assert_equals: expected (object) null but got (string) "text/plain;charset=UTF-8"
  • TIMEOUT [expected OK] /fetch/api/response/response-init-contenttype.any.worker.html
    • TIMEOUT [expected FAIL] subtest: Default Content-Type for Response with FormData body Test timed out
    • FAIL [expected PASS] subtest: Default Content-Type for Response with ReadableStream body assert_equals: expected (object) null but got (string) "text/plain;charset=UTF-8"
  • TIMEOUT [expected OK] /fetch/api/response/response-stream-bad-chunk.any.html
    • TIMEOUT [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.arrayBuffer() causes TypeError Test timed out
    • NOTRUN [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.blob() causes TypeError
    • NOTRUN [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.formData() causes TypeError
    • NOTRUN [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.json() causes TypeError
    • NOTRUN [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.text() causes TypeError
  • TIMEOUT [expected OK] /fetch/api/response/response-stream-bad-chunk.any.worker.html
    • TIMEOUT [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.arrayBuffer() causes TypeError Test timed out
    • NOTRUN [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.blob() causes TypeError
    • NOTRUN [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.formData() causes TypeError
    • NOTRUN [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.json() causes TypeError
    • NOTRUN [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.text() causes TypeError
  • OK /fetch/api/response/response-stream-disturbed-1.any.html
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-1.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-2.any.html
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-2.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-3.any.html
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-3.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-4.any.html
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-4.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-6.any.html
    • FAIL [expected PASS] subtest: A non-closed stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: A non-closed stream on which cancel() has been called assert_true: After calling stream.cancel() expected true got false
    • FAIL [expected PASS] subtest: A closed stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: An errored stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: An errored stream on which cancel() has been called assert_true: After calling stream.cancel() expected true got false
  • OK /fetch/api/response/response-stream-disturbed-6.any.worker.html
    • FAIL [expected PASS] subtest: A non-closed stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: A non-closed stream on which cancel() has been called assert_true: After calling stream.cancel() expected true got false
    • FAIL [expected PASS] subtest: A closed stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: An errored stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: An errored stream on which cancel() has been called assert_true: After calling stream.cancel() expected true got false
  • TIMEOUT [expected OK] /fetch/api/response/response-stream-with-broken-then.any.html
    • TIMEOUT [expected PASS] subtest: Attempt to inject {done: false, value: bye} via Object.prototype.then. Test timed out
    • NOTRUN [expected PASS] subtest: Attempt to inject value: undefined via Object.prototype.then.
    • NOTRUN [expected PASS] subtest: Attempt to inject undefined via Object.prototype.then.
    • NOTRUN [expected PASS] subtest: Attempt to inject 8.2 via Object.prototype.then.
    • NOTRUN [expected PASS] subtest: intercepting arraybuffer to text conversion via Object.prototype.then should not be possible
    • NOTRUN [expected FAIL] subtest: intercepting arraybuffer to body readable stream conversion via Object.prototype.then should not be possible
  • TIMEOUT [expected OK] /fetch/api/response/response-stream-with-broken-then.any.worker.html
    • TIMEOUT [expected PASS] subtest: Attempt to inject {done: false, value: bye} via Object.prototype.then. Test timed out
    • NOTRUN [expected PASS] subtest: Attempt to inject value: undefined via Object.prototype.then.
    • NOTRUN [expected PASS] subtest: Attempt to inject undefined via Object.prototype.then.
    • NOTRUN [expected PASS] subtest: Attempt to inject 8.2 via Object.prototype.then.
    • NOTRUN [expected PASS] subtest: intercepting arraybuffer to text conversion via Object.prototype.then should not be possible
    • NOTRUN [expected FAIL] subtest: intercepting arraybuffer to body readable stream conversion via Object.prototype.then should not be possible
  • TIMEOUT [expected OK] /fetch/content-type/multipart-malformed.any.html
    • TIMEOUT [expected PASS] subtest: Invalid form data should not crash the browser Test timed out
  • TIMEOUT [expected OK] /fetch/content-type/multipart-malformed.any.worker.html
    • TIMEOUT [expected PASS] subtest: Invalid form data should not crash the browser Test timed out
  • TIMEOUT [expected OK] /fetch/content-type/multipart.window.html
    • NOTRUN [expected FAIL] subtest: Ensure capital letters can be used in the boundary value.
  • TIMEOUT [expected OK] /fetch/content-type/response.window.html
    • TIMEOUT [expected PASS] subtest: Request: combined response Content-Type: text/plain Test timed out
    • NOTRUN [expected PASS] subtest: Response: combined response Content-Type: text/plain
    • NOTRUN [expected PASS] subtest: fetch(): separate response Content-Type: text/plain
    • NOTRUN [expected FAIL] subtest: fetch(): combined response Content-Type: text/plain
    • NOTRUN [expected PASS] subtest: Request: combined response Content-Type: text/plain
    • NOTRUN [expected PASS] subtest: Response: combined response Content-Type: text/plain
    • NOTRUN [expected PASS] subtest: fetch(): separate response Content-Type: text/html text/plain
    • NOTRUN [expected FAIL] subtest: fetch(): combined response Content-Type: text/html text/plain
    • NOTRUN [expected PASS] subtest: Request: combined response Content-Type: text/html text/plain
    • NOTRUN [expected PASS] subtest: Response: combined response Content-Type: text/html text/plain
    • And 68 more unexpected results...
  • TIMEOUT [expected OK] /fetch/local-network-access/fetch.https.window.html?include=from-private
    • TIMEOUT [expected FAIL] subtest: private to local: no-CORS mode failed preflight. Test timed out
    • NOTRUN [expected FAIL] subtest: private to local: no-CORS mode missing CORS headers on preflight response.
    • NOTRUN [expected FAIL] subtest: private to local: no-CORS mode missing PNA header on preflight response.
    • NOTRUN [expected PASS] subtest: private to local: no-CORS mode success.
    • NOTRUN [expected PASS] subtest: private to private: no preflight required.
    • NOTRUN [expected PASS] subtest: private to public: no preflight required.
  • TIMEOUT [expected OK] /fetch/local-network-access/fetch.https.window.html?include=from-public
    • TIMEOUT [expected FAIL] subtest: public to local: no-CORS mode failed preflight. Test timed out
    • NOTRUN [expected FAIL] subtest: public to local: no-CORS mode missing CORS headers on preflight response.
    • NOTRUN [expected FAIL] subtest: public to local: no-CORS mode missing PNA header on preflight response.
    • NOTRUN [expected PASS] subtest: public to local: no-CORS mode success.
    • NOTRUN [expected FAIL] subtest: public to private: failed preflight.
    • NOTRUN [expected FAIL] subtest: public to private: missing CORS headers on preflight response.
    • NOTRUN [expected FAIL] subtest: public to private: missing PNA header on preflight response.
    • NOTRUN [expected FAIL] subtest: public to private: missing CORS headers on final response.
    • NOTRUN [expected FAIL] subtest: public to private: success.
    • NOTRUN [expected PASS] subtest: public to private: PUT success.
    • And 5 more unexpected results...
  • TIMEOUT [expected OK] /fetch/local-network-access/mixed-content-fetch.tentative.https.window.html
    • TIMEOUT [expected PASS] subtest: https-local to http-loopback: no-cors success. Test timed out
    • TIMEOUT [expected PASS] subtest: https-public to http-loopback: no-cors success. Test timed out
    • TIMEOUT [expected PASS] subtest: https-public to http-local: no-cors success. Test timed out
  • TIMEOUT [expected OK] /fetch/local-network-access/redirect.https.window.html
    • TIMEOUT [expected PASS] subtest: private to private to local: no-cors success. Test timed out
    • NOTRUN [expected FAIL] subtest: private to local to private: failed preflight.
    • NOTRUN [expected FAIL] subtest: private to local to private: success.
    • NOTRUN [expected PASS] subtest: private to local to private: no-cors success.
    • NOTRUN [expected FAIL] subtest: public to private to local: failed first preflight.
    • NOTRUN [expected FAIL] subtest: public to private to local: failed second preflight.
    • NOTRUN [expected FAIL] subtest: public to private to local: success.
    • NOTRUN [expected PASS] subtest: public to private to local: no-cors success.
    • NOTRUN [expected FAIL] subtest: treat-as-public to local to private: failed first preflight.
    • NOTRUN [expected FAIL] subtest: treat-as-public to local to private: failed second preflight.
    • And 18 more unexpected results...
  • TIMEOUT [expected OK] /html/infrastructure/safe-passing-of-structured-data/messagechannel.any.html
    • TIMEOUT [expected PASS] subtest: Blob basic Test timed out
    • NOTRUN [expected PASS] subtest: Blob unpaired high surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Blob unpaired low surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Blob paired surrogates (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Blob empty
    • NOTRUN [expected PASS] subtest: Blob NUL
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob basic
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob unpaired high surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob unpaired low surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob paired surrogates (invalid utf-8)
    • And 59 more unexpected results...
  • TIMEOUT [expected OK] /html/infrastructure/safe-passing-of-structured-data/messagechannel.any.worker.html
    • TIMEOUT [expected PASS] subtest: Blob basic Test timed out
    • NOTRUN [expected PASS] subtest: Blob unpaired high surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Blob unpaired low surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Blob paired surrogates (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Blob empty
    • NOTRUN [expected PASS] subtest: Blob NUL
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob basic
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob unpaired high surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob unpaired low surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob paired surrogates (invalid utf-8)
    • And 44 more unexpected results...
  • TIMEOUT [expected OK] /html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.html
    • TIMEOUT [expected PASS] subtest: Blob basic Test timed out
    • NOTRUN [expected PASS] subtest: Blob unpaired high surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Blob unpaired low surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Blob paired surrogates (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Blob empty
    • NOTRUN [expected PASS] subtest: Blob NUL
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob basic
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob unpaired high surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob unpaired low surrogate (invalid utf-8)
    • NOTRUN [expected PASS] subtest: Array Blob object, Blob paired surrogates (invalid utf-8)
    • And 59 more unexpected results...
  • TIMEOUT [expected OK] /url/urlencoded-parser.any.html
    • TIMEOUT [expected PASS] subtest: request.formData() with input: test Test timed out
    • NOTRUN [expected PASS] subtest: response.formData() with input: test
    • NOTRUN [expected PASS] subtest: request.formData() with input: test=
    • NOTRUN [expected PASS] subtest: response.formData() with input: test=
    • NOTRUN [expected PASS] subtest: request.formData() with input: %EF%BB%BFtest=%EF%BB%BF
    • NOTRUN [expected PASS] subtest: response.formData() with input: %EF%BB%BFtest=%EF%BB%BF
    • NOTRUN [expected PASS] subtest: request.formData() with input: %EF%BF%BF=%EF%BF%BF
    • NOTRUN [expected PASS] subtest: response.formData() with input: %EF%BF%BF=%EF%BF%BF
    • NOTRUN [expected PASS] subtest: request.formData() with input: %FE%FF
    • NOTRUN [expected PASS] subtest: response.formData() with input: %FE%FF
    • And 60 more unexpected results...
  • TIMEOUT [expected OK] /url/urlencoded-parser.any.worker.html
    • TIMEOUT [expected PASS] subtest: request.formData() with input: test Test timed out
    • NOTRUN [expected PASS] subtest: response.formData() with input: test
    • NOTRUN [expected PASS] subtest: request.formData() with input: test=
    • NOTRUN [expected PASS] subtest: response.formData() with input: test=
    • NOTRUN [expected PASS] subtest: request.formData() with input: %EF%BB%BFtest=%EF%BB%BF
    • NOTRUN [expected PASS] subtest: response.formData() with input: %EF%BB%BFtest=%EF%BB%BF
    • NOTRUN [expected PASS] subtest: request.formData() with input: %EF%BF%BF=%EF%BF%BF
    • NOTRUN [expected PASS] subtest: response.formData() with input: %EF%BF%BF=%EF%BF%BF
    • NOTRUN [expected PASS] subtest: request.formData() with input: %FE%FF
    • NOTRUN [expected PASS] subtest: response.formData() with input: %FE%FF
    • And 60 more unexpected results...
  • TIMEOUT [expected OK] /webidl/ecmascript-binding/no-regexp-special-casing.any.html
    • TIMEOUT [expected PASS] subtest: Can convert a RegExp to a USVString Test timed out
  • TIMEOUT [expected OK] /webidl/ecmascript-binding/no-regexp-special-casing.any.worker.html
    • TIMEOUT [expected PASS] subtest: Can convert a RegExp to a USVString Test timed out

@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@jdm
Copy link
Member Author

jdm commented Jun 16, 2023

Lots of those failures are expected since the current DOM ReadableStream interface is not standards-compliant at all. It's worth investigating the timeouts, though.

@jdm
Copy link
Member Author

jdm commented Jun 17, 2023

Some timeouts (like /url/urlencoded-parser.any.html) are caused by a problem with ReadableStream::new_from_bytes. When it's called, there readable stream doesn't have a reader yet so the notification doesn't go anywhere.

@jdm
Copy link
Member Author

jdm commented Jun 17, 2023

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit ad391b9 with merge 3de4c6a...

bors-servo added a commit that referenced this pull request Jun 17, 2023
Remove JS stream usage

Rewrite readable stream code to avoid use of JS streams. Fixes #29088.
@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5296240437):

Flaky unexpected result (8)
  • TIMEOUT [expected OK] /FileAPI/url/url-charset.window.html (#26997)
    • TIMEOUT [expected PASS] subtest: Blob charset should override any auto-detected charset. Test timed out
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-cross-origin.sub.window.html (#29056)
    • PASS [expected FAIL] subtest: Cross-origin navigation started from unload handler must be ignored
  • OK /html/browsers/history/the-history-interface/traverse_the_history_5.html (#21383)
    • PASS [expected FAIL] subtest: Multiple history traversals, last would be aborted
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected FAIL] subtest: Area element should support autofocus Test timed out
  • ERROR /resource-timing/content-type-parsing.html (#29131)
    • FAIL [expected TIMEOUT] subtest: mime-type 16 : text/html;charset=�gbk assert_equals: expected (string) "text/html" but got (undefined) undefined
    • TIMEOUT [expected NOTRUN] subtest: mime-type 17 : text/html;charset= gbk Test timed out
Stable unexpected results that are known to be intermittent (12)
  • OK /css/css-transforms/animation/transform-interpolation-004.html (#28335)
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (-1) should be [matrix3d(1, 0, 0, 0, 5.2998553125713235, 1, 0, 0, 0, 0, 1, 0, -8, 4, -12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.25) should be [matrix3d(1, 0, 0, 0, 0.621795827675797, 1, 0, 0, 0, 0, 1, 0, 2, -1, 3, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.75) should be [matrix3d(1, 0, 0, 0, -1.2494279662824135, 1, 0, 0, 0, 0, 1, 0, 6, -3, 9, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (1) should be [matrix3d(1, 0, 0, 0, -2.185039863261519, 1, 0, 0, 0, 0, 1, 0, 8, -4, 12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (2) should be [matrix3d(1, 0, 0, 0, -5.9274874511779405, 1, 0, 0, 0, 0, 1, 0, 16, -8, 24, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (-1) should be [matrix3d(1, 0, 0, 0, 5.2998553125713235, 1, 0, 0, 0, 0, 1, 0, -8, 4, -12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.25) should be [matrix3d(1, 0, 0, 0, 0.621795827675797, 1, 0, 0, 0, 0, 1, 0, 2, -1, 3, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (0.75) should be [matrix3d(1, 0, 0, 0, -1.2494279662824135, 1, 0, 0, 0, 0, 1, 0, 6, -3, 9, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (1) should be [matrix3d(1, 0, 0, 0, -2.185039863261519, 1, 0, 0, 0, 0, 1, 0, 8, -4, 12, 1)]
    • PASS [expected FAIL] subtest: CSS Transitions with transition: all: property <transform> from [skewX(1rad)] to [translate3d(8px, -4px, 12px) skewX(2rad)] at (2) should be [matrix3d(1, 0, 0, 0, -5.9274874511779405, 1, 0, 0, 0, 0, 1, 0, 16, -8, 24, 1)]
    • And 56 more unexpected results...
  • ERROR [expected TIMEOUT] /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html (#28541)
  • OK [expected TIMEOUT] /html/browsers/origin/cross-origin-objects/cross-origin-objects.html (#28569)
  • OK /html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html (#29046)
    • PASS [expected FAIL] subtest: first argument: absolute url
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • CRASH [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • PASS [expected FAIL] subtest: Check that rel=noopener with target=_self does a normal load
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • TIMEOUT [expected OK] /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html (#27664)
  • OK [expected TIMEOUT] /webmessaging/without-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • TIMEOUT [expected OK] /xhr/send-timeout-events.htm (#26879)
Stable unexpected results (55)
  • OK /FileAPI/Blob-methods-from-detached-frame.html
    • FAIL [expected PASS] subtest: slice() promise_test: Unhandled rejection with value: object "TypeError: slicedBlob.stream().getReader is not a function"
    • FAIL [expected PASS] subtest: stream() promise_test: Unhandled rejection with value: object "TypeError: stream.call(...).getReader is not a function"
  • OK /FileAPI/blob/Blob-stream.any.html
    • FAIL [expected PASS] subtest: Blob.stream() assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() empty Blob assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() non-unicode input assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() garbage collection of blob shouldn't break streamconsumption assert_true: expected true got false
  • OK /FileAPI/blob/Blob-stream.any.worker.html
    • FAIL [expected PASS] subtest: Blob.stream() assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() empty Blob assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() non-unicode input assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() garbage collection of blob shouldn't break streamconsumption assert_true: expected true got false
  • OK /fetch/api/basic/request-upload.any.html
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing String assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing null assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing number assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing ArrayBuffer assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing Blob assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK /fetch/api/basic/request-upload.any.worker.html
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing String assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing null assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing number assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing ArrayBuffer assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing Blob assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK [expected TIMEOUT] /fetch/api/basic/request-upload.h2.any.html
    • FAIL [expected TIMEOUT] subtest: Fetch with POST with empty ReadableStream assert_equals: expected "" but got "[object ReadableStream]"
    • FAIL [expected NOTRUN] subtest: Fetch with POST with ReadableStream assert_equals: expected "Test" but got "[object ReadableStream]"
    • PASS [expected NOTRUN] subtest: Fetch with POST with ReadableStream on 421 response should return the response and not retry.
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream assert_equals: Request should not have a content-type set expected (object) null but got (string) "text/plain;charset=UTF-8"
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream, using request object assert_equals: Request should not have a content-type set expected (object) null but got (string) "text/plain;charset=UTF-8"
    • PASS [expected NOTRUN] subtest: Synchronous feature detect fails if feature unsupported
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a String assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing null assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a number assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload should fail on a 401 response assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK [expected TIMEOUT] /fetch/api/basic/request-upload.h2.any.worker.html
    • FAIL [expected TIMEOUT] subtest: Fetch with POST with empty ReadableStream assert_equals: expected "" but got "[object ReadableStream]"
    • FAIL [expected NOTRUN] subtest: Fetch with POST with ReadableStream assert_equals: expected "Test" but got "[object ReadableStream]"
    • PASS [expected NOTRUN] subtest: Fetch with POST with ReadableStream on 421 response should return the response and not retry.
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream assert_equals: Request should not have a content-type set expected (object) null but got (string) "text/plain;charset=UTF-8"
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream, using request object assert_equals: Request should not have a content-type set expected (object) null but got (string) "text/plain;charset=UTF-8"
    • PASS [expected NOTRUN] subtest: Synchronous feature detect fails if feature unsupported
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a String assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing null assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a number assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected NOTRUN] subtest: Streaming upload should fail on a 401 response assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK /fetch/api/basic/stream-response.any.html
    • FAIL [expected PASS] subtest: Stream response's body when content-type is present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Stream response's body when content-type is not present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
  • OK /fetch/api/basic/stream-response.any.worker.html
    • FAIL [expected PASS] subtest: Stream response's body when content-type is present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Stream response's body when content-type is not present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
  • OK /fetch/api/idlharness.any.html
    • FAIL [expected PASS] subtest: Response interface: new Response() must inherit property "body" with the proper type assert_true: wrong type: not a ReadableStream expected true got false
  • OK /fetch/api/idlharness.any.worker.html
    • FAIL [expected PASS] subtest: Response interface: new Response() must inherit property "body" with the proper type assert_true: wrong type: not a ReadableStream expected true got false
  • OK /fetch/api/redirect/redirect-upload.h2.any.html
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 301 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 302 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 307 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 308 assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK /fetch/api/redirect/redirect-upload.h2.any.worker.html
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 301 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 302 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 307 assert_unreached: Should have rejected: undefined Reached unreachable code
    • FAIL [expected PASS] subtest: Fetch upload streaming should fail on 308 assert_unreached: Should have rejected: undefined Reached unreachable code
  • OK /fetch/api/request/request-consume-empty.any.html
    • FAIL [expected PASS] subtest: Consume empty blob request body as arrayBuffer assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty text request body as arrayBuffer assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty blob request body as text assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty text request body as text assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty URLSearchParams request body as text assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty ArrayBuffer request body as text assert_true: bodyUsed is true after being consumed expected true got false
  • OK /fetch/api/request/request-consume-empty.any.worker.html
    • FAIL [expected PASS] subtest: Consume empty blob request body as arrayBuffer assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty text request body as arrayBuffer assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty blob request body as text assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty text request body as text assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty URLSearchParams request body as text assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty ArrayBuffer request body as text assert_true: bodyUsed is true after being consumed expected true got false
  • OK /fetch/api/request/request-consume.any.html
    • FAIL [expected PASS] subtest: Consume String request's body as text assert_true: body as text: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume String request's body as blob assert_true: body as blob: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume String request's body as arrayBuffer assert_true: body as arrayBuffer: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume String request's body as JSON assert_true: body as json: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume ArrayBuffer request's body as text assert_true: body as text: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume ArrayBuffer request's body as blob assert_true: body as blob: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume ArrayBuffer request's body as arrayBuffer assert_true: body as arrayBuffer: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume ArrayBuffer request's body as JSON assert_true: body as json: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume Uint8Array request's body as text assert_true: body as text: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume Uint8Array request's body as blob assert_true: body as blob: bodyUsed turned true expected true got false
    • And 19 more unexpected results...
  • OK /fetch/api/request/request-consume.any.worker.html
    • FAIL [expected PASS] subtest: Consume String request's body as text assert_true: body as text: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume String request's body as blob assert_true: body as blob: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume String request's body as arrayBuffer assert_true: body as arrayBuffer: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume String request's body as JSON assert_true: body as json: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume ArrayBuffer request's body as text assert_true: body as text: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume ArrayBuffer request's body as blob assert_true: body as blob: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume ArrayBuffer request's body as arrayBuffer assert_true: body as arrayBuffer: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume ArrayBuffer request's body as JSON assert_true: body as json: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume Uint8Array request's body as text assert_true: body as text: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume Uint8Array request's body as blob assert_true: body as blob: bodyUsed turned true expected true got false
    • And 19 more unexpected results...
  • OK /fetch/api/request/request-disturbed.any.html
    • FAIL [expected PASS] subtest: Request's body: initial state assert_true: non-null body type expected true got false
    • FAIL [expected PASS] subtest: Check cloning a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
    • FAIL [expected PASS] subtest: Check creating a new request from a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
    • FAIL [expected PASS] subtest: Check consuming a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
  • OK /fetch/api/request/request-disturbed.any.worker.html
    • FAIL [expected PASS] subtest: Request's body: initial state assert_true: non-null body type expected true got false
    • FAIL [expected PASS] subtest: Check cloning a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
    • FAIL [expected PASS] subtest: Check creating a new request from a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
    • FAIL [expected PASS] subtest: Check consuming a disturbed request assert_true: bodyUsed is true when request is disturbed expected true got false
  • OK /fetch/api/request/request-init-contenttype.any.html
    • FAIL [expected PASS] subtest: Default Content-Type for Request with ReadableStream body assert_equals: expected (object) null but got (string) "text/plain;charset=UTF-8"
  • OK /fetch/api/request/request-init-contenttype.any.worker.html
    • FAIL [expected PASS] subtest: Default Content-Type for Request with ReadableStream body assert_equals: expected (object) null but got (string) "text/plain;charset=UTF-8"
  • OK /fetch/api/request/request-init-stream.any.html
    • FAIL [expected PASS] subtest: Constructing a Request with a stream holds the original object. assert_equals: expected object "[object ReadableStream]" but got object "[object ReadableStream]"
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which getReader() is called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() is called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() and releaseLock() are called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
  • OK /fetch/api/request/request-init-stream.any.worker.html
    • FAIL [expected PASS] subtest: Constructing a Request with a stream holds the original object. assert_equals: expected object "[object ReadableStream]" but got object "[object ReadableStream]"
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which getReader() is called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() is called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() and releaseLock() are called assert_throws_js: function "() => new Request("...", { method, body, duplex })" did not throw
  • OK /fetch/api/response/response-body-read-task-handling.html
    • FAIL [expected PASS] subtest: reading from a body stream should occur in a microtask scope promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
  • OK /fetch/api/response/response-cancel-stream.any.html
    • FAIL [expected PASS] subtest: Cancelling a starting blob Response stream (new Response(...)).body.cancel is not a function
    • FAIL [expected PASS] subtest: Cancelling a loading blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a closed blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a starting Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Cancelling a loading Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Cancelling a closed Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Accessing .body after canceling it promise_test: Unhandled rejection with value: object "TypeError: body.cancel is not a function"
  • OK /fetch/api/response/response-cancel-stream.any.worker.html
    • FAIL [expected PASS] subtest: Cancelling a starting blob Response stream (new Response(...)).body.cancel is not a function
    • FAIL [expected PASS] subtest: Cancelling a loading blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a closed blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a starting Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Cancelling a loading Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Cancelling a closed Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Accessing .body after canceling it promise_test: Unhandled rejection with value: object "TypeError: body.cancel is not a function"
  • OK /fetch/api/response/response-clone.any.html
    • FAIL [expected PASS] subtest: Check orginal response's body after cloning response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cannot clone a disturbed response assert_true: response is disturbed expected true got false
  • OK /fetch/api/response/response-clone.any.worker.html
    • FAIL [expected PASS] subtest: Check orginal response's body after cloning response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cannot clone a disturbed response assert_true: response is disturbed expected true got false
  • OK /fetch/api/response/response-consume-empty.any.html
    • PASS [expected FAIL] subtest: Consume response's body as text
    • PASS [expected FAIL] subtest: Consume response's body as blob
    • PASS [expected FAIL] subtest: Consume response's body as arrayBuffer
    • PASS [expected FAIL] subtest: Consume response's body as json (error case)
    • PASS [expected FAIL] subtest: Consume response's body as formData with correct multipart type (error case)
    • PASS [expected FAIL] subtest: Consume response's body as formData with correct urlencoded type
    • PASS [expected FAIL] subtest: Consume response's body as formData without correct type (error case)
    • FAIL [expected PASS] subtest: Consume empty blob response body as arrayBuffer assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty text response body as arrayBuffer assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty blob response body as text assert_true: bodyUsed is true after being consumed expected true got false
    • And 3 more unexpected results...
  • OK /fetch/api/response/response-consume-empty.any.worker.html
    • PASS [expected FAIL] subtest: Consume response's body as text
    • PASS [expected FAIL] subtest: Consume response's body as blob
    • PASS [expected FAIL] subtest: Consume response's body as arrayBuffer
    • PASS [expected FAIL] subtest: Consume response's body as json (error case)
    • PASS [expected FAIL] subtest: Consume response's body as formData with correct multipart type (error case)
    • PASS [expected FAIL] subtest: Consume response's body as formData with correct urlencoded type
    • PASS [expected FAIL] subtest: Consume response's body as formData without correct type (error case)
    • FAIL [expected PASS] subtest: Consume empty blob response body as arrayBuffer assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty text response body as arrayBuffer assert_true: bodyUsed is true after being consumed expected true got false
    • FAIL [expected PASS] subtest: Consume empty blob response body as text assert_true: bodyUsed is true after being consumed expected true got false
    • And 3 more unexpected results...
  • OK /fetch/api/response/response-consume-stream.any.html
    • FAIL [expected PASS] subtest: Read empty text response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read empty blob response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read blob response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read text response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read URLSearchParams response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read array buffer response's body as readableStream with mode=undefined (new Response(...)).body.getReader is not a function
    • FAIL [expected PASS] subtest: Read form data response's body as readableStream with mode=undefined response.body.getReader is not a function
  • OK /fetch/api/response/response-consume-stream.any.worker.html
    • FAIL [expected PASS] subtest: Read empty text response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read empty blob response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read blob response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read text response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read URLSearchParams response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read array buffer response's body as readableStream with mode=undefined (new Response(...)).body.getReader is not a function
    • FAIL [expected PASS] subtest: Read form data response's body as readableStream with mode=undefined response.body.getReader is not a function
  • OK /fetch/api/response/response-consume.html
    • FAIL [expected PASS] subtest: Consume response's body: from text to text assert_true: body as text: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume response's body: from text to blob assert_true: body as blob: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume response's body: from text to arrayBuffer assert_true: body as arrayBuffer: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume response's body: from text to json assert_true: body as json: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume response's body: from text without correct multipart type to formData (error case) assert_true: body as formData: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume response's body: from text with correct urlencoded type to formData assert_true: body as formData: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume response's body: from text without correct urlencoded type to formData (error case) assert_true: body as formData: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume response's body: from blob to blob assert_true: body as blob: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume response's body: from blob to text assert_true: body as text: bodyUsed turned true expected true got false
    • FAIL [expected PASS] subtest: Consume response's body: from blob to arrayBuffer assert_true: body as arrayBuffer: bodyUsed turned true expected true got false
    • And 24 more unexpected results...
  • OK /fetch/api/response/response-error-from-stream.any.html
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.arrayBuffer() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.blob() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.formData() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Inappropriate MIME-type for Body" but we expected it to throw object "Error: Start error"
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.json() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data" but we expected it to throw object "Error: Start error"
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.text() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.arrayBuffer() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.blob() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.formData() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Inappropriate MIME-type for Body" but we expected it to throw object "Error: Pull error"
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.json() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data" but we expected it to throw object "Error: Pull error"
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.text() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
  • OK /fetch/api/response/response-error-from-stream.any.worker.html
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.arrayBuffer() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.blob() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.formData() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Inappropriate MIME-type for Body" but we expected it to throw object "Error: Start error"
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.json() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data" but we expected it to throw object "Error: Start error"
    • FAIL [expected PASS] subtest: ReadableStream start() Error propagates to Response.text() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.arrayBuffer() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.blob() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.formData() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "TypeError: Inappropriate MIME-type for Body" but we expected it to throw object "Error: Pull error"
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.json() Promise promise_rejects_exactly: CustomTestError should propagate function "function() { throw e }" threw object "SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data" but we expected it to throw object "Error: Pull error"
    • FAIL [expected PASS] subtest: ReadableStream pull() Error propagates to Response.text() Promise assert_unreached: Should have rejected: CustomTestError should propagate Reached unreachable code
  • OK /fetch/api/response/response-from-stream.any.html
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which getReader() is called assert_throws_js: function "() => new Response(stream)" did not throw
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() is called assert_throws_js: function "() => new Response(stream)" did not throw
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() and releaseLock() are called assert_throws_js: function "() => new Response(stream)" did not throw
  • OK /fetch/api/response/response-from-stream.any.worker.html
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which getReader() is called assert_throws_js: function "() => new Response(stream)" did not throw
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() is called assert_throws_js: function "() => new Response(stream)" did not throw
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() and releaseLock() are called assert_throws_js: function "() => new Response(stream)" did not throw
  • OK /fetch/api/response/response-init-002.any.html
    • FAIL [expected PASS] subtest: Read Response's body as readableStream response.body.getReader is not a function
  • OK /fetch/api/response/response-init-002.any.worker.html
    • FAIL [expected PASS] subtest: Read Response's body as readableStream response.body.getReader is not a function
  • OK /fetch/api/response/response-init-contenttype.any.html
    • FAIL [expected PASS] subtest: Default Content-Type for Response with ReadableStream body assert_equals: expected (object) null but got (string) "text/plain;charset=UTF-8"
  • OK /fetch/api/response/response-init-contenttype.any.worker.html
    • FAIL [expected PASS] subtest: Default Content-Type for Response with ReadableStream body assert_equals: expected (object) null but got (string) "text/plain;charset=UTF-8"
  • OK /fetch/api/response/response-stream-bad-chunk.any.html
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.arrayBuffer() causes TypeError assert_unreached: Should have rejected: TypeError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.blob() causes TypeError assert_unreached: Should have rejected: TypeError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.json() causes TypeError promise_rejects_js: TypeError should propagate function "function() { throw e }" threw object "SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data" ("SyntaxError") expected instance of function "function TypeError() {
      [native code]
      }" ("TypeError")
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.text() causes TypeError assert_unreached: Should have rejected: TypeError should propagate Reached unreachable code
  • OK /fetch/api/response/response-stream-bad-chunk.any.worker.html
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.arrayBuffer() causes TypeError assert_unreached: Should have rejected: TypeError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.blob() causes TypeError assert_unreached: Should have rejected: TypeError should propagate Reached unreachable code
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.json() causes TypeError promise_rejects_js: TypeError should propagate function "function() { throw e }" threw object "SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data" ("SyntaxError") expected instance of function "function TypeError() {
      [native code]
      }" ("TypeError")
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.text() causes TypeError assert_unreached: Should have rejected: TypeError should propagate Reached unreachable code
  • OK /fetch/api/response/response-stream-disturbed-1.any.html
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-1.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-2.any.html
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-2.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-3.any.html
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-3.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-4.any.html
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-4.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-6.any.html
    • FAIL [expected PASS] subtest: A non-closed stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: A non-closed stream on which cancel() has been called assert_true: After calling stream.cancel() expected true got false
    • FAIL [expected PASS] subtest: A closed stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: An errored stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: An errored stream on which cancel() has been called assert_true: After calling stream.cancel() expected true got false
  • OK /fetch/api/response/response-stream-disturbed-6.any.worker.html
    • FAIL [expected PASS] subtest: A non-closed stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: A non-closed stream on which cancel() has been called assert_true: After calling stream.cancel() expected true got false
    • FAIL [expected PASS] subtest: A closed stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: An errored stream on which read() has been called assert_true: After calling stream.read() expected true got false
    • FAIL [expected PASS] subtest: An errored stream on which cancel() has been called assert_true: After calling stream.cancel() expected true got false
  • CRASH [expected OK] /fetch/api/response/response-stream-with-broken-then.any.html
  • CRASH [expected OK] /fetch/api/response/response-stream-with-broken-then.any.worker.html

@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@andreubotella
Copy link
Contributor

The is_disturbed field of ReadableStream isn't used. It should be set to true on read_a_chunk and checked in the is_disturbed method.

@jdm
Copy link
Member Author

jdm commented Jun 19, 2023

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

⌛ Trying commit 81b4a72 with merge e7eff83...

bors-servo added a commit that referenced this pull request Jun 19, 2023
Remove JS stream usage

Rewrite readable stream code to avoid use of JS streams. Fixes #29088.
@github-actions
Copy link

Test results for linux-wpt-layout-2013 from try job (#5315296557):

Flaky unexpected result (22)
  • TIMEOUT [expected OK] /FileAPI/url/url-charset.window.html (#26997)
    • TIMEOUT [expected PASS] subtest: Blob charset should override any auto-detected charset. Test timed out
    • TIMEOUT [expected PASS] subtest: Blob charset should override <meta charset>. Test timed out
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html (#28103)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/glsl/misc/shader-with-non-reserved-words.html (#16216)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected OK] /_webgl/conformance/uniforms/out-of-bounds-uniform-array-access.html (#26225)
    • NOTRUN [expected PASS] subtest: Overall test
  • TIMEOUT [expected PASS] /css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-source-001.html
  • ERROR [expected TIMEOUT] /html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html (#28541)
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • TIMEOUT [expected FAIL] subtest: Navigating to a different document with link click Test timed out
    • NOTRUN [expected FAIL] subtest: Navigating to a different document with form submission
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html (#28691)
    • PASS [expected FAIL] subtest: load event does not fire on window.open('about:blank')
  • OK /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html (#28066)
    • PASS [expected FAIL] subtest: DE0D 0041 set in href="" targeting a frame and clicked
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/navigate-to-unparseable-url.html (#29050)
    • TIMEOUT [expected FAIL] subtest: location.href setter throws a SyntaxError DOMException for unparseable URLs Test timed out
    • NOTRUN [expected FAIL] subtest: <a> tag navigate fails for unparseable URLs
  • OK /html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html (#28697)
    • PASS [expected FAIL] subtest: aElement.click() before the load event must NOT replace
  • TIMEOUT [expected OK] /html/browsers/origin/cross-origin-objects/cross-origin-objects.html (#28569)
  • CRASH [expected OK] /html/browsers/windows/embedded-opener-remove-frame.html (#23867)
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/skip-another-top-level-browsing-context.html (#24161)
    • TIMEOUT [expected PASS] subtest: Autofocus elements queued in another top-level browsing context's documents should be skipped. Test timed out
  • OK /html/semantics/embedded-content/the-img-element/non-active-document.html (#21544)
    • FAIL [expected PASS] subtest: createHTMLDocument assert_unreached: got unexpected error event Reached unreachable code
    • FAIL [expected PASS] subtest: <template> assert_unreached: got unexpected error event Reached unreachable code
  • OK /html/semantics/forms/form-submission-0/urlencoded2.window.html (#28687)
    • PASS [expected FAIL] subtest: application/x-www-form-urlencoded: Basic File test (formdata event)
  • OK /html/webappapis/dynamic-markup-insertion/document-write/module-delayed.html (#27659)
    • FAIL [expected PASS] subtest: async document.write in a module assert_true: onload must be called expected true got false
  • TIMEOUT [expected OK] /html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html (#25805)
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Fulfillment handler on pending-then-fulfilled promise Test timed out
    • TIMEOUT [expected FAIL] subtest: Rejection handler on pending-then-rejected promise Test timed out
  • ERROR /resource-timing/content-type-parsing.html (#29131)
    • FAIL [expected TIMEOUT] subtest: mime-type 16 : text/html;charset=�gbk assert_equals: expected (string) "text/html" but got (undefined) undefined
    • TIMEOUT [expected NOTRUN] subtest: mime-type 17 : text/html;charset= gbk Test timed out
  • OK [expected TIMEOUT] /webmessaging/with-ports/017.html (#24486)
    • PASS [expected TIMEOUT] subtest: origin of the script that invoked the method, about:blank
  • TIMEOUT [expected OK] /webmessaging/with-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript: Test timed out
  • OK [expected TIMEOUT] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html (#29053)
    • PASS [expected TIMEOUT] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe
Stable unexpected results that are known to be intermittent (16)
  • OK [expected TIMEOUT] /_mozilla/mozilla/img_placeholder_load.html (#28717)
    • PASS [expected TIMEOUT] subtest: Loading a placeholder image should trigger an error on the img element
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html (#28681)
    • FAIL [expected PASS] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='' assert_unreached: load should not be fired Reached unreachable code
    • FAIL [expected PASS] subtest: load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank' assert_unreached: load should not be fired Reached unreachable code
  • TIMEOUT /html/browsers/browsing-the-web/navigating-across-documents/javascript-url-no-beforeunload.window.html (#29055)
    • PASS [expected FAIL] subtest: Navigating an opened window with an iframe via location.href to a javascript: URL must not fire beforeunload on the iframe: undefined completion
  • OK /html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.html (#29049)
    • FAIL [expected PASS] subtest: Same-origin navigation started from unload handler must be ignored assert_equals: expected "?pass" but got "?fail"
  • OK [expected TIMEOUT] /html/browsers/browsing-the-web/read-media/pageload-image-in-popup.html (#23849)
    • FAIL [expected NOTRUN] subtest: The document for a standalone media file should have one child in the body. assert_equals: expected "image/png" but got "text/html"
  • OK /html/semantics/embedded-content/media-elements/media_fragment_seek.html (#24114)
    • FAIL [expected PASS] subtest: Video should seek to time specified in media fragment syntax assert_equals: expected 1 but got 0
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if
      allow-popups-to-escape-sandbox is used Test timed out
  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html (#22667)
  • TIMEOUT [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • FAIL [expected PASS] subtest: multipart/form-data: \r\n in value (formdata event) assert_equals: expected "\r\nContent-Disposition: form-data; name="a"\r\n\r\nb\r\nc\r\n--\r\n" but got ""
  • TIMEOUT [expected OK] /html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html (#29724)
    • TIMEOUT [expected PASS] subtest: reparent-form-during-planned-navigation-task Test timed out
  • OK /html/semantics/forms/historical.html (#28568)
    • FAIL [expected PASS] subtest: <input name=isindex> should not be supported assert_regexp_match: expected object "/?isindex=x$/" but got "about:blank"
  • OK /html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html (#23205)
    • PASS [expected FAIL] subtest: Check that rel=noopener with target=_self does a normal load
  • TIMEOUT /html/webappapis/scripting/events/compile-event-handler-settings-objects.html (#24246)
    • FAIL [expected PASS] subtest: The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document assert_equals: expected "/html/webappapis/scripting/events/resources/open-window.html" but got "blank"
  • TIMEOUT [expected OK] /webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html (#27664)
  • TIMEOUT [expected OK] /xhr/send-timeout-events.htm (#26879)
Stable unexpected results (83)
  • OK /FileAPI/Blob-methods-from-detached-frame.html
    • FAIL [expected PASS] subtest: slice() promise_test: Unhandled rejection with value: object "TypeError: slicedBlob.stream().getReader is not a function"
    • FAIL [expected PASS] subtest: stream() promise_test: Unhandled rejection with value: object "TypeError: stream.call(...).getReader is not a function"
  • OK /FileAPI/blob/Blob-stream.any.html
    • FAIL [expected PASS] subtest: Blob.stream() assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() empty Blob assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() non-unicode input assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() garbage collection of blob shouldn't break streamconsumption assert_true: expected true got false
  • OK /FileAPI/blob/Blob-stream.any.worker.html
    • FAIL [expected PASS] subtest: Blob.stream() assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() empty Blob assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() non-unicode input assert_true: expected true got false
    • FAIL [expected PASS] subtest: Blob.stream() garbage collection of blob shouldn't break streamconsumption assert_true: expected true got false
  • OK /_mozilla/mozilla/interfaces.html
    • FAIL [expected PASS] subtest: Interfaces exposed on the window assert_true: ByteLengthQueuingStrategy should be defined on the global scope expected true got false
  • OK /_mozilla/mozilla/interfaces.worker.html
    • FAIL [expected PASS] subtest: interfaces assert_true: ByteLengthQueuingStrategy should be defined on the global scope expected true got false
  • OK /fetch/api/basic/request-upload.any.html
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing String Illegal constructor.
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing null Illegal constructor.
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing number Illegal constructor.
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing ArrayBuffer Illegal constructor.
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing Blob Illegal constructor.
  • OK /fetch/api/basic/request-upload.any.worker.html
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing String Illegal constructor.
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing null Illegal constructor.
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing number Illegal constructor.
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing ArrayBuffer Illegal constructor.
    • FAIL [expected PASS] subtest: Fetch with POST with ReadableStream containing Blob Illegal constructor.
  • OK [expected TIMEOUT] /fetch/api/basic/request-upload.h2.any.html
    • FAIL [expected TIMEOUT] subtest: Fetch with POST with empty ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Fetch with POST with ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Fetch with POST with ReadableStream on 421 response should return the response and not retry. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream, using request object promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Synchronous feature detect fails if feature unsupported promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a String promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing null promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a number promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Streaming upload should fail on a 401 response promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK [expected TIMEOUT] /fetch/api/basic/request-upload.h2.any.worker.html
    • FAIL [expected TIMEOUT] subtest: Fetch with POST with empty ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Fetch with POST with ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Fetch with POST with ReadableStream on 421 response should return the response and not retry. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Feature detect for POST with ReadableStream, using request object promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Synchronous feature detect fails if feature unsupported promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a String promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing null promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Streaming upload with body containing a number promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected NOTRUN] subtest: Streaming upload should fail on a 401 response promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /fetch/api/basic/stream-response.any.html
    • FAIL [expected PASS] subtest: Stream response's body when content-type is present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Stream response's body when content-type is not present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
  • OK /fetch/api/basic/stream-response.any.worker.html
    • FAIL [expected PASS] subtest: Stream response's body when content-type is present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Stream response's body when content-type is not present promise_test: Unhandled rejection with value: object "TypeError: resp.body.getReader is not a function"
  • OK /fetch/api/redirect/redirect-upload.h2.any.html
    • FAIL [expected PASS] subtest: Fetch upload streaming should be accepted on 303 promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /fetch/api/redirect/redirect-upload.h2.any.worker.html
    • FAIL [expected PASS] subtest: Fetch upload streaming should be accepted on 303 promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /fetch/api/request/request-init-contenttype.any.html
    • FAIL [expected PASS] subtest: Default Content-Type for Request with ReadableStream body Illegal constructor.
    • FAIL [expected PASS] subtest: Can override Content-Type for Request with ReadableStream body Illegal constructor.
  • OK /fetch/api/request/request-init-contenttype.any.worker.html
    • FAIL [expected PASS] subtest: Default Content-Type for Request with ReadableStream body Illegal constructor.
    • FAIL [expected PASS] subtest: Can override Content-Type for Request with ReadableStream body Illegal constructor.
  • OK /fetch/api/request/request-init-stream.any.html
    • FAIL [expected PASS] subtest: Constructing a Request with a stream holds the original object. Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which getReader() is called Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() is called Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() and releaseLock() are called promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: It is OK to set .duplex = 'half' when the body is a ReadableStream. Illegal constructor.
    • FAIL [expected PASS] subtest: It is OK to omit duplex when init.body is not given and input.body is given. Illegal constructor.
  • OK /fetch/api/request/request-init-stream.any.worker.html
    • FAIL [expected PASS] subtest: Constructing a Request with a stream holds the original object. Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which getReader() is called Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() is called Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Request with a stream on which read() and releaseLock() are called promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: It is OK to set .duplex = 'half' when the body is a ReadableStream. Illegal constructor.
    • FAIL [expected PASS] subtest: It is OK to omit duplex when init.body is not given and input.body is given. Illegal constructor.
  • OK /fetch/api/response/response-body-read-task-handling.html
    • FAIL [expected PASS] subtest: reading from a body stream should occur in a microtask scope promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
  • OK /fetch/api/response/response-cancel-stream.any.html
    • FAIL [expected PASS] subtest: Cancelling a starting blob Response stream (new Response(...)).body.cancel is not a function
    • FAIL [expected PASS] subtest: Cancelling a loading blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a closed blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a starting Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Cancelling a loading Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Cancelling a closed Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Accessing .body after canceling it promise_test: Unhandled rejection with value: object "TypeError: body.cancel is not a function"
  • OK /fetch/api/response/response-cancel-stream.any.worker.html
    • FAIL [expected PASS] subtest: Cancelling a starting blob Response stream (new Response(...)).body.cancel is not a function
    • FAIL [expected PASS] subtest: Cancelling a loading blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a closed blob Response stream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Cancelling a starting Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Cancelling a loading Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Cancelling a closed Response stream promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Accessing .body after canceling it promise_test: Unhandled rejection with value: object "TypeError: body.cancel is not a function"
  • OK /fetch/api/response/response-clone.any.html
    • FAIL [expected PASS] subtest: Check orginal response's body after cloning response.body.getReader is not a function
  • OK /fetch/api/response/response-clone.any.worker.html
    • FAIL [expected PASS] subtest: Check orginal response's body after cloning response.body.getReader is not a function
  • OK /fetch/api/response/response-consume-stream.any.html
    • FAIL [expected PASS] subtest: Read empty text response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read empty blob response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read blob response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read text response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read URLSearchParams response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read array buffer response's body as readableStream with mode=undefined (new Response(...)).body.getReader is not a function
    • FAIL [expected PASS] subtest: Read form data response's body as readableStream with mode=undefined response.body.getReader is not a function
  • OK /fetch/api/response/response-consume-stream.any.worker.html
    • FAIL [expected PASS] subtest: Read empty text response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read empty blob response's body as readableStream response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read blob response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read text response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read URLSearchParams response's body as readableStream with mode=undefined response.body.getReader is not a function
    • FAIL [expected PASS] subtest: Read array buffer response's body as readableStream with mode=undefined (new Response(...)).body.getReader is not a function
    • FAIL [expected PASS] subtest: Read form data response's body as readableStream with mode=undefined response.body.getReader is not a function
  • ERROR [expected OK] /fetch/api/response/response-consume.html
    • FAIL [expected PASS] subtest: Consume response's body: from stream to blob promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Consume response's body: from stream to text promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Consume response's body: from stream to arrayBuffer promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Consume response's body: from stream to json promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Consume response's body: from stream without correct multipart type to formData (error case) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Consume response's body: from stream with correct urlencoded type to formData promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Consume response's body: from stream without correct urlencoded type to formData (error case) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • ERROR [expected OK] /fetch/api/response/response-error-from-stream.any.html
    • FAIL [expected PASS] subtest: ReadableStreamDefaultReader Promise receives ReadableStream start() Error Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStreamDefaultReader Promise receives ReadableStream pull() Error Illegal constructor.
  • ERROR [expected OK] /fetch/api/response/response-error-from-stream.any.worker.html
    • FAIL [expected PASS] subtest: ReadableStreamDefaultReader Promise receives ReadableStream start() Error Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStreamDefaultReader Promise receives ReadableStream pull() Error Illegal constructor.
  • OK /fetch/api/response/response-from-stream.any.html
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which getReader() is called Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() is called Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() and releaseLock() are called promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /fetch/api/response/response-from-stream.any.worker.html
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which getReader() is called Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() is called Illegal constructor.
    • FAIL [expected PASS] subtest: Constructing a Response with a stream on which read() and releaseLock() are called promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /fetch/api/response/response-init-002.any.html
    • FAIL [expected PASS] subtest: Read Response's body as readableStream response.body.getReader is not a function
  • OK /fetch/api/response/response-init-002.any.worker.html
    • FAIL [expected PASS] subtest: Read Response's body as readableStream response.body.getReader is not a function
  • OK /fetch/api/response/response-init-contenttype.any.html
    • FAIL [expected PASS] subtest: Default Content-Type for Response with ReadableStream body Illegal constructor.
    • FAIL [expected PASS] subtest: Can override Content-Type for Response with ReadableStream body Illegal constructor.
  • OK /fetch/api/response/response-init-contenttype.any.worker.html
    • FAIL [expected PASS] subtest: Default Content-Type for Response with ReadableStream body Illegal constructor.
    • FAIL [expected PASS] subtest: Can override Content-Type for Response with ReadableStream body Illegal constructor.
  • OK /fetch/api/response/response-stream-bad-chunk.any.html
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.arrayBuffer() causes TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.blob() causes TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.formData() causes TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.json() causes TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.text() causes TypeError Illegal constructor.
  • OK /fetch/api/response/response-stream-bad-chunk.any.worker.html
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.arrayBuffer() causes TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.blob() causes TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.formData() causes TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.json() causes TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream with non-Uint8Array chunk passed to Response.text() causes TypeError Illegal constructor.
  • OK /fetch/api/response/response-stream-disturbed-1.any.html
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-1.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting json after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting the Response body - not disturbed, not locked (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting blob after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting the Response body - not disturbed, not locked (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-2.any.html
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-2.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting json after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting arrayBuffer after getting a locked Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting blob after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after getting a locked Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-3.any.html
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-3.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting json after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting arrayBuffer after reading the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting blob after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • FAIL [expected PASS] subtest: Getting text after reading the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.getReader is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-4.any.html
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-4.any.worker.html
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: fetch) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting json after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting arrayBuffer after cancelling the Response body (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting blob after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • FAIL [expected PASS] subtest: Getting text after cancelling the Response body (body source: string) promise_test: Unhandled rejection with value: object "TypeError: response.body.cancel is not a function"
    • And 2 more unexpected results...
  • OK /fetch/api/response/response-stream-disturbed-5.any.html
    • FAIL [expected PASS] subtest: Getting a body reader after consuming as blob (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting a body reader after consuming as text (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting a body reader after consuming as json (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting a body reader after consuming as arrayBuffer (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /fetch/api/response/response-stream-disturbed-5.any.worker.html
    • FAIL [expected PASS] subtest: Getting a body reader after consuming as blob (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting a body reader after consuming as text (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting a body reader after consuming as json (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Getting a body reader after consuming as arrayBuffer (body source: stream) promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /fetch/api/response/response-stream-disturbed-6.any.html
    • FAIL [expected PASS] subtest: A non-closed stream on which read() has been called Illegal constructor.
    • FAIL [expected PASS] subtest: A non-closed stream on which cancel() has been called Illegal constructor.
    • FAIL [expected PASS] subtest: A closed stream on which read() has been called Illegal constructor.
    • FAIL [expected PASS] subtest: An errored stream on which read() has been called Illegal constructor.
    • FAIL [expected PASS] subtest: An errored stream on which cancel() has been called Illegal constructor.
  • OK /fetch/api/response/response-stream-disturbed-6.any.worker.html
    • FAIL [expected PASS] subtest: A non-closed stream on which read() has been called Illegal constructor.
    • FAIL [expected PASS] subtest: A non-closed stream on which cancel() has been called Illegal constructor.
    • FAIL [expected PASS] subtest: A closed stream on which read() has been called Illegal constructor.
    • FAIL [expected PASS] subtest: An errored stream on which read() has been called Illegal constructor.
    • FAIL [expected PASS] subtest: An errored stream on which cancel() has been called Illegal constructor.
  • OK /fetch/api/response/response-stream-with-broken-then.any.html
    • FAIL [expected PASS] subtest: Attempt to inject {done: false, value: bye} via Object.prototype.then. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Attempt to inject value: undefined via Object.prototype.then. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Attempt to inject undefined via Object.prototype.then. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Attempt to inject 8.2 via Object.prototype.then. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: intercepting arraybuffer to text conversion via Object.prototype.then should not be possible assert_equals: The value should be "hello". expected "hello" but got "bye"
  • OK /fetch/api/response/response-stream-with-broken-then.any.worker.html
    • FAIL [expected PASS] subtest: Attempt to inject {done: false, value: bye} via Object.prototype.then. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Attempt to inject value: undefined via Object.prototype.then. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Attempt to inject undefined via Object.prototype.then. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Attempt to inject 8.2 via Object.prototype.then. promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: intercepting arraybuffer to text conversion via Object.prototype.then should not be possible assert_equals: The value should be "hello". expected "hello" but got "bye"
  • OK /html/infrastructure/safe-passing-of-structured-data/messagechannel.any.html
    • FAIL [expected PRECONDITION_FAILED] subtest: A subclass instance will be received as its closest transferable superclass promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /html/infrastructure/safe-passing-of-structured-data/messagechannel.any.worker.html
    • FAIL [expected PRECONDITION_FAILED] subtest: A subclass instance will be received as its closest transferable superclass promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.html
    • FAIL [expected PRECONDITION_FAILED] subtest: A subclass instance will be received as its closest transferable superclass promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /streams/readable-streams/bad-strategies.any.html
    • FAIL [expected PASS] subtest: Readable stream: throwing strategy.size getter assert_throws_exactly: construction should re-throw the error function "() => {
      new ReadableStream({}, {
      get size() {
      throw theError;
      },
      highWaterMark: 5
      });
      }" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Readable stream: strategy.size errors the stream and then throws Illegal constructor.
    • FAIL [expected PASS] subtest: Readable stream: strategy.size errors the stream and then returns Infinity Illegal constructor.
    • FAIL [expected PASS] subtest: Readable stream: throwing strategy.size method Illegal constructor.
    • FAIL [expected PASS] subtest: Readable stream: throwing strategy.highWaterMark getter assert_throws_exactly: construction should re-throw the error function "() => {
      new ReadableStream({}, {
      size() {
      return 1;
      },
      get highWaterMark() {
      throw theError;
      }
      });
      }" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Readable stream: invalid strategy.highWaterMark assert_throws_js: construction should throw a RangeError for -1 function "() => {
      new ReadableStream({}, {
      size() {
      return 1;
      },
      highWaterMark
      });
      }" threw object "TypeError: Illegal constructor." ("TypeError") expected instance of function "function RangeError() {
      [native code]
      }" ("RangeError")
    • FAIL [expected PASS] subtest: Readable stream: invalid strategy.size return value Illegal constructor.
  • OK /streams/readable-streams/bad-strategies.any.worker.html
    • FAIL [expected PASS] subtest: Readable stream: throwing strategy.size getter assert_throws_exactly: construction should re-throw the error function "() => {
      new ReadableStream({}, {
      get size() {
      throw theError;
      },
      highWaterMark: 5
      });
      }" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Readable stream: strategy.size errors the stream and then throws Illegal constructor.
    • FAIL [expected PASS] subtest: Readable stream: strategy.size errors the stream and then returns Infinity Illegal constructor.
    • FAIL [expected PASS] subtest: Readable stream: throwing strategy.size method Illegal constructor.
    • FAIL [expected PASS] subtest: Readable stream: throwing strategy.highWaterMark getter assert_throws_exactly: construction should re-throw the error function "() => {
      new ReadableStream({}, {
      size() {
      return 1;
      },
      get highWaterMark() {
      throw theError;
      }
      });
      }" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Readable stream: invalid strategy.highWaterMark assert_throws_js: construction should throw a RangeError for -1 function "() => {
      new ReadableStream({}, {
      size() {
      return 1;
      },
      highWaterMark
      });
      }" threw object "TypeError: Illegal constructor." ("TypeError") expected instance of function "function RangeError() {
      [native code]
      }" ("RangeError")
    • FAIL [expected PASS] subtest: Readable stream: invalid strategy.size return value Illegal constructor.
  • OK /streams/readable-streams/bad-underlying-sources.any.html
    • FAIL [expected PASS] subtest: Underlying source start: throwing getter assert_throws_exactly: constructing the stream should re-throw the error function "() => {
      new ReadableStream({
      get start() {
      throw theError;
      }
      });
      }" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Underlying source start: throwing method assert_throws_exactly: constructing the stream should re-throw the error function "() => {
      new ReadableStream({
      start() {
      throw theError;
      }
      });
      }" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Underlying source: throwing pull getter (initial pull) assert_throws_exactly: constructor should throw function "() => new ReadableStream({
      get pull() {
      throw theError;
      }
      })" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Underlying source: throwing pull method (initial pull) Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source pull: throwing getter (second pull does not result in a second get) Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source pull: throwing method (second pull) Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source cancel: throwing getter assert_throws_exactly: constructor should throw function "() => new ReadableStream({
      get cancel() {
      throw theError;
      }
      })" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Underlying source cancel: throwing method Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source: calling enqueue on an empty canceled stream should throw Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source: calling enqueue on a non-empty canceled stream should throw Illegal constructor.
    • And 12 more unexpected results...
  • OK /streams/readable-streams/bad-underlying-sources.any.worker.html
    • FAIL [expected PASS] subtest: Underlying source start: throwing getter assert_throws_exactly: constructing the stream should re-throw the error function "() => {
      new ReadableStream({
      get start() {
      throw theError;
      }
      });
      }" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Underlying source start: throwing method assert_throws_exactly: constructing the stream should re-throw the error function "() => {
      new ReadableStream({
      start() {
      throw theError;
      }
      });
      }" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Underlying source: throwing pull getter (initial pull) assert_throws_exactly: constructor should throw function "() => new ReadableStream({
      get pull() {
      throw theError;
      }
      })" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Underlying source: throwing pull method (initial pull) Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source pull: throwing getter (second pull does not result in a second get) Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source pull: throwing method (second pull) Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source cancel: throwing getter assert_throws_exactly: constructor should throw function "() => new ReadableStream({
      get cancel() {
      throw theError;
      }
      })" threw object "TypeError: Illegal constructor." but we expected it to throw object "Error: a unique string"
    • FAIL [expected PASS] subtest: Underlying source cancel: throwing method Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source: calling enqueue on an empty canceled stream should throw Illegal constructor.
    • FAIL [expected PASS] subtest: Underlying source: calling enqueue on a non-empty canceled stream should throw Illegal constructor.
    • And 12 more unexpected results...
  • OK /streams/readable-streams/cancel.any.html
    • FAIL [expected PASS] subtest: ReadableStream cancellation: integration test on an infinite stream derived from a random push source Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: cancel(reason) should pass through the given reason to the underlying source Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: cancel() on a locked stream should fail and not call the underlying source cancel Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: should fulfill promise when cancel callback went fine Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: returning a value from the underlying source's cancel should not affect the fulfillment value of the promise returned by the stream's cancel Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: should reject promise when cancel callback raises an exception Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (1) Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (2) Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should reject when that one does Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: cancelling before start finishes should prevent pull() from being called Illegal constructor.
  • OK /streams/readable-streams/cancel.any.worker.html
    • FAIL [expected PASS] subtest: ReadableStream cancellation: integration test on an infinite stream derived from a random push source Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: cancel(reason) should pass through the given reason to the underlying source Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: cancel() on a locked stream should fail and not call the underlying source cancel Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: should fulfill promise when cancel callback went fine Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: returning a value from the underlying source's cancel should not affect the fulfillment value of the promise returned by the stream's cancel Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: should reject promise when cancel callback raises an exception Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (1) Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (2) Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should reject when that one does Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream cancellation: cancelling before start finishes should prevent pull() from being called Illegal constructor.
  • OK /streams/readable-streams/constructor.any.html
    • FAIL [expected PASS] subtest: underlyingSource argument should be converted after queuingStrategy argument assert_throws_exactly: function "() => new ReadableStream(underlyingSource, queuingStrategy)" threw object "TypeError: Illegal constructor." but we expected it to throw object "error2: error2"
  • OK /streams/readable-streams/constructor.any.worker.html
    • FAIL [expected PASS] subtest: underlyingSource argument should be converted after queuingStrategy argument assert_throws_exactly: function "() => new ReadableStream(underlyingSource, queuingStrategy)" threw object "TypeError: Illegal constructor." but we expected it to throw object "error2: error2"
  • OK /streams/readable-streams/count-queuing-strategy-integration.any.html
    • FAIL [expected PASS] subtest: Can construct a readable stream with a valid CountQueuingStrategy CountQueuingStrategy is not defined
    • FAIL [expected PASS] subtest: Correctly governs a ReadableStreamController's desiredSize property (HWM = 0) CountQueuingStrategy is not defined
    • FAIL [expected PASS] subtest: Correctly governs a ReadableStreamController's desiredSize property (HWM = 1) CountQueuingStrategy is not defined
    • FAIL [expected PASS] subtest: Correctly governs a ReadableStreamController's desiredSize property (HWM = 4) CountQueuingStrategy is not defined
  • OK /streams/readable-streams/count-queuing-strategy-integration.any.worker.html
    • FAIL [expected PASS] subtest: Can construct a readable stream with a valid CountQueuingStrategy CountQueuingStrategy is not defined
    • FAIL [expected PASS] subtest: Correctly governs a ReadableStreamController's desiredSize property (HWM = 0) CountQueuingStrategy is not defined
    • FAIL [expected PASS] subtest: Correctly governs a ReadableStreamController's desiredSize property (HWM = 1) CountQueuingStrategy is not defined
    • FAIL [expected PASS] subtest: Correctly governs a ReadableStreamController's desiredSize property (HWM = 4) CountQueuingStrategy is not defined
  • OK /streams/readable-streams/default-reader.any.html
    • FAIL [expected PASS] subtest: Getting a ReadableStreamDefaultReader via getReader should fail if the stream is already locked (via getReader) Illegal constructor.
    • FAIL [expected PASS] subtest: Reading from a reader for an empty stream will wait until a chunk is available Illegal constructor.
    • FAIL [expected PASS] subtest: cancel() on a reader does not release the reader Illegal constructor.
    • FAIL [expected PASS] subtest: closed should be fulfilled after stream is closed (.closed access before acquiring) Illegal constructor.
    • FAIL [expected PASS] subtest: closed should be rejected after reader releases its lock (multiple stream locks) Illegal constructor.
    • FAIL [expected PASS] subtest: closed is replaced when stream closes and reader releases its lock Illegal constructor.
    • FAIL [expected PASS] subtest: closed is replaced when stream errors and reader releases its lock Illegal constructor.
    • FAIL [expected PASS] subtest: Multiple readers can access the stream in sequence Illegal constructor.
    • FAIL [expected PASS] subtest: Cannot use an already-released reader to unlock a stream again Illegal constructor.
    • FAIL [expected PASS] subtest: cancel() on a released reader is a no-op and does not pass through Illegal constructor.
    • And 11 more unexpected results...
  • OK /streams/readable-streams/default-reader.any.worker.html
    • FAIL [expected PASS] subtest: Getting a ReadableStreamDefaultReader via getReader should fail if the stream is already locked (via getReader) Illegal constructor.
    • FAIL [expected PASS] subtest: Reading from a reader for an empty stream will wait until a chunk is available Illegal constructor.
    • FAIL [expected PASS] subtest: cancel() on a reader does not release the reader Illegal constructor.
    • FAIL [expected PASS] subtest: closed should be fulfilled after stream is closed (.closed access before acquiring) Illegal constructor.
    • FAIL [expected PASS] subtest: closed should be rejected after reader releases its lock (multiple stream locks) Illegal constructor.
    • FAIL [expected PASS] subtest: closed is replaced when stream closes and reader releases its lock Illegal constructor.
    • FAIL [expected PASS] subtest: closed is replaced when stream errors and reader releases its lock Illegal constructor.
    • FAIL [expected PASS] subtest: Multiple readers can access the stream in sequence Illegal constructor.
    • FAIL [expected PASS] subtest: Cannot use an already-released reader to unlock a stream again Illegal constructor.
    • FAIL [expected PASS] subtest: cancel() on a released reader is a no-op and does not pass through Illegal constructor.
    • And 11 more unexpected results...
  • OK /streams/readable-streams/floating-point-total-queue-size.any.html
    • FAIL [expected PASS] subtest: Floating point arithmetic must manifest near NUMBER.MAX_SAFE_INTEGER (total ends up positive) Illegal constructor.
    • FAIL [expected PASS] subtest: Floating point arithmetic must manifest near 0 (total ends up positive, but clamped) Illegal constructor.
    • FAIL [expected PASS] subtest: Floating point arithmetic must manifest near 0 (total ends up positive, and not clamped) Illegal constructor.
    • FAIL [expected PASS] subtest: Floating point arithmetic must manifest near 0 (total ends up zero) Illegal constructor.
  • OK /streams/readable-streams/floating-point-total-queue-size.any.worker.html
    • FAIL [expected PASS] subtest: Floating point arithmetic must manifest near NUMBER.MAX_SAFE_INTEGER (total ends up positive) Illegal constructor.
    • FAIL [expected PASS] subtest: Floating point arithmetic must manifest near 0 (total ends up positive, but clamped) Illegal constructor.
    • FAIL [expected PASS] subtest: Floating point arithmetic must manifest near 0 (total ends up positive, and not clamped) Illegal constructor.
    • FAIL [expected PASS] subtest: Floating point arithmetic must manifest near 0 (total ends up zero) Illegal constructor.
  • OK /streams/readable-streams/garbage-collection.any.html
    • FAIL [expected PASS] subtest: ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream closed promise should fulfill even if the stream and reader JS references are lost promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream closed promise should reject even if stream and reader JS references are lost promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Garbage-collecting a ReadableStreamDefaultReader should not unlock its stream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /streams/readable-streams/garbage-collection.any.worker.html
    • FAIL [expected PASS] subtest: ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream closed promise should fulfill even if the stream and reader JS references are lost promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream closed promise should reject even if stream and reader JS references are lost promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Garbage-collecting a ReadableStreamDefaultReader should not unlock its stream promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • OK /streams/readable-streams/general.any.html
    • FAIL [expected PASS] subtest: ReadableStream can be constructed with no errors Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream start should be called with the proper thisArg Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream start controller parameter should be extensible Illegal constructor.
    • FAIL [expected PASS] subtest: default ReadableStream getReader() should only accept mode:undefined Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream should be able to call start method within prototype chain of its source Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream start should be able to return a promise Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream start should be able to return a promise and reject it Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream should be able to enqueue different objects. Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream: should only call pull once upon starting the stream Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream: should call pull when trying to read from a started, empty stream Illegal constructor.
    • And 22 more unexpected results...
  • OK /streams/readable-streams/general.any.worker.html
    • FAIL [expected PASS] subtest: ReadableStream can be constructed with no errors Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream start should be called with the proper thisArg Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream start controller parameter should be extensible Illegal constructor.
    • FAIL [expected PASS] subtest: default ReadableStream getReader() should only accept mode:undefined Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream should be able to call start method within prototype chain of its source Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream start should be able to return a promise Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream start should be able to return a promise and reject it Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream should be able to enqueue different objects. Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream: should only call pull once upon starting the stream Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream: should call pull when trying to read from a started, empty stream Illegal constructor.
    • And 22 more unexpected results...
  • OK /streams/readable-streams/global.html
    • FAIL [expected PASS] subtest: Closing errored stream throws object in appropriate global promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Can enqueue chunks from multiple globals promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: Correct errors and globals for closed streams promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
  • ERROR [expected OK] /streams/readable-streams/patched-global.any.html
  • ERROR [expected OK] /streams/readable-streams/patched-global.any.worker.html
  • OK /streams/readable-streams/read-task-handling.window.html
    • FAIL [expected PASS] subtest: reading from a stream should occur in a microtask scope Illegal constructor.
  • OK /streams/readable-streams/reentrant-strategies.any.html
    • FAIL [expected PASS] subtest: enqueue() inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: close() inside size() should not crash Illegal constructor.
    • FAIL [expected PASS] subtest: close request inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: error() inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: desiredSize inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: cancel() inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: read() inside of size() should behave as expected Illegal constructor.
    • FAIL [expected PASS] subtest: getReader() inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: tee() inside size() should work Illegal constructor.
  • OK /streams/readable-streams/reentrant-strategies.any.worker.html
    • FAIL [expected PASS] subtest: enqueue() inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: close() inside size() should not crash Illegal constructor.
    • FAIL [expected PASS] subtest: close request inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: error() inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: desiredSize inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: cancel() inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: read() inside of size() should behave as expected Illegal constructor.
    • FAIL [expected PASS] subtest: getReader() inside size() should work Illegal constructor.
    • FAIL [expected PASS] subtest: tee() inside size() should work Illegal constructor.
  • OK /streams/readable-streams/tee.any.html
    • FAIL [expected PASS] subtest: ReadableStream teeing: rs.tee() returns an array of two ReadableStreams Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: should be able to read one branch to the end without affecting the other Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: values should be equal across each branch Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: errors in the source should propagate to both branches Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: canceling branch1 should not impact branch2 Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: canceling branch2 should not impact branch1 Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: canceling both branches should aggregate the cancel reasons into an array promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream teeing: canceling both branches in reverse order should aggregate the cancel reasons into an array promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream teeing: failing to cancel the original stream should cause cancel() to reject on branches promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream teeing: erroring a teed stream should properly handle canceled branches promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • And 15 more unexpected results...
  • OK /streams/readable-streams/tee.any.worker.html
    • FAIL [expected PASS] subtest: ReadableStream teeing: rs.tee() returns an array of two ReadableStreams Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: should be able to read one branch to the end without affecting the other Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: values should be equal across each branch Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: errors in the source should propagate to both branches Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: canceling branch1 should not impact branch2 Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: canceling branch2 should not impact branch1 Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream teeing: canceling both branches should aggregate the cancel reasons into an array promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream teeing: canceling both branches in reverse order should aggregate the cancel reasons into an array promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream teeing: failing to cancel the original stream should cause cancel() to reject on branches promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • FAIL [expected PASS] subtest: ReadableStream teeing: erroring a teed stream should properly handle canceled branches promise_test: Unhandled rejection with value: object "TypeError: Illegal constructor."
    • And 15 more unexpected results...
  • OK /streams/readable-streams/templated.any.html
    • FAIL [expected PASS] subtest: ReadableStream (empty): calling getReader with invalid arguments should throw appropriate errors Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: instances have the correct methods and properties Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: locked should be true Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: read() should never settle Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: two read()s should both never settle Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: read() should return distinct promises each time Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: getReader() again on the stream should fail Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: releasing the lock should cause further read() calls to reject with a TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: releasing the lock should cause closed calls to reject with a TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: releasing the lock should cause locked to become false Illegal constructor.
    • And 59 more unexpected results...
  • OK /streams/readable-streams/templated.any.worker.html
    • FAIL [expected PASS] subtest: ReadableStream (empty): calling getReader with invalid arguments should throw appropriate errors Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: instances have the correct methods and properties Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: locked should be true Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: read() should never settle Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: two read()s should both never settle Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: read() should return distinct promises each time Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: getReader() again on the stream should fail Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: releasing the lock should cause further read() calls to reject with a TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: releasing the lock should cause closed calls to reject with a TypeError Illegal constructor.
    • FAIL [expected PASS] subtest: ReadableStream (empty) reader: releasing the lock should cause locked to become false Illegal constructor.
    • And 59 more unexpected results...
  • OK /workers/semantics/interface-objects/001.worker.html
    • FAIL [expected PASS] subtest: The ByteLengthQueuingStrategy interface object should be exposed. assert_own_property: expected property "ByteLengthQueuingStrategy" missing
    • FAIL [expected PASS] subtest: The CountQueuingStrategy interface object should be exposed. assert_own_property: expected property "CountQueuingStrategy" missing
  • ERROR [expected OK] /xhr/send-data-es-object.any.html
  • ERROR [expected OK] /xhr/send-data-es-object.any.worker.html

@bors-servo
Copy link
Contributor

💔 Test failed - checks-github

@bors-servo
Copy link
Contributor

☔ The latest upstream changes (presumably #29934) made this pull request unmergeable. Please resolve the merge conflicts.

@mrobinson
Copy link
Member

Sorry for causing the merge conflict on this change. I'm happy to rebase it and bring it back to life.

@jdm
Copy link
Member Author

jdm commented Jul 9, 2023

Don't worry, I'll take care of it.

@mrobinson
Copy link
Member

@jdm Should this one be closed for now since we have updated SpiderMonkey by reverting the streams usage?

@jdm
Copy link
Member Author

jdm commented Sep 28, 2023

Nope! I still think we want to proceed with this work.

@andreubotella
Copy link
Contributor

It seems like it'd be better if, now that there's a temporary solution for upgrading SM, this PR could be reworked to add non-SM streams as a compile-time feature, so it could be developed over time, perhaps by multiple contributors, without regressions.

@jdm
Copy link
Member Author

jdm commented Oct 7, 2023

That's a fair point! My instinct is that doing all that work in one PR is going to be pretty overwhelming, though. I'm open to ideas if how to split up the work in useful ways!

Copy link
Member

@gterzian gterzian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Took a quick look, couple of comments.

struct ExternalUnderlyingSourceController {
/// Loosely matches the underlying queue,
/// <https://streams.spec.whatwg.org/#internal-queues>
buffer: RefCell<Vec<u8>>,
#[ignore_malloc_size_of = "Rc is hard"]
pending_reader: RefCell<Option<Rc<Promise>>>,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would rather keep those on the dom struct, in some ways ExternalUnderlyingSourceController doesn't really belong here at all because it's the "native" pure Rust part, and should eventually perhaps be separated out into shared/script(similar to Blob and Messageport).

assert!(self.pending_reader.borrow().is_none());
*self.pending_reader.borrow_mut() = Some(promise.clone());
let buflen = self.buffer.borrow().len();
self.maybe_signal_available_bytes(cx, &promise.global(), buflen);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem with this approach is that it will only wake up the reader in reponse to enqueue_native, and in practice the queuing could also be done by a JS underlying source(example).

That was the part that SM dealt with internally, I think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rewrite readable stream implementation without spidermonkey builtin object
6 participants