diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index 4c6996db39..f36d7d8901 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -735,9 +735,7 @@ function flush_queued_effects(effects) { export function schedule_effect(signal) { if (!is_flushing) { is_flushing = true; - if (!is_flushing_sync) { - queueMicrotask(flush_queued_root_effects); - } + queueMicrotask(flush_queued_root_effects); } var effect = (last_scheduled_effect = signal); @@ -821,30 +819,24 @@ function process_effects(root) { * @returns {T} */ export function flushSync(fn) { - var previously_flushing_sync = is_flushing_sync; - - try { - var result; - is_flushing_sync = true; + var result; + is_flushing_sync = true; - if (fn) { - is_flushing = true; - flush_queued_root_effects(); - result = fn(); - } - - while (true) { - flush_tasks(); + if (fn) { + is_flushing = true; + flush_queued_root_effects(); + result = fn(); + } - if (queued_root_effects.length === 0) { - return /** @type {T} */ (result); - } + while (true) { + flush_tasks(); - is_flushing = true; - flush_queued_root_effects(); + if (queued_root_effects.length === 0) { + return /** @type {T} */ (result); } - } finally { - is_flushing_sync = previously_flushing_sync; + + is_flushing = true; + flush_queued_root_effects(); } }