![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  
}
   Returns an ID if one has already been generated for the Fiber or null if one has not been generated.
   Use this method while e.g. logging to avoid over-retaining Fibers.
  function getFiberIDUnsafe(fiber: Fiber): number | null {
    if (fiberToIDMap.has(fiber)) {
      return ((fiberToIDMap.get(fiber): any): number);
    } else {
      const {alternate} = fiber;
      if (alternate !== null && fiberToIDMap.has(alternate)) {
        return ((fiberToIDMap.get(alternate): any): number);
      }
    }
    return null;
  }
   Removes a Fiber (and its alternate) from the Maps used to track their id.
   This method should always be called when a Fiber is unmounting.
  function untrackFiberID(fiber: Fiber) {
    if (__DEBUG__) {
      debug('untrackFiberID()', fiber, fiber.return, 'schedule after delay');
    }
     Untrack Fibers after a slight delay in order to support a Fast Refresh edge case:
     1. Component type is updated and Fast Refresh schedules an update+remount.
     2. flushPendingErrorsAndWarningsAfterDelay() runs, sees the old Fiber is no longer mounted
        (it's been disconnected by Fast Refresh), and calls untrackFiberID() to clear it from the Map.
     3. React flushes pending passive effects before it runs the next render,
        which logs an error or warning, which causes a new ID to be generated for this Fiber.
     4. DevTools now tries to unmount the old Component with the new ID.
    
     The underlying problem here is the premature clearing of the Fiber ID,
     but DevTools has no way to detect that a given Fiber has been scheduled for Fast Refresh.