Home / File/ error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js — react Source File

error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js — react Source File

Architecture documentation for error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js, a javascript file in the react codebase.

Entity Profile

Relationship Graph

Source Code

// @validatePreserveExistingMemoizationGuarantees @enablePreserveExistingMemoizationGuarantees:false

/**
 * Repro from https://github.com/facebook/react/issues/34262
 *
 * The compiler memoizes more precisely than the original code, with two reactive scopes:
 * - One for `transform(input)` with `input` as dep
 * - One for `{value}` with `value` as dep
 *
 * When we validate preserving manual memoization we incorrectly reject this, because
 * the original memoization had `object` depending on `input` but our scope depends on
 * `value`.
 *
 * This fixture adds a later potential mutation, which extends the scope and should
 * fail validation. This confirms that even though we allow the dependency to diverge,
 * we still check that the output value is memoized.
 */
function useInputValue(input) {
  const object = React.useMemo(() => {
    const {value} = transform(input);
    return {value};
  }, [input]);
  mutate(object);
  return object;
}

Subdomains

Functions

Frequently Asked Questions

What does error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js do?
error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js is a source file in the react codebase, written in javascript. It belongs to the TestingUtilities domain, Fixtures subdomain.
What functions are defined in error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js?
error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js defines 1 function(s): useInputValue.
Where is error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js in the architecture?
error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js is located at compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.repro-preserve-memoization-inner-destructured-value-mistaken-as-dependency-later-mutation.js (domain: TestingUtilities, subdomain: Fixtures, directory: compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free