From 007fb99dd80b9f63cc73b38c3508283a16b797bb Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 21 Nov 2019 14:00:13 -0500 Subject: [PATCH] all tests passing. phase one complete, i guess --- src/compiler/compile/render_dom/Renderer.ts | 6 +++++- src/compiler/compile/render_dom/invalidate.ts | 1 + test/vars/samples/store-referenced/_config.js | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/compiler/compile/render_dom/Renderer.ts b/src/compiler/compile/render_dom/Renderer.ts index 4c87c7572b..0c3574cd49 100644 --- a/src/compiler/compile/render_dom/Renderer.ts +++ b/src/compiler/compile/render_dom/Renderer.ts @@ -181,7 +181,11 @@ export default class Renderer { }); }); - return Array.from(deps) + // TODO ideally globals etc wouldn't be here in the first place + const filtered = Array.from(deps).filter(n => this.context_lookup.has(n)); + if (!filtered.length) return null; + + return filtered .map(n => x`$$invalidate(${this.context_lookup.get(n).index}, ${n})`) .reduce((lhs, rhs) => x`${lhs}, ${rhs}}`); } diff --git a/src/compiler/compile/render_dom/invalidate.ts b/src/compiler/compile/render_dom/invalidate.ts index ba72f9b7f1..98fca59028 100644 --- a/src/compiler/compile/render_dom/invalidate.ts +++ b/src/compiler/compile/render_dom/invalidate.ts @@ -19,6 +19,7 @@ export function invalidate(renderer: Renderer, scope: Scope, node: Node, names: !variable.module && ( variable.referenced || + variable.subscribable || variable.is_reactive_dependency || variable.export_name || variable.name[0] === '$' diff --git a/test/vars/samples/store-referenced/_config.js b/test/vars/samples/store-referenced/_config.js index bac35d1dba..cb92b67ea4 100644 --- a/test/vars/samples/store-referenced/_config.js +++ b/test/vars/samples/store-referenced/_config.js @@ -8,7 +8,7 @@ export default { module: false, mutated: false, reassigned: false, - referenced: true, + referenced: false, referenced_from_script: false, writable: true },