From 52d81f9987ee44d6fa8e4c22adc72722e216a0a1 Mon Sep 17 00:00:00 2001 From: Jesse Skinner Date: Fri, 10 Jan 2020 12:26:27 -0500 Subject: [PATCH] Remove JSON.stringify used to encode HTML attributes in SSR. Replace with concatenation of double quotes before and after the value. Fixes #4240 --- src/runtime/internal/ssr.ts | 11 ++++++++--- .../spread-attributes-white-space/_expected.html | 9 +++++++-- .../samples/spread-attributes-white-space/main.svelte | 5 +++++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/runtime/internal/ssr.ts b/src/runtime/internal/ssr.ts index 274006f243..9b13d38c13 100644 --- a/src/runtime/internal/ssr.ts +++ b/src/runtime/internal/ssr.ts @@ -25,9 +25,14 @@ export function spread(args, classes_to_add) { else if (boolean_attributes.has(name.toLowerCase())) { if (value) str += " " + name; } else if (value != null) { - str += " " + name + "=" + JSON.stringify(String(value) - .replace(/"/g, '"') - .replace(/'/g, ''')); + str += + ' ' + + name + + '="' + + String(value) + .replace(/"/g, '"') + .replace(/'/g, ''') + + '"'; } }); diff --git a/test/server-side-rendering/samples/spread-attributes-white-space/_expected.html b/test/server-side-rendering/samples/spread-attributes-white-space/_expected.html index ecf5c120c6..a73bb17e8c 100644 --- a/test/server-side-rendering/samples/spread-attributes-white-space/_expected.html +++ b/test/server-side-rendering/samples/spread-attributes-white-space/_expected.html @@ -1,3 +1,8 @@ + bar +"> + + \ No newline at end of file diff --git a/test/server-side-rendering/samples/spread-attributes-white-space/main.svelte b/test/server-side-rendering/samples/spread-attributes-white-space/main.svelte index 49dcb93fdb..6919d9ea54 100644 --- a/test/server-side-rendering/samples/spread-attributes-white-space/main.svelte +++ b/test/server-side-rendering/samples/spread-attributes-white-space/main.svelte @@ -5,3 +5,8 @@ + +