We missed this because Flow wasn't being run properly on Travis but now that it is, it's clear that #7716 introduced a bunch of new Flow failures. Most of these shouldn't be too bad and I like to say "you break it you buy it" so this one is for you @Aweary :)

There were a couple other pre-existing Flow issues that @vjeux is going to fix, so mostly this should just be the TestRenderer issues.

if (!children) {
    return '';
  }
  if (typeof children === 'string') {
    return children;
  }
  if (children.length) {
    return children.join('\n');
  }
  return '';
}
function createComponent(name) {
  const ReactARTComponent = function(element) {
    this.node = null;
    this.subscriptions = null;
    this.listeners = null;
    this._mountImage = null;
    this._renderedChildren = null;
    this.construct(element);
  };
  ReactARTComponent.displayName = name;
  for (let i = 1, l = arguments.length; i < l; i++) {
    assign(ReactARTComponent.prototype, arguments[i]);
  }
  return ReactARTComponent;
}
/**
 * Insert `node` into `parentNode` after `referenceNode`.
 */
function injectAfter(parentNode, referenceNode, node) {