From 28adfc7bdf3cf36f30918768731b7212f823d7ae Mon Sep 17 00:00:00 2001 From: David Ortner Date: Wed, 4 Oct 2023 21:40:38 +0200 Subject: [PATCH] #1114@trivial: Fixes problem with clearing immediates in cancelAll(). --- .../src/async-task-manager/AsyncTaskManager.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/happy-dom/src/async-task-manager/AsyncTaskManager.ts b/packages/happy-dom/src/async-task-manager/AsyncTaskManager.ts index 8e113af71..ae906b455 100644 --- a/packages/happy-dom/src/async-task-manager/AsyncTaskManager.ts +++ b/packages/happy-dom/src/async-task-manager/AsyncTaskManager.ts @@ -27,10 +27,12 @@ export default class AsyncTaskManager { */ public cancelAll(): void { const runningTimers = this.runningTimers; + const runningImmediates = this.runningImmediates; const runningTasks = this.runningTasks; this.runningTasks = {}; this.runningTaskCount = 0; + this.runningImmediates = []; this.runningTimers = []; if (this.whenCompleteImmediate) { @@ -38,12 +40,12 @@ export default class AsyncTaskManager { this.whenCompleteImmediate = null; } - for (const timer of runningTimers) { - global.clearTimeout(timer); + for (const immediate of runningImmediates) { + global.clearImmediate(immediate); } - for (const immediate of this.runningImmediates) { - global.clearImmediate(immediate); + for (const timer of runningTimers) { + global.clearTimeout(timer); } for (const key of Object.keys(runningTasks)) {