docs: function(
      internalInstance, nextElement, transaction, context
    ) {
      var prevElement = internalInstance._currentElement;
  
      if (nextElement === prevElement && nextElement._owner != null) {
        // Since elements are immutable after the owner is rendered,
        // we can do a cheap identity compare here to determine if this is a
        // superfluous reconcile. It's possible for state to be mutable but such
        // change should trigger an update of the owner which would recreate
        // the element. We explicitly check for the existence of an owner since
        // it's possible for an element created outside a composite to be
        // deeply mutated and reused.
        return;
      }
  
      if ("production" !== process.env.NODE_ENV) {
        ReactElementValidator.checkAndWarnForMutatedProps(nextElement);
      }
  
      var refsChanged = ReactRef.shouldUpdateRefs(
        prevElement,
        nextElement
      );
  
      if (refsChanged) {
        ReactRef.detachRefs(internalInstance, prevElement);
      }
  
      internalInstance.receiveComponent(nextElement, transaction, context);
  
      if (refsChanged) {
        transaction.getReactMountReady().enqueue(attachRefs, internalInstance);
      }
    }