diff --git a/.changeset/quiet-poems-tease.md b/.changeset/quiet-poems-tease.md
new file mode 100644
index 000000000000..02941511e3f8
--- /dev/null
+++ b/.changeset/quiet-poems-tease.md
@@ -0,0 +1,5 @@
+---
+'@sveltejs/kit': patch
+---
+
+[fix] remove unnecessary JSON serialization of server data
diff --git a/packages/kit/src/runtime/server/page/render.js b/packages/kit/src/runtime/server/page/render.js
index 9ed1d1e647a1..19c7e4eb5c26 100644
--- a/packages/kit/src/runtime/server/page/render.js
+++ b/packages/kit/src/runtime/server/page/render.js
@@ -299,15 +299,6 @@ export async function render_response({
);
}
- if (branch.some((node) => node.server_data)) {
- serialized_data.push(
- render_json_payload_script(
- { type: 'server_data' },
- branch.map(({ server_data }) => server_data)
- )
- );
- }
-
if (validation_errors) {
serialized_data.push(
render_json_payload_script({ type: 'validation_errors' }, validation_errors)
diff --git a/packages/kit/src/utils/escape.spec.js b/packages/kit/src/utils/escape.spec.js
index 1474ddadfa36..57eef069c288 100644
--- a/packages/kit/src/utils/escape.spec.js
+++ b/packages/kit/src/utils/escape.spec.js
@@ -5,11 +5,13 @@ import { render_json_payload_script, escape_html_attr } from './escape.js';
const json = suite('render_json_payload_script');
json('escapes slashes', () => {
+ // The type here doesn't really matter for the purposes of escaping,
+ // but we want to avoid upsetting TypeScript.
assert.equal(
- render_json_payload_script({ type: 'server_data' }, [
+ render_json_payload_script({ type: 'validation_errors' }, [
{ unsafe: ''
);
@@ -17,10 +19,10 @@ json('escapes slashes', () => {
json('escapes exclamation marks', () => {
assert.equal(
- render_json_payload_script({ type: 'server_data' }, [
+ render_json_payload_script({ type: 'validation_errors' }, [
{ 'alert("xss")': 'unsafe' }
]),
- ''
);
diff --git a/packages/kit/types/internal.d.ts b/packages/kit/types/internal.d.ts
index 2543bc14c35f..a5813e4f78e8 100644
--- a/packages/kit/types/internal.d.ts
+++ b/packages/kit/types/internal.d.ts
@@ -133,7 +133,6 @@ export interface PageNode {
export type PayloadScriptAttributes =
| { type: 'data'; url: string; body?: string }
- | { type: 'server_data' }
| { type: 'validation_errors' };
export interface PrerenderDependency {