From 9d202b78db46aef4f0782b3d5c2054eb9ff7cfc7 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Fri, 26 Jan 2024 01:07:49 +0000 Subject: [PATCH 1/4] chore: cleanup derived destruction --- packages/svelte/src/internal/client/runtime.js | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index 6fdd30e2298e..1df7b3e104c5 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -494,15 +494,7 @@ function destroy_references(signal) { if (references !== null) { let i; for (i = 0; i < references.length; i++) { - const reference = references[i]; - if ((reference.f & IS_EFFECT) !== 0) { - destroy_signal(reference); - } else { - destroy_references(reference); - remove_consumers(reference, 0); - reference.d = null; - } - } + destroy_signal(references[i]); } } @@ -1273,8 +1265,6 @@ export function destroy_signal(signal) { signal.y = signal.x = signal.b = - // @ts-expect-error - this is fine, since we're assigning to null to clear out a destroyed signal - signal.v = signal.d = signal.c = null; From e2c219bde9ba8939218285697c4ec55ba56ecdc7 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Fri, 26 Jan 2024 01:08:11 +0000 Subject: [PATCH 2/4] add changeset --- .changeset/great-fans-unite.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/great-fans-unite.md diff --git a/.changeset/great-fans-unite.md b/.changeset/great-fans-unite.md new file mode 100644 index 000000000000..813edfa99a02 --- /dev/null +++ b/.changeset/great-fans-unite.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +chore: cleanup derived destruction From b8c0b11f74e15ce165da9bb5bdaa7ba57c8549fa Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Fri, 26 Jan 2024 01:09:25 +0000 Subject: [PATCH 3/4] cleanup --- packages/svelte/src/internal/client/runtime.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index 1df7b3e104c5..c52b7aa654e7 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -495,6 +495,7 @@ function destroy_references(signal) { let i; for (i = 0; i < references.length; i++) { destroy_signal(references[i]); + } } } From d1e025caf736e2e61748c39bbc4dfe1aeffe3445 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Fri, 26 Jan 2024 01:12:37 +0000 Subject: [PATCH 4/4] cleanup --- packages/svelte/src/internal/client/runtime.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index c52b7aa654e7..7ab5b66092ce 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -1261,14 +1261,7 @@ export function destroy_signal(signal) { const flags = signal.f; destroy_references(signal); remove_consumers(signal, 0); - signal.i = - signal.r = - signal.y = - signal.x = - signal.b = - signal.d = - signal.c = - null; + signal.i = signal.r = signal.y = signal.x = signal.b = signal.d = signal.c = null; set_signal_status(signal, DESTROYED); if (destroy !== null) { if (is_array(destroy)) {