diff --git a/src/compile/render-dom/wrappers/InlineComponent/index.ts b/src/compile/render-dom/wrappers/InlineComponent/index.ts index 1fae0aedcc..df81b13a54 100644 --- a/src/compile/render-dom/wrappers/InlineComponent/index.ts +++ b/src/compile/render-dom/wrappers/InlineComponent/index.ts @@ -156,7 +156,7 @@ export default class InlineComponentWrapper extends Wrapper { component_opts.push(`$$inline: true`); } - const fragment_dependencies = new Set(); + const fragment_dependencies = new Set(this.fragment ? ['$$scope'] : []); this.slots.forEach(slot => { slot.block.dependencies.forEach(name => { const is_let = slot.scope.is_let(name); diff --git a/test/runtime/samples/component-slot-chained/Inner.svelte b/test/runtime/samples/component-slot-chained/Inner.svelte new file mode 100644 index 0000000000..8b6c0a40e9 --- /dev/null +++ b/test/runtime/samples/component-slot-chained/Inner.svelte @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/test/runtime/samples/component-slot-chained/Outer.svelte b/test/runtime/samples/component-slot-chained/Outer.svelte new file mode 100644 index 0000000000..c09cc83395 --- /dev/null +++ b/test/runtime/samples/component-slot-chained/Outer.svelte @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/test/runtime/samples/component-slot-chained/_config.js b/test/runtime/samples/component-slot-chained/_config.js new file mode 100644 index 0000000000..6c028f8c31 --- /dev/null +++ b/test/runtime/samples/component-slot-chained/_config.js @@ -0,0 +1,8 @@ +export default { + html: 'one', + + test({ assert, component, target }) { + component.text = 'two'; + assert.htmlEqual(target.innerHTML, `two`); + } +}; diff --git a/test/runtime/samples/component-slot-chained/main.svelte b/test/runtime/samples/component-slot-chained/main.svelte new file mode 100644 index 0000000000..8a3eb67f8e --- /dev/null +++ b/test/runtime/samples/component-slot-chained/main.svelte @@ -0,0 +1,9 @@ + + + + {text} + \ No newline at end of file