From e8b151cfeee8d0646a236ae85bae5b024484b824 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 15 Aug 2017 14:39:44 -0400 Subject: [PATCH] all tests passing --- src/generators/dom/visitors/Component/Component.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/generators/dom/visitors/Component/Component.ts b/src/generators/dom/visitors/Component/Component.ts index 56289f38be..6e088ccd37 100644 --- a/src/generators/dom/visitors/Component/Component.ts +++ b/src/generators/dom/visitors/Component/Component.ts @@ -204,7 +204,11 @@ export default function visitComponent( ${setParentFromChild} } `, - setParentFromChild, + setParentFromChild: deindent` + if (!${name_updating}.${binding.name}) { + ${setParentFromChild} + } + `, // TODO could binding.dependencies.length ever be 0? update: binding.dependencies.length && deindent` @@ -267,6 +271,7 @@ export default function visitComponent( local.create.addBlock(deindent` #component._root._beforecreate.push(function () { var state = #component.get(), childState = ${name}.get(), newState = {}; + if (!childState) return; ${bindings.map(binding => binding.setParentFromChild).join('\n')} ${name_updating} = { ${local.bindings.map(binding => `${binding.name}: true`).join(', ')} }; #component._set(newState);