diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index b5cee5cd9e..cc8c26bb8c 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -661,6 +661,8 @@ function infinite_loop_guard() { * @returns {void} */ function flush_queued_root_effects(root_effects) { + queued_root_effects = []; + var length = root_effects.length; if (length === 0) { return; @@ -727,9 +729,7 @@ function flush_queued_effects(effects) { function process_deferred() { is_micro_task_queued = false; - const previous_queued_root_effects = queued_root_effects; - queued_root_effects = []; - flush_queued_root_effects(previous_queued_root_effects); + flush_queued_root_effects(queued_root_effects); if (!is_micro_task_queued) { flush_count = 0; @@ -857,10 +857,9 @@ export function flush_sync(fn) { infinite_loop_guard(); scheduler_mode = FLUSH_SYNC; - queued_root_effects = []; is_micro_task_queued = false; - flush_queued_root_effects(previous_queued_root_effects); + flush_queued_root_effects(queued_root_effects); var result = fn?.();