| // META: global=window,dedicatedworker |
| |
| test(t => { |
| const signal = AbortSignal.timeout(0); |
| assert_true(signal instanceof AbortSignal, "returned object is an AbortSignal"); |
| assert_false(signal.aborted, "returned signal is not already aborted"); |
| }, "AbortSignal.timeout() returns a non-aborted signal"); |
| |
| async_test(t => { |
| const signal = AbortSignal.timeout(5); |
| signal.onabort = t.step_func_done(() => { |
| assert_true(signal.aborted, "signal is aborted"); |
| assert_true(signal.reason instanceof DOMException, "signal.reason is a DOMException"); |
| assert_equals(signal.reason.name, "TimeoutError", "signal.reason is a TimeoutError"); |
| }); |
| }, "Signal returned by AbortSignal.timeout() times out"); |
| |
| async_test(t => { |
| let result = ""; |
| for (const value of ["1", "2", "3"]) { |
| const signal = AbortSignal.timeout(5); |
| signal.onabort = t.step_func(() => { result += value; }); |
| } |
| |
| const signal = AbortSignal.timeout(5); |
| signal.onabort = t.step_func_done(() => { |
| assert_equals(result, "123", "Timeout order should be 123"); |
| }); |
| }, "AbortSignal timeouts fire in order"); |