From fccccd4580a6328ad6f4158e33668e1d4718fac8 Mon Sep 17 00:00:00 2001 From: hardl Date: Mon, 6 May 2024 12:44:41 +0200 Subject: [PATCH 1/3] this.$$c may be undefined if element was removed from DOM right after attaching --- packages/svelte/src/runtime/internal/Component.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/src/runtime/internal/Component.js b/packages/svelte/src/runtime/internal/Component.js index e41717642100..a0b0f5817217 100644 --- a/packages/svelte/src/runtime/internal/Component.js +++ b/packages/svelte/src/runtime/internal/Component.js @@ -335,7 +335,7 @@ if (typeof HTMLElement === 'function') { this.$$cn = false; // In a microtask, because this could be a move within the DOM Promise.resolve().then(() => { - if (!this.$$cn) { + if (!this.$$cn && this.$$c) { this.$$c.$destroy(); this.$$c = undefined; } From 696afa5eb16d315280f68910f9a5201c3c66fbb7 Mon Sep 17 00:00:00 2001 From: hardl Date: Mon, 6 May 2024 15:41:05 +0200 Subject: [PATCH 2/3] added changeset --- .changeset/many-trainers-pretend.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/many-trainers-pretend.md diff --git a/.changeset/many-trainers-pretend.md b/.changeset/many-trainers-pretend.md new file mode 100644 index 000000000000..95c2503a5d8b --- /dev/null +++ b/.changeset/many-trainers-pretend.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +Check if svelte component exists on custom element destroy From dcca3949f2adbb0d45215f431c7a8fabb2e73ebc Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Mon, 6 May 2024 16:00:33 +0200 Subject: [PATCH 3/3] Update .changeset/many-trainers-pretend.md --- .changeset/many-trainers-pretend.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/many-trainers-pretend.md b/.changeset/many-trainers-pretend.md index 95c2503a5d8b..207a88f30699 100644 --- a/.changeset/many-trainers-pretend.md +++ b/.changeset/many-trainers-pretend.md @@ -2,4 +2,4 @@ 'svelte': patch --- -Check if svelte component exists on custom element destroy +fix: check if svelte component exists on custom element destroy