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))