Home / File/ repro-separate-memoization-due-to-callback-capturing.js — react Source File

repro-separate-memoization-due-to-callback-capturing.js — react Source File

Architecture documentation for repro-separate-memoization-due-to-callback-capturing.js, a javascript file in the react codebase. 1 imports, 0 dependents.

File javascript TestingUtilities Fixtures 1 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  982013dc_2049_2b91_76b1_fee8459a5b03["repro-separate-memoization-due-to-callback-capturing.js"]
  006eec3d_77a9_4a47_e6c1_a96d7a6c9c05["shared-runtime"]
  982013dc_2049_2b91_76b1_fee8459a5b03 --> 006eec3d_77a9_4a47_e6c1_a96d7a6c9c05
  style 982013dc_2049_2b91_76b1_fee8459a5b03 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

// @enableNewMutationAliasingModel
import {ValidateMemoization} from 'shared-runtime';

const Codes = {
  en: {name: 'English'},
  ja: {name: 'Japanese'},
  ko: {name: 'Korean'},
  zh: {name: 'Chinese'},
};

function Component(a) {
  let keys;
  if (a) {
    keys = Object.keys(Codes);
  } else {
    return null;
  }
  const options = keys.map(code => {
    // In the old inference model, `keys` was assumed to be mutated bc
    // this callback captures its input into its output, and the return
    // is treated as a mutation since it's a function expression. The new
    // model understands that `code` is captured but not mutated.
    const country = Codes[code];
    return {
      name: country.name,
      code,
    };
  });
  return (
    <>
      <ValidateMemoization inputs={[]} output={keys} onlyCheckCompiled={true} />
      <ValidateMemoization
        inputs={[]}
        output={options}
        onlyCheckCompiled={true}
      />
    </>
  );
}

export const FIXTURE_ENTRYPOINT = {
  fn: Component,
  params: [{a: false}],
  sequentialRenders: [
    {a: false},
    {a: true},
    {a: true},
    {a: false},
    {a: true},
    {a: false},
  ],
};

Subdomains

Functions

Dependencies

  • shared-runtime

Frequently Asked Questions

What does repro-separate-memoization-due-to-callback-capturing.js do?
repro-separate-memoization-due-to-callback-capturing.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 repro-separate-memoization-due-to-callback-capturing.js?
repro-separate-memoization-due-to-callback-capturing.js defines 1 function(s): Component.
What does repro-separate-memoization-due-to-callback-capturing.js depend on?
repro-separate-memoization-due-to-callback-capturing.js imports 1 module(s): shared-runtime.
Where is repro-separate-memoization-due-to-callback-capturing.js in the architecture?
repro-separate-memoization-due-to-callback-capturing.js is located at compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/repro-separate-memoization-due-to-callback-capturing.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