(renderer, scope2, node2, names2, main_execution_context = false)
| 15057 | return a === b2; |
| 15058 | } |
| 15059 | function invalidate(renderer, scope2, node2, names2, main_execution_context = false) { |
| 15060 | const { component } = renderer; |
| 15061 | const [head, ...tail] = Array.from(names2).filter((name) => { |
| 15062 | const owner = scope2.find_owner(name); |
| 15063 | return !owner || owner === component.instance_scope; |
| 15064 | }).map((name) => component.var_lookup.get(name)).filter((variable) => { |
| 15065 | return variable && (!variable.hoistable && !variable.global && !variable.module && (variable.referenced || variable.subscribable || variable.is_reactive_dependency || variable.export_name || variable.name[0] === "$")); |
| 15066 | }); |
| 15067 | function get_invalidated(variable, node3) { |
| 15068 | if (main_execution_context && !variable.subscribable && variable.name[0] !== "$") { |
| 15069 | return node3; |
| 15070 | } |
| 15071 | return renderer_invalidate(renderer, variable.name, void 0, main_execution_context); |
| 15072 | } |
| 15073 | if (!head) { |
| 15074 | return node2; |
| 15075 | } |
| 15076 | component.has_reactive_assignments = true; |
| 15077 | if (node2.type === "AssignmentExpression" && node2.operator === "=" && nodes_match(node2.left, node2.right) && tail.length === 0) { |
| 15078 | return get_invalidated(head, node2); |
| 15079 | } |
| 15080 | const is_store_value = head.name[0] === "$" && head.name[1] !== "$"; |
| 15081 | const extra_args = tail.map((variable) => get_invalidated(variable)).filter(Boolean); |
| 15082 | if (is_store_value) { |
| 15083 | return x`@set_store_value(${head.name.slice(1)}, ${node2}, ${head.name}, ${extra_args})`; |
| 15084 | } |
| 15085 | let invalidate2; |
| 15086 | if (!main_execution_context) { |
| 15087 | const pass_value = extra_args.length > 0 || node2.type === "AssignmentExpression" && node2.left.type !== "Identifier" || node2.type === "UpdateExpression" && (!node2.prefix || node2.argument.type !== "Identifier"); |
| 15088 | if (pass_value) { |
| 15089 | extra_args.unshift({ |
| 15090 | type: "Identifier", |
| 15091 | name: head.name |
| 15092 | }); |
| 15093 | } |
| 15094 | invalidate2 = x`$$invalidate(${renderer.context_lookup.get(head.name).index}, ${node2}, ${extra_args})`; |
| 15095 | } else { |
| 15096 | invalidate2 = extra_args.length ? [node2, ...extra_args] : node2; |
| 15097 | } |
| 15098 | if (head.subscribable && head.reassigned) { |
| 15099 | const subscribe = `$$subscribe_${head.name}`; |
| 15100 | invalidate2 = x`${subscribe}(${invalidate2})`; |
| 15101 | } |
| 15102 | return invalidate2; |
| 15103 | } |
| 15104 | function renderer_invalidate(renderer, name, value2, main_execution_context = false) { |
| 15105 | const variable = renderer.component.var_lookup.get(name); |
| 15106 | if (variable && (variable.subscribable && (variable.reassigned || variable.export_name))) { |
no test coverage detected