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) }