From 508d52302290ec184dff555e9a023e75a778881b Mon Sep 17 00:00:00 2001 From: Jordan Gensler Date: Mon, 3 Feb 2020 14:36:23 -0800 Subject: [PATCH] Keep track of flushing state --- 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 96fecc1fec..b0db71035a 100644 --- a/src/runtime/internal/scheduler.ts +++ b/src/runtime/internal/scheduler.ts @@ -31,8 +31,11 @@ export function add_flush_callback(fn) { flush_callbacks.push(fn); } +let flushing = false; const seen_callbacks = new Set(); export function flush() { + if (flushing) return; + flushing = true; do { // first, call beforeUpdate functions @@ -42,7 +45,7 @@ export function flush() { set_current_component(component); update(component.$$); } - + dirty_components.length = 0; while (binding_callbacks.length) binding_callbacks.pop()(); @@ -69,6 +72,7 @@ export function flush() { } update_scheduled = false; + flushing = false; seen_callbacks.clear(); }