diff --git a/src/compiler/compile/render_dom/Renderer.ts b/src/compiler/compile/render_dom/Renderer.ts index 8f0297a731..06d95fb1e6 100644 --- a/src/compiler/compile/render_dom/Renderer.ts +++ b/src/compiler/compile/render_dom/Renderer.ts @@ -26,7 +26,6 @@ export default class Renderer { context: ContextMember[] = []; context_lookup: Map = new Map(); - context_overflow: boolean; blocks: Array = []; readonly: Set = new Set(); meta_bindings: Array = []; // initial values for e.g. window.innerWidth, if there's a meta tag @@ -97,8 +96,6 @@ export default class Renderer { this.fragment.render(this.block, null, x`#nodes` as Identifier); - this.context_overflow = this.context.length > 31; - this.context.forEach(member => { const { variable } = member; if (variable) { @@ -240,15 +237,11 @@ export default class Renderer { return x`${dirty} & /*${names.join(', ')}*/ 0` as BinaryExpression; } - if (renderer.context_overflow) { - return bitmask - .map((b, i) => ({ b, i })) - .filter(({ b }) => b) - .map(({ b, i }) => x`${dirty}[${i}] & /*${b.names.join(', ')}*/ ${b.n}`) - .reduce((lhs, rhs) => x`${lhs} | ${rhs}`); - } - - return x`${dirty}[0] & /*${names.join(', ')}*/ ${bitmask[0].n}` as BinaryExpression; + return bitmask + .map((b, i) => ({ b, i })) + .filter(({ b }) => b) + .map(({ b, i }) => x`${dirty}[${i}] & /*${b.names.join(', ')}*/ ${b.n}`) + .reduce((lhs, rhs) => x`${lhs} | ${rhs}`); } } as any; } diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts index 6edb946c29..d97c3bc730 100644 --- a/src/compiler/compile/render_dom/index.ts +++ b/src/compiler/compile/render_dom/index.ts @@ -429,7 +429,7 @@ export default function dom( }` as ObjectExpression; let dirty; - if (renderer.context_overflow) { + if (renderer.context.length > 31) { dirty = x`[]`; for (let i = 0; i < renderer.context.length; i += 31) { dirty.elements.push(x`-1`);