Home / File/ repro-internal-compiler-shared-mutablerange-bug.js — react Source File

repro-internal-compiler-shared-mutablerange-bug.js — react Source File

Architecture documentation for repro-internal-compiler-shared-mutablerange-bug.js, a javascript file in the react codebase.

Entity Profile

Source Code

//@flow @validatePreserveExistingMemoizationGuarantees @enableNewMutationAliasingModel
component Component(
  onAsyncSubmit?: (() => void) => void,
  onClose: (isConfirmed: boolean) => void
) {
  // When running inferReactiveScopeVariables,
  // onAsyncSubmit and onClose update to share
  // a mutableRange instance.
  const onSubmit = useCallback(() => {
    if (onAsyncSubmit) {
      onAsyncSubmit(() => {
        onClose(true);
      });
      return;
    }
  }, [onAsyncSubmit, onClose]);
  // When running inferReactiveScopeVariables here,
  // first the existing range gets updated (affecting
  // onAsyncSubmit) and then onClose gets assigned a
  // different mutable range instance, which is the
  // one reset after AnalyzeFunctions.
  // The fix is to fully reset mutable ranges *instances*
  // after AnalyzeFunctions visit a function expression
  return <Dialog onSubmit={onSubmit} onClose={() => onClose(false)} />;
}

Frequently Asked Questions

What does repro-internal-compiler-shared-mutablerange-bug.js do?
repro-internal-compiler-shared-mutablerange-bug.js is a source file in the react codebase, written in javascript.
Where is repro-internal-compiler-shared-mutablerange-bug.js in the architecture?
repro-internal-compiler-shared-mutablerange-bug.js is located at compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/new-mutability/repro-internal-compiler-shared-mutablerange-bug.js (directory: compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/new-mutability).

Analyze Your Own Codebase

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

Try Supermodel Free