transformTerminal() — react Function Reference
Architecture documentation for the transformTerminal() function in PropagateEarlyReturns.ts from the react codebase.
Entity Profile
Dependency Diagram
graph TD 7c4a8c4f_1fe5_f001_a91f_cb85243c13e8["transformTerminal()"] bf2c5ad7_6533_e158_24c8_7c2ada4951ad["Transform"] 7c4a8c4f_1fe5_f001_a91f_cb85243c13e8 -->|defined in| bf2c5ad7_6533_e158_24c8_7c2ada4951ad 54a12a3d_a635_8222_98f7_9dbb45563754["transformTerminal()"] 7c4a8c4f_1fe5_f001_a91f_cb85243c13e8 -->|calls| 54a12a3d_a635_8222_98f7_9dbb45563754 49446ae1_b830_9411_8258_1139d21b314b["createTemporaryPlace()"] 7c4a8c4f_1fe5_f001_a91f_cb85243c13e8 -->|calls| 49446ae1_b830_9411_8258_1139d21b314b 50f3d941_f0f5_a432_b09a_ae83726a516f["traverseTerminal()"] 7c4a8c4f_1fe5_f001_a91f_cb85243c13e8 -->|calls| 50f3d941_f0f5_a432_b09a_ae83726a516f style 7c4a8c4f_1fe5_f001_a91f_cb85243c13e8 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PropagateEarlyReturns.ts lines 274–336
override transformTerminal(
stmt: ReactiveTerminalStatement,
state: State,
): Transformed<ReactiveStatement> {
if (state.withinReactiveScope && stmt.terminal.kind === 'return') {
const loc = stmt.terminal.value.loc;
let earlyReturnValue: ReactiveScope['earlyReturnValue'];
if (state.earlyReturnValue !== null) {
earlyReturnValue = state.earlyReturnValue;
} else {
const identifier = createTemporaryPlace(this.env, loc).identifier;
promoteTemporary(identifier);
earlyReturnValue = {
label: this.env.nextBlockId,
loc,
value: identifier,
};
}
state.earlyReturnValue = earlyReturnValue;
return {
kind: 'replace-many',
value: [
{
kind: 'instruction',
instruction: {
id: makeInstructionId(0),
loc,
lvalue: null,
value: {
kind: 'StoreLocal',
loc,
type: null,
lvalue: {
kind: InstructionKind.Reassign,
place: {
kind: 'Identifier',
identifier: earlyReturnValue.value,
effect: Effect.Capture,
loc,
reactive: true,
},
},
value: stmt.terminal.value,
},
},
},
{
kind: 'terminal',
label: null,
terminal: {
kind: 'break',
id: makeInstructionId(0),
loc,
targetKind: 'labeled',
target: earlyReturnValue.label,
},
},
],
};
}
this.traverseTerminal(stmt, state);
return {kind: 'keep'};
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does transformTerminal() do?
transformTerminal() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PropagateEarlyReturns.ts.
Where is transformTerminal() defined?
transformTerminal() is defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PropagateEarlyReturns.ts at line 274.
What does transformTerminal() call?
transformTerminal() calls 3 function(s): createTemporaryPlace, transformTerminal, traverseTerminal.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free