findOptionalPlaces() — react Function Reference
Architecture documentation for the findOptionalPlaces() function in DropManualMemoization.ts from the react codebase.
Entity Profile
Dependency Diagram
graph TD 6dd28fec_69c3_eac3_c226_cd84ba88484d["findOptionalPlaces()"] 4b3f307b_2e5b_6c5a_0729_065bd25db103["DropManualMemoization.ts"] 6dd28fec_69c3_eac3_c226_cd84ba88484d -->|defined in| 4b3f307b_2e5b_6c5a_0729_065bd25db103 dad92af5_71c7_94b3_8cce_ac3af87f3e61["dropManualMemoization()"] dad92af5_71c7_94b3_8cce_ac3af87f3e61 -->|calls| 6dd28fec_69c3_eac3_c226_cd84ba88484d 041ca752_10c1_3cda_1f5c_02f44a01310e["invariant()"] 6dd28fec_69c3_eac3_c226_cd84ba88484d -->|calls| 041ca752_10c1_3cda_1f5c_02f44a01310e style 6dd28fec_69c3_eac3_c226_cd84ba88484d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
compiler/packages/babel-plugin-react-compiler/src/Inference/DropManualMemoization.ts lines 556–602
function findOptionalPlaces(fn: HIRFunction): Set<IdentifierId> {
const optionals = new Set<IdentifierId>();
for (const [, block] of fn.body.blocks) {
if (block.terminal.kind === 'optional' && block.terminal.optional) {
const optionalTerminal = block.terminal;
let testBlock = fn.body.blocks.get(block.terminal.test)!;
loop: while (true) {
const terminal = testBlock.terminal;
switch (terminal.kind) {
case 'branch': {
if (terminal.fallthrough === optionalTerminal.fallthrough) {
// found it
const consequent = fn.body.blocks.get(terminal.consequent)!;
const last = consequent.instructions.at(-1);
if (last !== undefined && last.value.kind === 'StoreLocal') {
optionals.add(last.value.value.identifier.id);
}
break loop;
} else {
testBlock = fn.body.blocks.get(terminal.fallthrough)!;
}
break;
}
case 'optional':
case 'logical':
case 'sequence':
case 'ternary': {
testBlock = fn.body.blocks.get(terminal.fallthrough)!;
break;
}
case 'maybe-throw': {
testBlock = fn.body.blocks.get(terminal.continuation)!;
break;
}
default: {
CompilerError.invariant(false, {
reason: `Unexpected terminal in optional`,
message: `Unexpected ${terminal.kind} in optional`,
loc: terminal.loc,
});
}
}
}
}
}
return optionals;
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does findOptionalPlaces() do?
findOptionalPlaces() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/Inference/DropManualMemoization.ts.
Where is findOptionalPlaces() defined?
findOptionalPlaces() is defined in compiler/packages/babel-plugin-react-compiler/src/Inference/DropManualMemoization.ts at line 556.
What does findOptionalPlaces() call?
findOptionalPlaces() calls 1 function(s): invariant.
What calls findOptionalPlaces()?
findOptionalPlaces() is called by 1 function(s): dropManualMemoization.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free