Skip to content

Commit dfaf0d2

Browse files
committed
fix
1 parent 163c55c commit dfaf0d2

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

packages/svelte/src/internal/client/dom/blocks/boundary.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ export function boundary(node, props, children) {
179179
var sources = boundary.fn.sources;
180180
for (var [source, entry] of sources) {
181181
if (source.v !== entry.v) {
182-
mark_reactions(source, DIRTY);
182+
mark_reactions(source, DIRTY, source);
183183
}
184184
}
185185
sources.clear();

packages/svelte/src/internal/client/runtime.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -789,14 +789,11 @@ function flush_deferred() {
789789
* @returns {void}
790790
*/
791791
export function schedule_effect(signal, source) {
792-
if (scheduler_mode === FLUSH_MICROTASK) {
793-
if (!is_micro_task_queued) {
794-
is_micro_task_queued = true;
795-
queueMicrotask(flush_deferred);
796-
}
797-
}
798-
799792
if (source && (signal.f & ASYNC_DERIVED) !== 0) {
793+
if (active_effect === signal) {
794+
set_signal_status(signal, MAYBE_DIRTY);
795+
return;
796+
}
800797
var boundary = get_boundary(signal);
801798
// @ts-ignore
802799
var sources = boundary.fn.sources;
@@ -807,6 +804,13 @@ export function schedule_effect(signal, source) {
807804
}
808805
}
809806

807+
if (scheduler_mode === FLUSH_MICROTASK) {
808+
if (!is_micro_task_queued) {
809+
is_micro_task_queued = true;
810+
queueMicrotask(flush_deferred);
811+
}
812+
}
813+
810814
last_scheduled_effect = signal;
811815

812816
var effect = signal;

0 commit comments

Comments
 (0)