docs: function(nextNestedChildren, transaction, context) {
        var prevChildren = this._renderedChildren;
        var nextChildren = ReactChildReconciler.updateChildren(
          prevChildren, nextNestedChildren, transaction, context
        );
        this._renderedChildren = nextChildren;
        if (!nextChildren && !prevChildren) {
          return;
        }
        var name;
        // `nextIndex` will increment for each child in `nextChildren`, but
        // `lastIndex` will be the last index visited in `prevChildren`.
        var lastIndex = 0;
        var nextIndex = 0;
        for (name in nextChildren) {
          if (!nextChildren.hasOwnProperty(name)) {
            continue;
          }
          var prevChild = prevChildren && prevChildren[name];
          var nextChild = nextChildren[name];
          if (prevChild === nextChild) {
            this.moveChild(prevChild, nextIndex, lastIndex);
            lastIndex = Math.max(prevChild._mountIndex, lastIndex);
            prevChild._mountIndex = nextIndex;
          } else {
            if (prevChild) {
              // Update `lastIndex` before `_mountIndex` gets unset by unmounting.
              lastIndex = Math.max(prevChild._mountIndex, lastIndex);
              this._unmountChildByName(prevChild, name);
            }
            // The child must be instantiated before it's mounted.
            this._mountChildByNameAtIndex(
              nextChild, name, nextIndex, transaction, context
            );
          }
          nextIndex++;
        }
        // Remove children that are no longer present.
        for (name in prevChildren) {
          if (prevChildren.hasOwnProperty(name) &&
              !(nextChildren && nextChildren.hasOwnProperty(name))) {
            this._unmountChildByName(prevChildren[name], name);
          }
        }
      }