From f31eed460d879be70533c6bd338aed3e81f53850 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 22 Nov 2017 12:56:39 -0500 Subject: [PATCH] fix indirect bindings, albeit messily --- src/generators/Generator.ts | 2 +- src/generators/dom/visitors/Element/addBindings.ts | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/generators/Generator.ts b/src/generators/Generator.ts index 4cf7dec27c..2abf03879e 100644 --- a/src/generators/Generator.ts +++ b/src/generators/Generator.ts @@ -669,7 +669,7 @@ export default class Generator { function findDependencies(node: Node, contextDependencies: Map, indexes: Set) { const dependencies: Set = new Set(); - let scope = annotateWithScopes(html); + let scope = annotateWithScopes(node); walk(node, { enter(node: Node, parent: Node) { diff --git a/src/generators/dom/visitors/Element/addBindings.ts b/src/generators/dom/visitors/Element/addBindings.ts index d158eaa6c8..633289c8a9 100644 --- a/src/generators/dom/visitors/Element/addBindings.ts +++ b/src/generators/dom/visitors/Element/addBindings.ts @@ -95,7 +95,18 @@ export default function addBindings( const { snippet, contexts } = block.contextualise( binding.value ); - const dependencies = binding.dependencies; + + // TODO tidy up + let dependencies = new Set(binding.dependencies); + binding.dependencies.forEach(prop => { + const indirectDependencies = generator.indirectDependencies.get(prop); + if (indirectDependencies) { + indirectDependencies.forEach(indirectDependency => { + dependencies.add(indirectDependency); + }); + } + }); + dependencies = Array.from(dependencies); contexts.forEach(context => { if (!~state.allUsedContexts.indexOf(context))