|
|
@ -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,16 +237,12 @@ 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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|