File tree Expand file tree Collapse file tree 1 file changed +12
-9
lines changed
packages/svelte/src/internal/client/dom/elements Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments