remove context_overflow

pull/4095/head
Tan Li Hau 6 years ago
parent daf80e3a82
commit 977b183d0c

@ -26,7 +26,6 @@ export default class Renderer {
context: ContextMember[] = []; context: ContextMember[] = [];
context_lookup: Map<string, ContextMember> = new Map(); context_lookup: Map<string, ContextMember> = new Map();
context_overflow: boolean;
blocks: Array<Block | Node | Node[]> = []; blocks: Array<Block | Node | Node[]> = [];
readonly: Set<string> = new Set(); readonly: Set<string> = new Set();
meta_bindings: Array<Node | Node[]> = []; // initial values for e.g. window.innerWidth, if there's a <svelte:window> meta tag meta_bindings: Array<Node | Node[]> = []; // initial values for e.g. window.innerWidth, if there's a <svelte:window> meta tag
@ -97,8 +96,6 @@ export default class Renderer {
this.fragment.render(this.block, null, x`#nodes` as Identifier); this.fragment.render(this.block, null, x`#nodes` as Identifier);
this.context_overflow = this.context.length > 31;
this.context.forEach(member => { this.context.forEach(member => {
const { variable } = member; const { variable } = member;
if (variable) { if (variable) {
@ -240,15 +237,11 @@ export default class Renderer {
return x`${dirty} & /*${names.join(', ')}*/ 0` as BinaryExpression; return x`${dirty} & /*${names.join(', ')}*/ 0` as BinaryExpression;
} }
if (renderer.context_overflow) { return bitmask
return bitmask .map((b, i) => ({ b, i }))
.map((b, i) => ({ b, i })) .filter(({ b }) => b)
.filter(({ b }) => b) .map(({ b, i }) => x`${dirty}[${i}] & /*${b.names.join(', ')}*/ ${b.n}`)
.map(({ b, i }) => x`${dirty}[${i}] & /*${b.names.join(', ')}*/ ${b.n}`) .reduce((lhs, rhs) => x`${lhs} | ${rhs}`);
.reduce((lhs, rhs) => x`${lhs} | ${rhs}`);
}
return x`${dirty}[0] & /*${names.join(', ')}*/ ${bitmask[0].n}` as BinaryExpression;
} }
} as any; } as any;
} }

@ -429,7 +429,7 @@ export default function dom(
}` as ObjectExpression; }` as ObjectExpression;
let dirty; let dirty;
if (renderer.context_overflow) { if (renderer.context.length > 31) {
dirty = x`[]`; dirty = x`[]`;
for (let i = 0; i < renderer.context.length; i += 31) { for (let i = 0; i < renderer.context.length; i += 31) {
dirty.elements.push(x`-1`); dirty.elements.push(x`-1`);

Loading…
Cancel
Save