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.
export const ComponentFilterHOC = 4;
export type ComponentFilterType = 1 | 2 | 3 | 4;
export type ElementTypeComponentFilter = {|
  isEnabled: boolean,
  type: 1,
  value: ElementType,
|};
export type RegExpComponentFilter = {|
  isEnabled: boolean,
  isValid: boolean,
  type: 2 | 3,
  value: string,
|};
export type BooleanComponentFilter = {|
  isEnabled: boolean,
  isValid: boolean,
  type: 4,
|};
export type ComponentFilter =
  | BooleanComponentFilter
  | ElementTypeComponentFilter
  | RegExpComponentFilter;
export type HookName = string | null;
export type HookNames = Map<HooksNode, HookName>;
export type LRUCache<K, V> = {|
  get: (key: K) => V,
  has: (key: K) => boolean,
  set: (key: K, value: V) => void,
|};