function withElementCollector(work) {
  let r;
  let poolIndex = elementPool.length;
  elementPool[poolIndex] = [];
  try {
    r = work();
  } finally {
    drainPool(elementPool[poolIndex]);
    elementPool = elementPool.slice(
      0, poolIndex
    );
  }
  return r;
}
Every HTMLElement must be requested inside this function...
The reason is that it provides a mechanism that disposes
all the elements (built with `createHTMLElement`) after a test.