Skip to content

Commit 2c2a872

Browse files
committed
fiyes shadow hydration escaping
1 parent 61034ce commit 2c2a872

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

.changeset/late-foxes-clean.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/kit': patch
3+
---
4+
5+
fixes shadow hydration escaping

packages/kit/src/runtime/client/renderer.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,12 @@ export class Renderer {
223223
if (is_leaf) {
224224
const serialized = document.querySelector('[data-type="svelte-props"]');
225225
if (serialized) {
226-
props = JSON.parse(/** @type {string} */ (serialized.textContent));
226+
props = JSON.parse(
227+
/** @type {string} */ (serialized.textContent)
228+
.replace(new RegExp('&', 'g'), '&')
229+
.replace(new RegExp('&lt;', 'g'), '<')
230+
.replace(new RegExp('&gt;', 'g'), '>')
231+
);
227232
}
228233
}
229234

packages/kit/src/runtime/server/page/render.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ export async function render_response({
261261

262262
if (shadow_props) {
263263
// prettier-ignore
264-
body += `<script type="application/json" data-type="svelte-props">${s(shadow_props)}</script>`;
264+
body += `<script type="application/json" data-type="svelte-props">${s(shadow_props).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;')}</script>`;
265265
}
266266
}
267267

0 commit comments

Comments
 (0)