Any warnings driven off of `warnAboutDeprecatedLifecycles` should use `shared/lowPriorityWarning` rather than `fbjs/lib/warning` to avoid thrashing automated tests.
let childContext;
  let childContextTypes, contextKey;
  while (React.isValidElement(child)) {
    
    element = ((child: any): ReactElement);
    if (__DEV__) {
      pushElementToDebugStack(element);
    }
    Component = element.type;
    if (typeof Component !== 'function') {
      break;
    }
    publicContext = processContext(Component, context);
    queue = [];
    replace = false;
    updater = {
      isMounted: function(publicInstance) {
        return false;
      },
      enqueueForceUpdate: function(publicInstance) {
        if (queue === null) {
          warnNoop(publicInstance, 'forceUpdate');
          return null;
        }
      },
      enqueueReplaceState: function(publicInstance, completeState) {
        replace = true;
        queue = [completeState];
      },
      enqueueSetState: function(publicInstance, currentPartialState) {