From 33b52692a880e4ec67ed3dea76f75478a60f655a Mon Sep 17 00:00:00 2001 From: Conduitry Date: Tue, 5 Mar 2019 12:31:02 -0500 Subject: [PATCH] prevent reactive declaration assignees from being dependencies (#2129) --- src/compile/Component.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/compile/Component.ts b/src/compile/Component.ts index 1b843e9ca2..7ff56dfa2d 100644 --- a/src/compile/Component.ts +++ b/src/compile/Component.ts @@ -1042,15 +1042,17 @@ export default class Component { } if (node.type === 'AssignmentExpression') { - assignees.add(getObject(node.left).name); + const { name } = getObject(node.left) + assignees.add(name); + dependencies.delete(name); } else if (node.type === 'UpdateExpression') { - assignees.add(getObject(node.argument).name); + const { name } = getObject(node.argument); + assignees.add(name); + dependencies.delete(name); } else if (isReference(node, parent)) { - const object = getObject(node); - const { name } = object; - + const { name } = getObject(node); const owner = scope.findOwner(name); - if ((!owner || owner === component.instance_scope) && (name[0] === '$' || component.var_lookup.has(name))) { + if ((!owner || owner === component.instance_scope) && (name[0] === '$' || component.var_lookup.has(name)) && !assignees.has(name)) { dependencies.add(name); }