From 9af9ea66a29b27fcc1b770a60904b2d5be4d6899 Mon Sep 17 00:00:00 2001 From: Barney Date: Sun, 12 Jun 2022 10:47:57 +0100 Subject: [PATCH] Simplify domFor logic --- render/domFor.js | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/render/domFor.js b/render/domFor.js index 7cf33a4b..f01c1e2b 100644 --- a/render/domFor.js +++ b/render/domFor.js @@ -3,23 +3,16 @@ var delayedRemoval = new WeakMap module.exports.delayedRemoval = delayedRemoval -module.exports.domFor = function *domFor(vnode, {generation} = {generation: undefined}) { - let {dom, domSize} = vnode - if (dom != null) { - if (domSize == null) { - if (delayedRemoval.get(dom) === generation) { - yield dom - } - } else { - let i = 0, next - while (i < domSize) { - next = dom.nextSibling - if (delayedRemoval.get(dom) === generation) { - yield dom - i++ - } - dom = next - } +module.exports.domFor = function *domFor({dom, domSize}, {generation} = {}) { + if (dom != null) do { + const {nextSibling} = dom + + if (delayedRemoval.get(dom) === generation) { + yield dom + domSize-- } + + dom = nextSibling } + while (domSize) }