traverseTerminal() — react Function Reference
Architecture documentation for the traverseTerminal() function in visitors.ts from the react codebase.
Entity Profile
Dependency Diagram
graph TD 55773a39_5b37_d0fb_a280_dc321d87f4fb["traverseTerminal()"] 171a5d22_bb6b_1c99_05a4_6ad897438a35["ReactiveFunctionVisitor"] 55773a39_5b37_d0fb_a280_dc321d87f4fb -->|defined in| 171a5d22_bb6b_1c99_05a4_6ad897438a35 833d0e1b_25d7_480b_1946_284746d6c2bb["visitTerminal()"] 833d0e1b_25d7_480b_1946_284746d6c2bb -->|calls| 55773a39_5b37_d0fb_a280_dc321d87f4fb 50f3d941_f0f5_a432_b09a_ae83726a516f["traverseTerminal()"] 50f3d941_f0f5_a432_b09a_ae83726a516f -->|calls| 55773a39_5b37_d0fb_a280_dc321d87f4fb cf86ad4e_f1c8_5ac8_4061_3bc569f34740["visitTerminal()"] cf86ad4e_f1c8_5ac8_4061_3bc569f34740 -->|calls| 55773a39_5b37_d0fb_a280_dc321d87f4fb 3ce1ff3b_6e81_02a3_536a_76e3ce96f6c3["transformTerminal()"] 3ce1ff3b_6e81_02a3_536a_76e3ce96f6c3 -->|calls| 55773a39_5b37_d0fb_a280_dc321d87f4fb 6e959b1d_e382_2839_615b_63b0569cad1c["visitTerminal()"] 6e959b1d_e382_2839_615b_63b0569cad1c -->|calls| 55773a39_5b37_d0fb_a280_dc321d87f4fb 4f251116_46b0_419d_c3db_03e4ff8a5cce["visitTerminal()"] 4f251116_46b0_419d_c3db_03e4ff8a5cce -->|calls| 55773a39_5b37_d0fb_a280_dc321d87f4fb 8f15af1e_7e01_3717_a54f_6134e46e8d14["visitTerminal()"] 8f15af1e_7e01_3717_a54f_6134e46e8d14 -->|calls| 55773a39_5b37_d0fb_a280_dc321d87f4fb 39ff6a63_fc67_04cf_7655_c9066bab21b8["visitID()"] 55773a39_5b37_d0fb_a280_dc321d87f4fb -->|calls| 39ff6a63_fc67_04cf_7655_c9066bab21b8 8d96a57b_ca06_9ec9_edd9_0932b6d3bae8["visitPlace()"] 55773a39_5b37_d0fb_a280_dc321d87f4fb -->|calls| 8d96a57b_ca06_9ec9_edd9_0932b6d3bae8 efd512bc_cd12_5af4_cd24_a098be1037ec["visitValue()"] 55773a39_5b37_d0fb_a280_dc321d87f4fb -->|calls| efd512bc_cd12_5af4_cd24_a098be1037ec 108b8884_5432_e93d_5f46_a6634348d340["visitBlock()"] 55773a39_5b37_d0fb_a280_dc321d87f4fb -->|calls| 108b8884_5432_e93d_5f46_a6634348d340 50f3d941_f0f5_a432_b09a_ae83726a516f["traverseTerminal()"] 55773a39_5b37_d0fb_a280_dc321d87f4fb -->|calls| 50f3d941_f0f5_a432_b09a_ae83726a516f d7fde76c_4fd9_feb3_299b_798689f05bc6["assertExhaustive()"] 55773a39_5b37_d0fb_a280_dc321d87f4fb -->|calls| d7fde76c_4fd9_feb3_299b_798689f05bc6 style 55773a39_5b37_d0fb_a280_dc321d87f4fb fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/visitors.ts lines 98–182
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': {
this.visitValue(terminal.id, terminal.init, state);
this.visitValue(terminal.id, terminal.test, state);
this.visitBlock(terminal.loop, state);
if (terminal.update !== null) {
this.visitValue(terminal.id, terminal.update, state);
}
break;
}
case 'for-of': {
this.visitValue(terminal.id, terminal.init, state);
this.visitValue(terminal.id, terminal.test, state);
this.visitBlock(terminal.loop, state);
break;
}
case 'for-in': {
this.visitValue(terminal.id, terminal.init, state);
this.visitBlock(terminal.loop, state);
break;
}
case 'do-while': {
this.visitBlock(terminal.loop, state);
this.visitValue(terminal.id, terminal.test, state);
break;
}
case 'while': {
this.visitValue(terminal.id, terminal.test, state);
this.visitBlock(terminal.loop, state);
break;
}
case 'if': {
this.visitPlace(terminal.id, terminal.test, state);
this.visitBlock(terminal.consequent, state);
if (terminal.alternate !== null) {
this.visitBlock(terminal.alternate, state);
}
break;
}
case 'switch': {
this.visitPlace(terminal.id, terminal.test, state);
for (const case_ of terminal.cases) {
if (case_.test !== null) {
this.visitPlace(terminal.id, case_.test, state);
}
if (case_.block !== undefined) {
this.visitBlock(case_.block, state);
}
}
break;
}
case 'label': {
this.visitBlock(terminal.block, state);
break;
}
case 'try': {
this.visitBlock(terminal.block, state);
this.visitBlock(terminal.handler, state);
break;
}
default: {
assertExhaustive(
terminal,
`Unexpected terminal kind \`${(terminal as any).kind}\``,
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 98.
What does traverseTerminal() call?
traverseTerminal() calls 6 function(s): assertExhaustive, traverseTerminal, visitBlock, visitID, visitPlace, visitValue.
What calls traverseTerminal()?
traverseTerminal() is called by 7 function(s): transformTerminal, traverseTerminal, visitTerminal, visitTerminal, visitTerminal, visitTerminal, visitTerminal.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free