Current behavior: React Devtools throws "RangError: Invalid Array Length" when integers are used as keys on react elements. 

Example: 

https://codesandbox.io/s/interesting-violet-v5c5j

https://v5c5j.csb.app/

Using anything but strings as keys is as far as I understand not even correct usage, but it would be great if react devtools checked a little bit earlier and had a nicer error than "RangeError: Invalid Array Length." It takes a long time to figure out from this message that one somehow managed to use integers as keys and needs to correct it.

I've only tested with Chrome and the latest version of react devtools as a chrome extension. 
return alternate;
    }
    primaryFibers.add(fiber);
    return fiber;
  }
  const fiberToIDMap: Map<Fiber, number> = new Map();
  const idToFiberMap: Map<number, Fiber> = new Map();
  const primaryFibers: Set<Fiber> = new Set();
   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;
  function getFiberID(primaryFiber: Fiber): number {
    if (!fiberToIDMap.has(primaryFiber)) {
      const id = getUID();
      fiberToIDMap.set(primaryFiber, id);
      idToFiberMap.set(id, primaryFiber);
    }
    return ((fiberToIDMap.get(primaryFiber): any): number);
  }
  function getChangeDescription(
    prevFiber: Fiber | null,
    nextFiber: Fiber,
  ): ChangeDescription | null {