diff --git a/.changeset/warm-jokes-perform.md b/.changeset/warm-jokes-perform.md new file mode 100644 index 0000000000..3487de8c80 --- /dev/null +++ b/.changeset/warm-jokes-perform.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +Make internal Svelte Custom Element treeshakable 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 2d118bfab3..95f57be740 100644 --- a/packages/svelte/src/internal/client/dom/elements/custom-element.js +++ b/packages/svelte/src/internal/client/dom/elements/custom-element.js @@ -10,11 +10,12 @@ import { define_property, get_descriptor, object_keys } from '../../../shared/ut * @property {'String'|'Boolean'|'Number'|'Array'|'Object'} [type] */ -/** @type {any} */ -let SvelteElement; +function get_svelte_element_class() { + if (typeof HTMLElement !== 'function') { + return; + } -if (typeof HTMLElement === 'function') { - SvelteElement = class extends HTMLElement { + return class extends HTMLElement { /** The Svelte component constructor */ $$ctor; /** Slots */ @@ -219,6 +220,9 @@ if (typeof HTMLElement === 'function') { }; } +/** @type {any} */ +const SvelteElement = /* @__PURE__ */ get_svelte_element_class(); + /** * @param {string} prop * @param {any} value