From fc3701d235ef9f6aea3408c745a7e4f321be6032 Mon Sep 17 00:00:00 2001 From: pngwn Date: Tue, 28 Dec 2021 11:33:20 +0000 Subject: [PATCH] fix: ensure non-bool attr are consistent in ssr and dom --- src/runtime/internal/ssr.ts | 2 +- test/runtime/samples/attribute-boolean-true/_config.js | 7 ++++--- test/runtime/samples/attribute-boolean-true/main.svelte | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/runtime/internal/ssr.ts b/src/runtime/internal/ssr.ts index fd72aa1548..4d91857ad4 100644 --- a/src/runtime/internal/ssr.ts +++ b/src/runtime/internal/ssr.ts @@ -141,7 +141,7 @@ export function create_ssr_component(fn) { export function add_attribute(name, value, boolean) { if (value == null || (boolean && !value)) return ''; - return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `"${value}"`}`}`; + return ` ${name}${value === true && boolean_attributes.has(name) ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `"${value}"`}`}`; } export function add_classes(classes) { diff --git a/test/runtime/samples/attribute-boolean-true/_config.js b/test/runtime/samples/attribute-boolean-true/_config.js index 79c8ea1ad6..c0c1ee0ee7 100644 --- a/test/runtime/samples/attribute-boolean-true/_config.js +++ b/test/runtime/samples/attribute-boolean-true/_config.js @@ -1,7 +1,8 @@ export default { - html: '', + html: '', test({ assert, target }) { - const textarea = target.querySelector('textarea'); + const textarea = target.querySelector("textarea"); + assert.equal(textarea.dataset.attr, "true"); assert.ok(textarea.readOnly); - } + }, }; diff --git a/test/runtime/samples/attribute-boolean-true/main.svelte b/test/runtime/samples/attribute-boolean-true/main.svelte index 04d5cab8f9..6474644749 100644 --- a/test/runtime/samples/attribute-boolean-true/main.svelte +++ b/test/runtime/samples/attribute-boolean-true/main.svelte @@ -1 +1 @@ - \ No newline at end of file +