diff --git a/src/runtime/internal/ssr.ts b/src/runtime/internal/ssr.ts index 91d6e452fe..266e0d4149 100644 --- a/src/runtime/internal/ssr.ts +++ b/src/runtime/internal/ssr.ts @@ -122,7 +122,7 @@ export function get_store_value(store: Readable): T | undefined { export function add_attribute(name, value) { if (!value) return ''; - return ` ${name}${value === true ? '' : `=${JSON.stringify(value)}`}`; + return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(value) : `"${value}"`}`}`; } export function add_classes(classes) { diff --git a/test/runtime/samples/binding-circular/_config.js b/test/runtime/samples/binding-circular/_config.js new file mode 100644 index 0000000000..505ed22beb --- /dev/null +++ b/test/runtime/samples/binding-circular/_config.js @@ -0,0 +1,13 @@ +export default { + html: ` + + `, + + ssrHtml: ` + + ` +}; diff --git a/test/runtime/samples/binding-circular/main.svelte b/test/runtime/samples/binding-circular/main.svelte new file mode 100644 index 0000000000..372f5d3c99 --- /dev/null +++ b/test/runtime/samples/binding-circular/main.svelte @@ -0,0 +1,10 @@ + + + \ No newline at end of file