diff --git a/src/compiler/compile/render_ssr/handlers/InlineComponent.ts b/src/compiler/compile/render_ssr/handlers/InlineComponent.ts index 8287b46268..73d31940e2 100644 --- a/src/compiler/compile/render_ssr/handlers/InlineComponent.ts +++ b/src/compiler/compile/render_ssr/handlers/InlineComponent.ts @@ -36,7 +36,7 @@ export default function(node: InlineComponent, renderer: Renderer, options: Rend let props; if (uses_spread) { - props = x`@_Object.assign(${ + props = x`@_Object.assign({}, ${ node.attributes .map(attribute => { if (attribute.is_spread) { diff --git a/test/js/samples/ssr-spread-component-props-immutably/Component.svelte b/test/js/samples/ssr-spread-component-props-immutably/Component.svelte new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/js/samples/ssr-spread-component-props-immutably/_config.js b/test/js/samples/ssr-spread-component-props-immutably/_config.js new file mode 100644 index 0000000000..bee4ab630c --- /dev/null +++ b/test/js/samples/ssr-spread-component-props-immutably/_config.js @@ -0,0 +1,5 @@ +export default { + options: { + generate: 'ssr' + } +}; diff --git a/test/js/samples/ssr-spread-component-props-immutably/expected.js b/test/js/samples/ssr-spread-component-props-immutably/expected.js new file mode 100644 index 0000000000..34780d2af8 --- /dev/null +++ b/test/js/samples/ssr-spread-component-props-immutably/expected.js @@ -0,0 +1,11 @@ +/* generated by Svelte vX.Y.Z */ +import { create_ssr_component, validate_component } from "svelte/internal"; + +import Component from './Component.svelte'; + +const Component_1 = create_ssr_component(($$result, $$props, $$bindings, slots) => { + let props = { x: 1, y: 2, z: 3 }; + return `${validate_component(Component, "Component").$$render($$result, Object.assign({}, props, { x: 2 }), {}, {})}`; +}); + +export default Component_1; \ No newline at end of file diff --git a/test/js/samples/ssr-spread-component-props-immutably/input.svelte b/test/js/samples/ssr-spread-component-props-immutably/input.svelte new file mode 100644 index 0000000000..352cb915e6 --- /dev/null +++ b/test/js/samples/ssr-spread-component-props-immutably/input.svelte @@ -0,0 +1,11 @@ + + +