We purge it [here](https://github.com/facebook/react/blob/b11540ccb2321aeb7259fcf0b3a38aeeea35231d/src/isomorphic/ReactDebugTool.js#L88-L89) but this code doesn’t run because of the [early exit](https://github.com/facebook/react/blob/b11540ccb2321aeb7259fcf0b3a38aeeea35231d/src/isomorphic/ReactDebugTool.js#L53-L57).

Need to fix this and add a test case to make sure we don’t regress on it.

invariant(
          nextChild,
          'Expected devtool events to fire for the child ' +
          'before its parent includes it in onSetChildren().'
        );
        invariant(
          nextChild.displayName != null,
          'Expected onSetDisplayName() to fire for the child ' +
          'before its parent includes it in onSetChildren().'
        );
        invariant(
          nextChild.childIDs != null || nextChild.text != null,
          'Expected onSetChildren() or onSetText() to fire for the child ' +
          'before its parent includes it in onSetChildren().'
        );
        invariant(
          nextChild.isMounted,
          'Expected onMountComponent() to fire for the child ' +
          'before its parent includes it in onSetChildren().'
        );
        if (prevChildIDs.indexOf(nextChildID) === -1) {
          nextChild.parentID = id;
        }
      });
    });
  },
  onSetOwner(id, ownerID) {
    updateTree(id, item => item.ownerID = ownerID);
  },
  onSetText(id, text) {