From 69e1f839ccf30309b42c7fa84b155e8464ac9d6d Mon Sep 17 00:00:00 2001 From: Nayan Gautam Date: Thu, 16 Jun 2022 03:47:42 +0000 Subject: [PATCH] lazily merge deps --- .../render_dom/wrappers/Element/index.ts | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/compiler/compile/render_dom/wrappers/Element/index.ts b/src/compiler/compile/render_dom/wrappers/Element/index.ts index c85197782f..916ecd5c55 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/index.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/index.ts @@ -1145,25 +1145,27 @@ export default class ElementWrapper extends Wrapper { block.chunks.hydrate.push(updater); - const dependencies = [ - ...this.dynamic_style_dependencies, - ...expression.dynamic_dependencies() - ]; - // Assume that style has changed through the spread attribute if (has_spread) { block.chunks.update.push(updater); - } else if (dependencies.length > 0) { - const is_dirty = block.renderer.dirty(dependencies); - const condition = should_cache - ? x`${is_dirty} && (${cached_snippet} !== (${cached_snippet} = ${snippet}))` - : is_dirty; + } else { + const dependencies = [ + ...this.dynamic_style_dependencies, + ...expression.dynamic_dependencies() + ]; - block.chunks.update.push(b` - if (${condition}) { - ${updater} - } - `); + if (dependencies.length > 0) { + const is_dirty = block.renderer.dirty(dependencies); + const condition = should_cache + ? x`${is_dirty} && (${cached_snippet} !== (${cached_snippet} = ${snippet}))` + : is_dirty; + + block.chunks.update.push(b` + if (${condition}) { + ${updater} + } + `); + } } }); }