}
  function didHookChange(prev: any, next: any): boolean {
    const prevMemoizedState = prev.memoizedState;
    const nextMemoizedState = next.memoizedState;
    if (isEffect(prevMemoizedState) && isEffect(nextMemoizedState)) {
      return (
        prevMemoizedState !== nextMemoizedState &&
        !areHookInputsEqual(nextMemoizedState.deps, prevMemoizedState.deps)
      );
    }
    return nextMemoizedState !== prevMemoizedState;
  }
  function didHooksChange(prev: any, next: any): boolean {
    if (prev == null || next == null) {
      return false;
    }
     We can't report anything meaningful for hooks changes.
    if (
      next.hasOwnProperty('baseState') &&
      next.hasOwnProperty('memoizedState') &&
      next.hasOwnProperty('next') &&
      next.hasOwnProperty('queue')
    ) {
      while (next !== null) {
        if (didHookChange(prev, next)) {
          return true;
        } else {
          next = next.next;
          prev = prev.next;
        }