`getContextChangedKeys` only handles class components:
https://github.com/facebook/react/blob/355591add41c0f6dad738fdb1b6603e0786b7b4e/packages/react-devtools-shared/src/backend/renderer.js#L1276-L1304
This Map is used to e.g. get the display name for a Fiber or schedule an update,
   operations that should be the same whether the current and work-in-progress Fiber is used.
  const idToArbitraryFiberMap: Map<number, Fiber> = new Map();
   When profiling is supported, we store the latest tree base durations for each Fiber.
   This is so that we can quickly capture a snapshot of those values if profiling starts.
   If we didn't store these values, we'd have to crawl the tree when profiling started,
   and use a slow path to find each of the current Fibers.
  const idToTreeBaseDurationMap: Map<number, number> = new Map();
   When profiling is supported, we store the latest tree base durations for each Fiber.
   This map enables us to filter these times by root when sending them to the frontend.
  const idToRootMap: Map<number, number> = new Map();
   When a mount or update is in progress, this value tracks the root that is being operated on.
  let currentRootID: number = -1;
   Returns the unique ID for a Fiber or generates and caches a new one if the Fiber hasn't been seen before.
   Once this method has been called for a Fiber, untrackFiberID() should always be called later to avoid leaking.
  function getOrGenerateFiberID(fiber: Fiber): number {
    let id = null;
    if (fiberToIDMap.has(fiber)) {
      id = fiberToIDMap.get(fiber);
    } else {
      const {alternate} = fiber;
      if (alternate !== null && fiberToIDMap.has(alternate)) {
        id = fiberToIDMap.get(alternate);
      }
    }
    let didGenerateID = false;
    if (id === null) {
      didGenerateID = true;
      id = getUID();
    }