fix effect teardown bug

pull/10760/head
Rich Harris 2 years ago
parent abab2d6c95
commit 09b130847f

@ -410,7 +410,7 @@ export function execute_effect(signal) {
if ((signal.f & DESTROYED) !== 0) { if ((signal.f & DESTROYED) !== 0) {
return; return;
} }
const teardown = signal.teardown;
const previous_effect = current_effect; const previous_effect = current_effect;
const previous_component_context = current_component_context; const previous_component_context = current_component_context;
const previous_block = current_block; const previous_block = current_block;
@ -423,13 +423,9 @@ export function execute_effect(signal) {
try { try {
destroy_children(signal); destroy_children(signal);
if (teardown !== null) { signal.teardown?.();
teardown(); const teardown = execute_reaction_fn(signal);
} signal.teardown = typeof teardown === 'function' ? teardown : null;
const possible_teardown = execute_reaction_fn(signal);
if (typeof possible_teardown === 'function') {
signal.teardown = possible_teardown;
}
} catch (error) { } catch (error) {
const block = signal.block; const block = signal.block;
if (block !== null) { if (block !== null) {

Loading…
Cancel
Save