From c374dd98f89eb93ff1bf7d9cd465d3c3cd5b3e5f Mon Sep 17 00:00:00 2001 From: 7nik Date: Tue, 17 Feb 2026 11:49:18 +0200 Subject: [PATCH 1/2] fix: locate Rollup annontaion friendly to JS downgraders --- .changeset/icy-otters-fall.md | 5 +++++ packages/svelte/src/internal/client/constants.js | 4 +++- packages/svelte/src/internal/client/dom/reconciler.js | 9 ++++----- 3 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 .changeset/icy-otters-fall.md diff --git a/.changeset/icy-otters-fall.md b/.changeset/icy-otters-fall.md new file mode 100644 index 000000000000..b15c282ca456 --- /dev/null +++ b/.changeset/icy-otters-fall.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: locate Rollup annontaion friendly to JS downgraders diff --git a/packages/svelte/src/internal/client/constants.js b/packages/svelte/src/internal/client/constants.js index 7b118a5b5f04..1c370289e675 100644 --- a/packages/svelte/src/internal/client/constants.js +++ b/packages/svelte/src/internal/client/constants.js @@ -67,7 +67,9 @@ export const STALE_REACTION = new (class StaleReactionError extends Error { message = 'The reaction that called `getAbortSignal()` was re-run or destroyed'; })(); -export const IS_XHTML = /* @__PURE__ */ globalThis.document?.contentType?.includes('xml') ?? false; +export const IS_XHTML = + !!globalThis.document?.contentType && + /* @__PURE__ */ globalThis.document.contentType.includes('xml'); export const ELEMENT_NODE = 1; export const TEXT_NODE = 3; export const COMMENT_NODE = 8; diff --git a/packages/svelte/src/internal/client/dom/reconciler.js b/packages/svelte/src/internal/client/dom/reconciler.js index 1f4750ce8f91..c5ccd6be3a37 100644 --- a/packages/svelte/src/internal/client/dom/reconciler.js +++ b/packages/svelte/src/internal/client/dom/reconciler.js @@ -2,15 +2,14 @@ import { create_element } from './operations.js'; -const policy = /* @__PURE__ */ globalThis?.window?.trustedTypes?.createPolicy( - 'svelte-trusted-html', - { +const policy = + globalThis?.window?.trustedTypes && + /* @__PURE__ */ globalThis.window.trustedTypes.createPolicy('svelte-trusted-html', { /** @param {string} html */ createHTML: (html) => { return html; } - } -); + }); /** @param {string} html */ function create_trusted_html(html) { From 867bc71fd43e101f8dec15ac868caee7b16ce3c6 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Tue, 17 Feb 2026 11:05:43 +0100 Subject: [PATCH 2/2] Apply suggestions from code review --- packages/svelte/src/internal/client/constants.js | 1 + packages/svelte/src/internal/client/dom/reconciler.js | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/svelte/src/internal/client/constants.js b/packages/svelte/src/internal/client/constants.js index 1c370289e675..3525539f1d81 100644 --- a/packages/svelte/src/internal/client/constants.js +++ b/packages/svelte/src/internal/client/constants.js @@ -68,6 +68,7 @@ export const STALE_REACTION = new (class StaleReactionError extends Error { })(); export const IS_XHTML = + // We gotta write it like this because after downleveling the pure comment may end up in the wrong location !!globalThis.document?.contentType && /* @__PURE__ */ globalThis.document.contentType.includes('xml'); export const ELEMENT_NODE = 1; diff --git a/packages/svelte/src/internal/client/dom/reconciler.js b/packages/svelte/src/internal/client/dom/reconciler.js index c5ccd6be3a37..0ceebd33372a 100644 --- a/packages/svelte/src/internal/client/dom/reconciler.js +++ b/packages/svelte/src/internal/client/dom/reconciler.js @@ -3,6 +3,7 @@ import { create_element } from './operations.js'; const policy = + // We gotta write it like this because after downleveling the pure comment may end up in the wrong location globalThis?.window?.trustedTypes && /* @__PURE__ */ globalThis.window.trustedTypes.createPolicy('svelte-trusted-html', { /** @param {string} html */