24 lines
502 B
JavaScript
24 lines
502 B
JavaScript
"use strict"
|
|
|
|
var delayedRemoval = module.exports.delayedRemoval = new WeakMap
|
|
|
|
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
|
|
}
|
|
}
|
|
}
|
|
}
|