diff --git a/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts b/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts index c63879c06fc3..fb3a4186dba9 100644 --- a/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts +++ b/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts @@ -220,9 +220,9 @@ export default class InlineComponentWrapper extends Wrapper { const conditions = Array.from(all_dependencies).map(dep => `changed.${dep}`).join(' || '); updates.push(deindent` - var ${name_changes} = ${all_dependencies.size === 1 ? `${conditions}` : `(${conditions})`} ? @get_spread_update(${levels}, [ + var ${name_changes} = ${conditions ? `(${conditions}) ? @get_spread_update(${levels}, [ ${changes.join(',\n')} - ]) : {}; + ]) : {}` : '{}'}; `); } else { this.node.attributes diff --git a/test/runtime/samples/spread-component-literal/Widget.svelte b/test/runtime/samples/spread-component-literal/Widget.svelte new file mode 100644 index 000000000000..e00796baf3ef --- /dev/null +++ b/test/runtime/samples/spread-component-literal/Widget.svelte @@ -0,0 +1,5 @@ + + +
foo: {foo}
diff --git a/test/runtime/samples/spread-component-literal/_config.js b/test/runtime/samples/spread-component-literal/_config.js new file mode 100644 index 000000000000..d1613218d56a --- /dev/null +++ b/test/runtime/samples/spread-component-literal/_config.js @@ -0,0 +1,5 @@ +export default { + html: ` +foo: bar