
Harness Error (TIMEOUT), message = null

FAIL Aborting rejects with AbortError assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL Aborting rejects with AbortError - no-cors assert_throws: function "function () { throw e }" threw object "TypeError: A server with the specified hostname could not be found." that is not a DOMException AbortError: property "code" is equal to undefined, expected 20
PASS TypeError from request constructor takes priority - RequestInit's window is not null 
PASS TypeError from request constructor takes priority - Input URL is not valid 
PASS TypeError from request constructor takes priority - Input URL has credentials 
PASS TypeError from request constructor takes priority - RequestInit's mode is navigate 
PASS TypeError from request constructor takes priority - RequestInit's referrer is invalid 
PASS TypeError from request constructor takes priority - RequestInit's method is invalid 
PASS TypeError from request constructor takes priority - RequestInit's method is forbidden 
PASS TypeError from request constructor takes priority - RequestInit's mode is no-cors and method is not simple 
PASS TypeError from request constructor takes priority - RequestInit's cache mode is only-if-cached and mode is not same-origin 
PASS TypeError from request constructor takes priority - Request with cache mode: only-if-cached and fetch mode cors 
PASS TypeError from request constructor takes priority - Request with cache mode: only-if-cached and fetch mode no-cors 
PASS TypeError from request constructor takes priority - Bad referrerPolicy init parameter value 
PASS TypeError from request constructor takes priority - Bad mode init parameter value 
PASS TypeError from request constructor takes priority - Bad credentials init parameter value 
PASS TypeError from request constructor takes priority - Bad cache init parameter value 
PASS TypeError from request constructor takes priority - Bad redirect init parameter value 
FAIL Request objects have a signal property assert_true: Signal member is present & truthy expected true got false
FAIL Signal on request object assert_true: Signal member is present & truthy expected true got false
FAIL Signal on request object created from request object assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL Signal on request object created from request object, with signal on second request assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL Signal on request object created from request object, with signal on second request overriding another assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL Signal retained after unrelated properties are overridden by fetch assert_unreached: Should have rejected: undefined Reached unreachable code
PASS Signal removed by setting to null 
FAIL Already aborted signal rejects immediately assert_unreached: Fetch must not resolve Reached unreachable code
PASS Request is still 'used' if signal is aborted before fetching 
FAIL response.arrayBuffer() rejects if already aborted assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL response.blob() rejects if already aborted assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL response.formData() rejects if already aborted assert_throws: function "function () { throw e }" threw object "NotSupportedError: The operation is not supported." that is not a DOMException AbortError: property "code" is equal to 9, expected 20
FAIL response.json() rejects if already aborted assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL response.text() rejects if already aborted assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL Already aborted signal does not make request assert_equals: Request hasn't been made to the server expected (object) null but got (string) "open"
FAIL Already aborted signal can be used for many fetches assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL Signal can be used to abort other fetches, even if another fetch succeeded before aborting assert_unreached: Should have rejected: undefined Reached unreachable code
FAIL Underlying connection is closed when aborting after receiving response promise_test: Unhandled rejection with value: object "Error: Timed out"
FAIL Underlying connection is closed when aborting after receiving response - no-cors promise_test: Unhandled rejection with value: object "TypeError: A server with the specified hostname could not be found."
TIMEOUT Fetch aborted & connection closed when aborted after calling response.arrayBuffer() Test timed out
NOTRUN Fetch aborted & connection closed when aborted after calling response.blob() 
NOTRUN Fetch aborted & connection closed when aborted after calling response.formData() 
NOTRUN Fetch aborted & connection closed when aborted after calling response.json() 
NOTRUN Fetch aborted & connection closed when aborted after calling response.text() 
NOTRUN Stream errors once aborted. Underlying connection closed. 
NOTRUN Stream errors once aborted, after reading. Underlying connection closed. 
NOTRUN Stream will not error if body is empty. It's closed with an empty queue before it errors. 
NOTRUN Readable stream synchronously cancels with AbortError if aborted before reading 
FAIL Signal state is cloned undefined is not an object (evaluating 'request.signal.aborted')
FAIL Clone aborts with original controller undefined is not an object (evaluating 'request.signal.addEventListener')

