code: function _updateChildNodes(container, children) {
      var composed = tree.Composed.getChildNodes(container);
      var splices = calculateSplices(children, composed);
      // process removals
      for (var i=0, d=0, s; (i<splices.length) && (s=splices[i]); i++) {
        for (var j=0, n; (j < s.removed.length) && (n=s.removed[j]); j++) {
          // check if the node is still where we expect it is before trying
          // to remove it; this can happen if we move a node and
          // then schedule its previous host for distribution resulting in
          // the node being removed here.
          if (tree.Composed.getParentNode(n) === container) {
            tree.Composed.removeChild(container, n);
          }
          composed.splice(s.index + d, 1);
        }
        d -= s.addedCount;
      }
      // process adds
      for (var i$1=0, s$1, next; (i$1<splices.length) && (s$1=splices[i$1]); i$1++) { //eslint-disable-line no-redeclare
        next = composed[s$1.index];
        for (var j$1=s$1.index, n$1; j$1 < s$1.index + s$1.addedCount; j$1++) {
          n$1 = children[j$1];
          tree.Composed.insertBefore(container, n$1, next);
          // TODO(sorvell): is this splice strictly needed?
          composed.splice(j$1, 0, n$1);
        }
      }
    }
docs: Ensures that the rendered node list inside `container` is `children`.