timeout.any.js (1098B)
1 // META: global=window,dedicatedworker 2 3 test(t => { 4 const signal = AbortSignal.timeout(0); 5 assert_true(signal instanceof AbortSignal, "returned object is an AbortSignal"); 6 assert_false(signal.aborted, "returned signal is not already aborted"); 7 }, "AbortSignal.timeout() returns a non-aborted signal"); 8 9 async_test(t => { 10 const signal = AbortSignal.timeout(5); 11 signal.onabort = t.step_func_done(() => { 12 assert_true(signal.aborted, "signal is aborted"); 13 assert_true(signal.reason instanceof DOMException, "signal.reason is a DOMException"); 14 assert_equals(signal.reason.name, "TimeoutError", "signal.reason is a TimeoutError"); 15 }); 16 }, "Signal returned by AbortSignal.timeout() times out"); 17 18 async_test(t => { 19 let result = ""; 20 for (const value of ["1", "2", "3"]) { 21 const signal = AbortSignal.timeout(5); 22 signal.onabort = t.step_func(() => { result += value; }); 23 } 24 25 const signal = AbortSignal.timeout(5); 26 signal.onabort = t.step_func_done(() => { 27 assert_equals(result, "123", "Timeout order should be 123"); 28 }); 29 }, "AbortSignal timeouts fire in order");