diff --git a/src/compile/render-dom/index.ts b/src/compile/render-dom/index.ts index a6ef0ac69c23..af33a5b2f01f 100644 --- a/src/compile/render-dom/index.ts +++ b/src/compile/render-dom/index.ts @@ -423,14 +423,15 @@ export default function dom( ${set && `$$self.$set = ${set};`} - ${reactive_declarations.length > 0 && deindent` ${injected.length && `let ${injected.join(', ')};`} + + ${reactive_declarations.length > 0 && deindent` $$self.$$.update = ($$dirty = { ${Array.from(all_reactive_dependencies).map(n => `${n}: 1`).join(', ')} }) => { ${reactive_declarations} }; + `} ${fixed_reactive_declarations} - `} return ${stringify_props(filtered_declarations)}; } diff --git a/test/runtime/samples/reactive-values-fixed/_config.js b/test/runtime/samples/reactive-values-fixed/_config.js new file mode 100644 index 000000000000..58aee09c352a --- /dev/null +++ b/test/runtime/samples/reactive-values-fixed/_config.js @@ -0,0 +1,11 @@ +export default { + html: ` +
4
+ `, + + test({ assert, component, target }) { + assert.htmlEqual(target.innerHTML, ` +4
+ `); + } +}; diff --git a/test/runtime/samples/reactive-values-fixed/main.svelte b/test/runtime/samples/reactive-values-fixed/main.svelte new file mode 100644 index 000000000000..53445e03ba9e --- /dev/null +++ b/test/runtime/samples/reactive-values-fixed/main.svelte @@ -0,0 +1,6 @@ + + +{squared}