Lint and format src/compiler/compile/render_dom/wrappers/shared/mark_each_block_bindings.js

pull/8569/head
Simon Holthausen 3 years ago
parent 3cc9199932
commit f62903ca19

@ -3,33 +3,28 @@
* @param {import('../../../nodes/Binding.js').default} binding * @param {import('../../../nodes/Binding.js').default} binding
*/ */
export default function mark_each_block_bindings(parent, binding) { export default function mark_each_block_bindings(parent, binding) {
// we need to ensure that the each block creates a context including // we need to ensure that the each block creates a context including
// the list and the index, if they're not otherwise referenced // the list and the index, if they're not otherwise referenced
binding.expression.references.forEach((name) => { binding.expression.references.forEach((name) => {
const each_block = parent.node.scope.get_owner(name); const each_block = parent.node.scope.get_owner(name);
if (each_block) { if (each_block) {
( /** @type {import('../../../nodes/EachBlock.js').default} */(each_block)).has_binding = true; /** @type {import('../../../nodes/EachBlock.js').default} */ (each_block).has_binding = true;
} }
}); });
if (binding.name === 'group') { if (binding.name === 'group') {
/** @param {string} name */
/** @param {string} name */ const add_index_binding = (name) => {
const add_index_binding = (name) => { const each_block = parent.node.scope.get_owner(name);
const each_block = parent.node.scope.get_owner(name); if (each_block.type === 'EachBlock') {
if (each_block.type === 'EachBlock') { each_block.has_index_binding = true;
each_block.has_index_binding = true; for (const dep of each_block.expression.contextual_dependencies) {
for (const dep of each_block.expression.contextual_dependencies) { add_index_binding(dep);
add_index_binding(dep); }
} }
} };
}; // for `<input bind:group={} >`, we make sure that all the each blocks creates context with `index`
// for `<input bind:group={} >`, we make sure that all the each blocks creates context with `index` for (const name of binding.expression.contextual_dependencies) {
for (const name of binding.expression.contextual_dependencies) { add_index_binding(name);
add_index_binding(name); }
} }
}
} }

Loading…
Cancel
Save