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.

*/
  updateTextContent: function(nextContent) {
    var prevChildren = this._renderedChildren;
    
    ReactChildReconciler.unmountChildren(prevChildren, false);
    for (var name in prevChildren) {
      if (prevChildren.hasOwnProperty(name)) {
        invariant(false, 'updateTextContent called on non-empty component.');
      }
    }
    
    var updates = [makeTextContent(nextContent)];
    processQueue(this, updates);
  },
  /**
   * Replaces any rendered children with a markup string.
   *
   * @param {string} nextMarkup String of markup.
   * @internal
   */
  updateMarkup: function(nextMarkup) {
    var prevChildren = this._renderedChildren;
    
    ReactChildReconciler.unmountChildren(prevChildren, false);
    for (var name in prevChildren) {
      if (prevChildren.hasOwnProperty(name)) {
        invariant(false, 'updateTextContent called on non-empty component.');
      }
    }
    var updates = [makeSetMarkup(nextMarkup)];