DEBUG testing btakita EachBlock changes

pull/1249/head
Andrew Shu 7 years ago committed by Brian Takita
parent b3fa9656bb
commit baff9bc6d1

@ -374,7 +374,14 @@ export default class EachBlock extends Node {
var ${expected} = ${head};
var ${last} = null;
var discard_pile = [];
var rendered = {};
var all = {};
var each_all = ${head};
while(each_all) {
all[each_all.key] = each_all;
each_all = each_all.next;
}
for (#i = 0; #i < ${each_block_value}.${length}; #i += 1) {
var ${key} = ${each_block_value}[#i].${this.key};
@ -392,18 +399,21 @@ export default class EachBlock extends Node {
${expected} = ${expected}.next;
} else {
if (${iteration}) {
// probably a deletion
while (${expected} && ${expected}.key !== ${key}) {
${expected}.discard = true;
discard_pile.push(${expected});
${expected} = ${expected}.next;
};
${expected} = ${expected} && ${expected}.next;
${iteration}.discard = false;
${iteration}.last = ${last};
if (!${expected}) ${iteration}.m(${updateMountNode}, ${anchor});
var next_data = ${each_block_value}[#i+1];
var next = next_data && ${lookup}[next_data.id];
var first = ${iteration}.first;
var first_next = next && next.first;
///insertNode(first, tbody, first_next);
${updateMountNode}.insertBefore(first, first_next);
${expected} = next;
${iteration}.next = ${expected};
var prev_data = ${each_block_value}[#i-1];
var prev = prev_data && ${lookup}[prev_data.id];
if (prev) {
prev.next = ${iteration};
}
} else {
// key is being inserted
${iteration} = ${lookup}[${key}] = ${create_each_block}(#component, ${key}, ${this.each_context});
@ -417,7 +427,6 @@ export default class EachBlock extends Node {
} else {
// we're appending from this point forward
if (${iteration}) {
${iteration}.discard = false;
${iteration}.next = null;
${iteration}.m(${updateMountNode}, ${anchor});
} else {
@ -426,6 +435,9 @@ export default class EachBlock extends Node {
${iteration}.${mountOrIntro}(${updateMountNode}, ${anchor});
}
}
if (${iteration}) {
rendered[${iteration}.key] = ${iteration};
}
if (${last}) ${last}.next = ${iteration};
${iteration}.last = ${last};
@ -435,7 +447,11 @@ export default class EachBlock extends Node {
if (${last}) ${last}.next = null;
${destroy}
for (var key_all in all) {
if (!rendered[key_all]) all[key_all].d();
}
${head} = ${lookup}[${each_block_value}[0] && ${each_block_value}[0].${this.key}];
`);

Loading…
Cancel
Save