23 lines
710 B
JavaScript
23 lines
710 B
JavaScript
// META: title=Scheduler: TaskController.abort() Aborts Correct Task
|
|
// META: global=window,worker
|
|
'use strict';
|
|
|
|
promise_test(async t => {
|
|
const taskControllers = [];
|
|
const taskResults = [];
|
|
|
|
for (let i = 0; i < 5; i++) {
|
|
const controller = new TaskController();
|
|
taskControllers.push(controller);
|
|
|
|
const signal = controller.signal;
|
|
taskResults.push(scheduler.postTask(() => i, {signal}));
|
|
}
|
|
|
|
const abortedTask = taskResults.splice(2, 1)[0];
|
|
taskControllers[2].abort();
|
|
await promise_rejects_dom(t, 'AbortError', abortedTask);
|
|
|
|
const result = await Promise.all(taskResults);
|
|
assert_equals(result.toString(), '0,1,3,4');
|
|
}, 'Test aborting a task aborts the appropriate task');
|