From 84ff2c8318121385106a8cfc4e84fcca1040770e Mon Sep 17 00:00:00 2001 From: Philipp Pracht Date: Mon, 6 May 2024 10:59:29 +0200 Subject: [PATCH 1/4] fix: another additional check for component fix for #10454 --- .../svelte/src/internal/client/dom/elements/custom-element.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/dom/elements/custom-element.js b/packages/svelte/src/internal/client/dom/elements/custom-element.js index eb47d674c21d..aa05faf58445 100644 --- a/packages/svelte/src/internal/client/dom/elements/custom-element.js +++ b/packages/svelte/src/internal/client/dom/elements/custom-element.js @@ -193,7 +193,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 may be undefined if element was removed from DOM right after attaching this.$$c.$destroy(); destroy_effect(this.$$me); this.$$c = undefined; From ea6dbd80c2ac6d90104d32b5a5706580e8d097f2 Mon Sep 17 00:00:00 2001 From: hardl Date: Mon, 6 May 2024 12:51:02 +0200 Subject: [PATCH 2/4] removed comment --- .../svelte/src/internal/client/dom/elements/custom-element.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/src/internal/client/dom/elements/custom-element.js b/packages/svelte/src/internal/client/dom/elements/custom-element.js index aa05faf58445..36b4ff6afdb0 100644 --- a/packages/svelte/src/internal/client/dom/elements/custom-element.js +++ b/packages/svelte/src/internal/client/dom/elements/custom-element.js @@ -193,7 +193,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 && this.$$c) { // this.$$c may be undefined if element was removed from DOM right after attaching + if (!this.$$cn && this.$$c) { this.$$c.$destroy(); destroy_effect(this.$$me); this.$$c = undefined; From 1939443175c5afde28126d7216131704da26cf02 Mon Sep 17 00:00:00 2001 From: hardl Date: Mon, 6 May 2024 15:42:19 +0200 Subject: [PATCH 3/4] added changeset --- .changeset/olive-apples-lick.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/olive-apples-lick.md diff --git a/.changeset/olive-apples-lick.md b/.changeset/olive-apples-lick.md new file mode 100644 index 000000000000..95c2503a5d8b --- /dev/null +++ b/.changeset/olive-apples-lick.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +Check if svelte component exists on custom element destroy From 8ae1b54d9158ed8202646067cf03a054be92e823 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Mon, 6 May 2024 15:59:53 +0200 Subject: [PATCH 4/4] Update .changeset/olive-apples-lick.md --- .changeset/olive-apples-lick.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/olive-apples-lick.md b/.changeset/olive-apples-lick.md index 95c2503a5d8b..207a88f30699 100644 --- a/.changeset/olive-apples-lick.md +++ b/.changeset/olive-apples-lick.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