traverseTerminal() — react Function Reference
Architecture documentation for the traverseTerminal() function in visitors.ts from the react codebase.
Entity Profile
Dependency Diagram
graph TD 50f3d941_f0f5_a432_b09a_ae83726a516f["traverseTerminal()"] af3ace55_db6d_865e_92b9_81486f6af1e7["ReactiveFunctionTransform"] 50f3d941_f0f5_a432_b09a_ae83726a516f -->|defined in| af3ace55_db6d_865e_92b9_81486f6af1e7 55773a39_5b37_d0fb_a280_dc321d87f4fb["traverseTerminal()"] 55773a39_5b37_d0fb_a280_dc321d87f4fb -->|calls| 50f3d941_f0f5_a432_b09a_ae83726a516f 7c4a8c4f_1fe5_f001_a91f_cb85243c13e8["transformTerminal()"] 7c4a8c4f_1fe5_f001_a91f_cb85243c13e8 -->|calls| 50f3d941_f0f5_a432_b09a_ae83726a516f 39ff6a63_fc67_04cf_7655_c9066bab21b8["visitID()"] 50f3d941_f0f5_a432_b09a_ae83726a516f -->|calls| 39ff6a63_fc67_04cf_7655_c9066bab21b8 8d96a57b_ca06_9ec9_edd9_0932b6d3bae8["visitPlace()"] 50f3d941_f0f5_a432_b09a_ae83726a516f -->|calls| 8d96a57b_ca06_9ec9_edd9_0932b6d3bae8 41f8ce8e_b5b8_2fcb_46ab_0111bb06c2f2["transformValue()"] 50f3d941_f0f5_a432_b09a_ae83726a516f -->|calls| 41f8ce8e_b5b8_2fcb_46ab_0111bb06c2f2 108b8884_5432_e93d_5f46_a6634348d340["visitBlock()"] 50f3d941_f0f5_a432_b09a_ae83726a516f -->|calls| 108b8884_5432_e93d_5f46_a6634348d340 55773a39_5b37_d0fb_a280_dc321d87f4fb["traverseTerminal()"] 50f3d941_f0f5_a432_b09a_ae83726a516f -->|calls| 55773a39_5b37_d0fb_a280_dc321d87f4fb d7fde76c_4fd9_feb3_299b_798689f05bc6["assertExhaustive()"] 50f3d941_f0f5_a432_b09a_ae83726a516f -->|calls| d7fde76c_4fd9_feb3_299b_798689f05bc6 style 50f3d941_f0f5_a432_b09a_ae83726a516f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/visitors.ts lines 454–572
override traverseTerminal(
stmt: ReactiveTerminalStatement,
state: TState,
): void {
const {terminal} = stmt;
if (terminal.id !== null) {
this.visitID(terminal.id, state);
}
switch (terminal.kind) {
case 'break':
case 'continue': {
break;
}
case 'return': {
this.visitPlace(terminal.id, terminal.value, state);
break;
}
case 'throw': {
this.visitPlace(terminal.id, terminal.value, state);
break;
}
case 'for': {
const init = this.transformValue(terminal.id, terminal.init, state);
if (init.kind === 'replace') {
terminal.init = init.value;
}
const test = this.transformValue(terminal.id, terminal.test, state);
if (test.kind === 'replace') {
terminal.test = test.value;
}
if (terminal.update !== null) {
const update = this.transformValue(
terminal.id,
terminal.update,
state,
);
if (update.kind === 'replace') {
terminal.update = update.value;
}
}
this.visitBlock(terminal.loop, state);
break;
}
case 'for-of': {
const init = this.transformValue(terminal.id, terminal.init, state);
if (init.kind === 'replace') {
terminal.init = init.value;
}
const test = this.transformValue(terminal.id, terminal.test, state);
if (test.kind === 'replace') {
terminal.test = test.value;
}
this.visitBlock(terminal.loop, state);
break;
}
case 'for-in': {
const init = this.transformValue(terminal.id, terminal.init, state);
if (init.kind === 'replace') {
terminal.init = init.value;
}
this.visitBlock(terminal.loop, state);
break;
}
case 'do-while': {
this.visitBlock(terminal.loop, state);
const test = this.transformValue(terminal.id, terminal.test, state);
if (test.kind === 'replace') {
terminal.test = test.value;
}
break;
}
case 'while': {
const test = this.transformValue(terminal.id, terminal.test, state);
if (test.kind === 'replace') {
terminal.test = test.value;
}
this.visitBlock(terminal.loop, state);
break;
}
case 'if': {
this.visitPlace(terminal.id, terminal.test, state);
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does traverseTerminal() do?
traverseTerminal() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/visitors.ts.
Where is traverseTerminal() defined?
traverseTerminal() is defined in compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/visitors.ts at line 454.
What does traverseTerminal() call?
traverseTerminal() calls 6 function(s): assertExhaustive, transformValue, traverseTerminal, visitBlock, visitID, visitPlace.
What calls traverseTerminal()?
traverseTerminal() is called by 2 function(s): transformTerminal, traverseTerminal.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free