varhole=values[i];// each Hole gets unrolled and re-assigned as value
// so that domdiff will deal with a node/wire, not with a hole
if(holeinstanceofHole)values[i]=unroll(stack[i]||(stack[i]=createCache()),hole);// arrays are recursively resolved so that each entry will contain
// also a DOM node or a wire, hence it can be diffed if/when needed
elseif(isArray(hole))unrollValues(stack[i]||(stack[i]=createCache()),hole,hole.length);// if the value is nothing special, the stack doesn't need to retain data
// this is useful also to cleanup previously retained data, if the value
// was a Hole, or an Array, but not anymore, i.e.: