It currently looks like the `map.get(element)` returns `undefined` even for previously-loaded elements. Are we evicting from the cache prematurely? Why?

Our second level caching (inside of `parseHookNames`) is working but this is still resulting in a lot of unnecessary work.
const [parseHookNamesOptimistic, setParseHookNamesOptimistic] = useState(
    parseHookNames,
  );
  const handleChange = () => {
    setParseHookNamesOptimistic(!parseHookNames);
    toggleParseHookNames();
  };
  const hookParsingFailed = parseHookNames && hookNames === null;
  let toggleTitle;
  if (hookParsingFailed) {
    toggleTitle = 'Hook parsing failed';
  } else if (parseHookNames) {
    toggleTitle = 'Parsing hook names ...';
  } else {
    toggleTitle = 'Parse hook names (may be slow)';
  }
  const handleCopy = () => copy(serializeHooksForCopy(hooks));
  if (hooks === null) {
    return null;
  } else {
    return (
      <div className={styles.HooksTreeView}>
        <div className={styles.HeaderRow}>
          <div className={styles.Header}>hooks</div>
          {enableHookNameParsing && (!parseHookNames || hookParsingFailed) && (
            <Toggle
              className={hookParsingFailed ? styles.ToggleError : null}
              isChecked={parseHookNamesOptimistic}
              isDisabled={parseHookNamesOptimistic || hookParsingFailed}