|
|
@ -53,7 +53,7 @@ export default function bind_this(component: Component, block: Block, binding: B
|
|
|
|
const args = [];
|
|
|
|
const args = [];
|
|
|
|
for (const id of contextual_dependencies) {
|
|
|
|
for (const id of contextual_dependencies) {
|
|
|
|
args.push(id);
|
|
|
|
args.push(id);
|
|
|
|
block.add_variable(id, block.renderer.reference(id));
|
|
|
|
block.add_variable(id, block.renderer.reference(id.name));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const assign = block.get_unique_name(`assign_${variable.name}`);
|
|
|
|
const assign = block.get_unique_name(`assign_${variable.name}`);
|
|
|
@ -65,7 +65,7 @@ export default function bind_this(component: Component, block: Block, binding: B
|
|
|
|
`);
|
|
|
|
`);
|
|
|
|
|
|
|
|
|
|
|
|
const condition = Array.from(contextual_dependencies)
|
|
|
|
const condition = Array.from(contextual_dependencies)
|
|
|
|
.map(name => x`${name} !== ${block.renderer.reference(name)}`) // TODO figure out contextual deps
|
|
|
|
.map(name => x`${name} !== ${block.renderer.reference(name.name)}`)
|
|
|
|
.reduce((lhs, rhs) => x`${lhs} || ${rhs}`);
|
|
|
|
.reduce((lhs, rhs) => x`${lhs} || ${rhs}`);
|
|
|
|
|
|
|
|
|
|
|
|
// we push unassign and unshift assign so that references are
|
|
|
|
// we push unassign and unshift assign so that references are
|
|
|
@ -74,7 +74,7 @@ export default function bind_this(component: Component, block: Block, binding: B
|
|
|
|
block.chunks.update.push(b`
|
|
|
|
block.chunks.update.push(b`
|
|
|
|
if (${condition}) {
|
|
|
|
if (${condition}) {
|
|
|
|
${unassign}();
|
|
|
|
${unassign}();
|
|
|
|
${args.map(a => b`${a} = ${block.renderer.reference(a)}`)};
|
|
|
|
${args.map(a => b`${a} = ${block.renderer.reference(a.name)}`)};
|
|
|
|
${assign}();
|
|
|
|
${assign}();
|
|
|
|
}`
|
|
|
|
}`
|
|
|
|
);
|
|
|
|
);
|
|
|
|