Skip to content

Commit 27f6cbb

Browse files
committed
tweak
1 parent ce373ff commit 27f6cbb

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

packages/svelte/src/internal/client/dom/elements/attributes.js

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -354,22 +354,25 @@ export function set_attributes(
354354
if (!preserve_attribute_case) {
355355
name = normalize_attribute(name);
356356
}
357-
let is_default_value_or_checked = name === 'defaultValue' || name === 'defaultChecked';
358357

359-
if (value == null && !is_custom_element && !is_default_value_or_checked) {
358+
var is_default = name === 'defaultValue' || name === 'defaultChecked';
359+
360+
if (value == null && !is_custom_element && !is_default) {
360361
attributes[key] = null;
361-
// if we remove the value/checked attributes this also for some reasons reset
362-
// the default value so we need to keep track of it and reassign it after the remove
363-
let default_value_reset = /**@type {HTMLInputElement}*/ (element).defaultValue;
364-
let default_checked_reset = /**@type {HTMLInputElement}*/ (element).defaultChecked;
362+
363+
// removing value/checked also removes defaultValue/defaultChecked — preserve
364+
let default_value = /** @type {HTMLInputElement} */ (element).defaultValue;
365+
let default_checked = /** @type {HTMLInputElement} */ (element).defaultChecked;
366+
365367
element.removeAttribute(key);
368+
366369
if (key === 'value') {
367-
/**@type {HTMLInputElement}*/ (element).defaultValue = default_value_reset;
370+
/** @type {HTMLInputElement} */ (element).defaultValue = default_value;
368371
} else if (key === 'checked') {
369-
/**@type {HTMLInputElement}*/ (element).defaultChecked = default_checked_reset;
372+
/** @type {HTMLInputElement} */ (element).defaultChecked = default_checked;
370373
}
371374
} else if (
372-
is_default_value_or_checked ||
375+
is_default ||
373376
(setters.includes(name) && (is_custom_element || typeof value !== 'string'))
374377
) {
375378
// @ts-ignore

0 commit comments

Comments
 (0)