// META: title=Scheduler: postTask uses abort reason // META: global=window,worker 'use strict'; promise_test(t => { const controller = new TaskController(); const signal = controller.signal; const reason = new Error("Custom Abort Error"); controller.abort(reason); return promise_rejects_exactly(t, reason, scheduler.postTask(() => {}, {signal})); }, 'Calling postTask with an aborted TaskSignal rejects the promise with the abort reason'); promise_test(t => { const controller = new AbortController(); const signal = controller.signal; const reason = new Error("Custom Abort Error"); controller.abort(reason); return promise_rejects_exactly(t, reason, scheduler.postTask(() => {}, {signal})); }, 'Calling postTask with an aborted AbortSignal rejects the promise with the abort reason'); promise_test(t => { const controller = new TaskController(); const signal = controller.signal; const reason = new Error("Custom Abort Error"); const result = scheduler.postTask(() => {}, {signal}); controller.abort(reason); return promise_rejects_exactly(t, reason, result); }, 'Aborting a TaskSignal rejects the promise of a scheduled task with the abort reason'); promise_test(t => { const reason = new Error("Custom Abort Error"); const controller = new AbortController(); const signal = controller.signal; const result = scheduler.postTask(() => {}, {signal}); controller.abort(reason); return promise_rejects_exactly(t, reason, result); }, 'Aborting an AbortSignal rejects the promise of a scheduled task with the abort reason');