From 57fb06ee0270b093d848970675dd7fd88a81d0b0 Mon Sep 17 00:00:00 2001 From: YIFAN WU Date: Mon, 25 Jul 2022 15:32:44 -0400 Subject: [PATCH] Brought back a guard to prevent calling flush() while flush is running --- src/runtime/internal/scheduler.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/runtime/internal/scheduler.ts b/src/runtime/internal/scheduler.ts index c0b8e57b08e8..620fffbfb308 100644 --- a/src/runtime/internal/scheduler.ts +++ b/src/runtime/internal/scheduler.ts @@ -51,7 +51,10 @@ export function add_flush_callback(fn) { // function, guarantees this behavior. const seen_callbacks = new Set(); let flushidx = 0; // Do *not* move this inside the flush() function +let flushing = false; export function flush() { + if (flushing) return; + flushing = true; const saved_component = current_component; do { @@ -90,7 +93,8 @@ export function flush() { while (flush_callbacks.length) { flush_callbacks.pop()(); } - + + flushing = false; update_scheduled = false; seen_callbacks.clear(); set_current_component(saved_component);