diff --git a/site/content/docs/02-template-syntax.md b/site/content/docs/02-template-syntax.md
index ae07c90993..600634ab11 100644
--- a/site/content/docs/02-template-syntax.md
+++ b/site/content/docs/02-template-syntax.md
@@ -94,6 +94,14 @@ An element or component can have multiple spread attributes, interspersed with r
```
+---
+
+*`$$props`* references all props that are passed to a component – including ones that are not declared with `export`. It is useful in rare cases, but not generally recommended, as it is difficult for Svelte to optimise.
+
+```html
+
+```
+
### Text expressions
diff --git a/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts b/src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts
index c63879c06f..fb3a4186db 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 0000000000..e00796baf3
--- /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 0000000000..d1613218d5
--- /dev/null
+++ b/test/runtime/samples/spread-component-literal/_config.js
@@ -0,0 +1,5 @@
+export default {
+ html: `
+
+ `
+};
diff --git a/test/runtime/samples/spread-component-literal/main.svelte b/test/runtime/samples/spread-component-literal/main.svelte
new file mode 100644
index 0000000000..13fdf99b69
--- /dev/null
+++ b/test/runtime/samples/spread-component-literal/main.svelte
@@ -0,0 +1,7 @@
+
+
+
+
+