diff --git a/src/compiler/compile/render_dom/wrappers/Element/index.ts b/src/compiler/compile/render_dom/wrappers/Element/index.ts index 52e099b42f8d..9ec36b12d7da 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/index.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/index.ts @@ -674,7 +674,7 @@ export default class ElementWrapper extends Wrapper { (${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value); `); block.chunks.update.push(b` - if (${block.renderer.dirty(Array.from(dependencies))}) (${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value);; + if (${block.renderer.dirty(Array.from(dependencies))} && 'value' in ${data}) (${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value);; `); } else if (this.node.name === 'input' && this.attributes.find(attr => attr.node.name === 'value')) { const type = this.node.get_static_attribute_value('type'); diff --git a/test/runtime/samples/spread-element-select-value-undefined/Select.svelte b/test/runtime/samples/spread-element-select-value-undefined/Select.svelte new file mode 100644 index 000000000000..6f5dadf00101 --- /dev/null +++ b/test/runtime/samples/spread-element-select-value-undefined/Select.svelte @@ -0,0 +1,12 @@ + + + +

{label}

diff --git a/test/runtime/samples/spread-element-select-value-undefined/_config.js b/test/runtime/samples/spread-element-select-value-undefined/_config.js new file mode 100644 index 000000000000..59cf59d662ae --- /dev/null +++ b/test/runtime/samples/spread-element-select-value-undefined/_config.js @@ -0,0 +1,11 @@ +export default { + async test({ assert, component, target, window }) { + const select = target.querySelector('select'); + + assert.equal(select.value, '1'); + + component.label = 'hoge'; + + assert.equal(select.value, '1'); + } +}; diff --git a/test/runtime/samples/spread-element-select-value-undefined/main.svelte b/test/runtime/samples/spread-element-select-value-undefined/main.svelte new file mode 100644 index 000000000000..57a2e3cf3eba --- /dev/null +++ b/test/runtime/samples/spread-element-select-value-undefined/main.svelte @@ -0,0 +1,11 @@ + + +