diff --git a/.changeset/late-geckos-draw.md b/.changeset/late-geckos-draw.md new file mode 100644 index 0000000000..93c4fffc1d --- /dev/null +++ b/.changeset/late-geckos-draw.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: try catch `strict_equals` to avoid error accessing `STATE_SYMBOL` diff --git a/packages/svelte/src/internal/client/dev/equality.js b/packages/svelte/src/internal/client/dev/equality.js index c1c392ba87..170f7baf95 100644 --- a/packages/svelte/src/internal/client/dev/equality.js +++ b/packages/svelte/src/internal/client/dev/equality.js @@ -78,9 +78,13 @@ export function init_array_prototype_warnings() { * @returns {boolean} */ export function strict_equals(a, b, equal = true) { - if ((a === b) !== (get_proxied_value(a) === get_proxied_value(b))) { - w.state_proxy_equality_mismatch(equal ? '===' : '!=='); - } + // try-catch needed because this tries to read properties of `a` and `b`, + // which could be disallowed for example in a secure context + try { + if ((a === b) !== (get_proxied_value(a) === get_proxied_value(b))) { + w.state_proxy_equality_mismatch(equal ? '===' : '!=='); + } + } catch {} return (a === b) === equal; }