task-controller-abort2.any.js (710B)
1 // META: title=Scheduler: TaskController.abort() Aborts Correct Task 2 // META: global=window,worker 3 'use strict'; 4 5 promise_test(async t => { 6 const taskControllers = []; 7 const taskResults = []; 8 9 for (let i = 0; i < 5; i++) { 10 const controller = new TaskController(); 11 taskControllers.push(controller); 12 13 const signal = controller.signal; 14 taskResults.push(scheduler.postTask(() => i, {signal})); 15 } 16 17 const abortedTask = taskResults.splice(2, 1)[0]; 18 taskControllers[2].abort(); 19 await promise_rejects_dom(t, 'AbortError', abortedTask); 20 21 const result = await Promise.all(taskResults); 22 assert_equals(result.toString(), '0,1,3,4'); 23 }, 'Test aborting a task aborts the appropriate task');