![Screenshot 2019-12-16 10 51 05](https://user-images.githubusercontent.com/793565/70934095-fd91ed80-1ff1-11ea-93b5-746e816585ec.png)
There's seems to be circumstances where unmounted DOM/Fibers are kept alive by React DevTools. They're kept alive in `primaryFibers`:
https://github.com/facebook/react/blob/34527063083195558f98108cde10b5d6ad0d6865/packages/react-devtools-shared/src/backend/renderer.js#L772

It seems like a WeakSet would be appropriate and would remove the leak. Otherwise we'd need to understand why recordUnmount isn't called.

CC @bvaughn  
setErrorHandler(shouldErrorFiberAccordingToMap);
    }
    const fiber = idToArbitraryFiberMap.get(id);
    if (fiber != null) {
      scheduleUpdate(fiber);
    }
  }
  function shouldSuspendFiberAlwaysFalse() {
    return false;
  }
  const forceFallbackForSuspenseIDs = new Set();
  function shouldSuspendFiberAccordingToSet(fiber) {
    const maybeID = getFiberIDUnsafe(((fiber: any): Fiber));
    return maybeID !== null && forceFallbackForSuspenseIDs.has(maybeID);
  }
  function overrideSuspense(id, forceFallback) {
    if (
      typeof setSuspenseHandler !== 'function' ||
      typeof scheduleUpdate !== 'function'
    ) {
      throw new Error(
        'Expected overrideSuspense() to not get called for earlier React versions.',
      );
    }
    if (forceFallback) {
      forceFallbackForSuspenseIDs.add(id);
      if (forceFallbackForSuspenseIDs.size === 1) {
         F
        setSuspenseHandler(shouldSuspendFiberAccordingToSet);
      }