Simplify domFor logic

This commit is contained in:
Barney 2022-06-12 10:47:57 +01:00 committed by Pierre-Yves Gérardy
parent 62b6308295
commit 9af9ea66a2

View file

@ -3,23 +3,16 @@
var delayedRemoval = new WeakMap var delayedRemoval = new WeakMap
module.exports.delayedRemoval = delayedRemoval module.exports.delayedRemoval = delayedRemoval
module.exports.domFor = function *domFor(vnode, {generation} = {generation: undefined}) { module.exports.domFor = function *domFor({dom, domSize}, {generation} = {}) {
let {dom, domSize} = vnode if (dom != null) do {
if (dom != null) { const {nextSibling} = dom
if (domSize == null) {
if (delayedRemoval.get(dom) === generation) { if (delayedRemoval.get(dom) === generation) {
yield dom yield dom
} domSize--
} else {
let i = 0, next
while (i < domSize) {
next = dom.nextSibling
if (delayedRemoval.get(dom) === generation) {
yield dom
i++
}
dom = next
}
} }
dom = nextSibling
} }
while (domSize)
} }