Home / Function/ computePatternLValues() — react Function Reference

computePatternLValues() — react Function Reference

Architecture documentation for the computePatternLValues() function in PruneNonEscapingScopes.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  f0c93b07_94b1_2207_1b17_c2cb9b4253b7["computePatternLValues()"]
  c4112963_95fe_d8ed_3bfd_f6d45887acb7["PruneNonEscapingScopes.ts"]
  f0c93b07_94b1_2207_1b17_c2cb9b4253b7 -->|defined in| c4112963_95fe_d8ed_3bfd_f6d45887acb7
  5f0939bb_76eb_1279_d295_dacefad72c8a["computeMemoizationInputs()"]
  5f0939bb_76eb_1279_d295_dacefad72c8a -->|calls| f0c93b07_94b1_2207_1b17_c2cb9b4253b7
  073c81a5_c389_d108_5b8f_4d6dc6eece83["push()"]
  f0c93b07_94b1_2207_1b17_c2cb9b4253b7 -->|calls| 073c81a5_c389_d108_5b8f_4d6dc6eece83
  d7fde76c_4fd9_feb3_299b_798689f05bc6["assertExhaustive()"]
  f0c93b07_94b1_2207_1b17_c2cb9b4253b7 -->|calls| d7fde76c_4fd9_feb3_299b_798689f05bc6
  style f0c93b07_94b1_2207_1b17_c2cb9b4253b7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PruneNonEscapingScopes.ts lines 354–391

function computePatternLValues(pattern: Pattern): Array<LValueMemoization> {
  const lvalues: Array<LValueMemoization> = [];
  switch (pattern.kind) {
    case 'ArrayPattern': {
      for (const item of pattern.items) {
        if (item.kind === 'Identifier') {
          lvalues.push({place: item, level: MemoizationLevel.Conditional});
        } else if (item.kind === 'Spread') {
          lvalues.push({place: item.place, level: MemoizationLevel.Memoized});
        }
      }
      break;
    }
    case 'ObjectPattern': {
      for (const property of pattern.properties) {
        if (property.kind === 'ObjectProperty') {
          lvalues.push({
            place: property.place,
            level: MemoizationLevel.Conditional,
          });
        } else {
          lvalues.push({
            place: property.place,
            level: MemoizationLevel.Memoized,
          });
        }
      }
      break;
    }
    default: {
      assertExhaustive(
        pattern,
        `Unexpected pattern kind \`${(pattern as any).kind}\``,
      );
    }
  }
  return lvalues;
}

Domain

Subdomains

Frequently Asked Questions

What does computePatternLValues() do?
computePatternLValues() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PruneNonEscapingScopes.ts.
Where is computePatternLValues() defined?
computePatternLValues() is defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PruneNonEscapingScopes.ts at line 354.
What does computePatternLValues() call?
computePatternLValues() calls 2 function(s): assertExhaustive, push.
What calls computePatternLValues()?
computePatternLValues() is called by 1 function(s): computeMemoizationInputs.

Analyze Your Own Codebase

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

Try Supermodel Free