Home / Function/ eachTerminalOperand() — react Function Reference

eachTerminalOperand() — react Function Reference

Architecture documentation for the eachTerminalOperand() function in visitors.ts from the react codebase.

Function typescript MIRInfrastructure HIR calls 1 called by 26

Entity Profile

Dependency Diagram

graph TD
  41232a25_deb6_6e83_05a8_ae9f961656f7["eachTerminalOperand()"]
  2f3caf55_cc64_415c_55dd_9771ba7dc210["visitors.ts"]
  41232a25_deb6_6e83_05a8_ae9f961656f7 -->|defined in| 2f3caf55_cc64_415c_55dd_9771ba7dc210
  505f2e0b_d43c_5972_8865_373d0dd08a6a["assertConsistentIdentifiers()"]
  505f2e0b_d43c_5972_8865_373d0dd08a6a -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  ad41542d_7277_a7c4_02f9_ea27be6345d4["getScopes()"]
  ad41542d_7277_a7c4_02f9_ea27be6345d4 -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  5b525258_03ba_b7ed_2935_0cd222ac2db3["assertValidMutableRanges()"]
  5b525258_03ba_b7ed_2935_0cd222ac2db3 -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  20604946_1e38_3a1d_16f9_b7ef2a574d7c["collectScopeInfo()"]
  20604946_1e38_3a1d_16f9_b7ef2a574d7c -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  764ec9fb_0ee9_a9ca_abc4_d7c652d01a09["getOverlappingReactiveScopes()"]
  764ec9fb_0ee9_a9ca_abc4_d7c652d01a09 -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  3cbb5167_d55c_6775_cfe5_cd15846ca8d2["findTemporariesUsedOutsideDeclaringScope()"]
  3cbb5167_d55c_6775_cfe5_cd15846ca8d2 -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  5b709ffb_65e9_2125_d608_a351c667cd6c["collectDependencies()"]
  5b709ffb_65e9_2125_d608_a351c667cd6c -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  82ed3f4d_ad20_778d_000e_ca92ed3492fd["inferReactiveIdentifiers()"]
  82ed3f4d_ad20_778d_000e_ca92ed3492fd -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  a434dd08_0de3_17ca_8d4f_08a598a9c73e["findHoistedContextDeclarations()"]
  a434dd08_0de3_17ca_8d4f_08a598a9c73e -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  f3815d1a_36a1_3e3d_92f2_dbbe88f01fe3["inferMutationAliasingRanges()"]
  f3815d1a_36a1_3e3d_92f2_dbbe88f01fe3 -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  fddc4da2_1151_8052_c771_8b67085ebeca["inferReactivePlaces()"]
  fddc4da2_1151_8052_c771_8b67085ebeca -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  b86031b6_78ac_d498_c775_7aedeaf6521e["findReferencedIdentifiers()"]
  b86031b6_78ac_d498_c775_7aedeaf6521e -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  8b5121a5_55ad_8904_6f4c_ab19201c32ee["findReferencedRangeOfTemporaries()"]
  8b5121a5_55ad_8904_6f4c_ab19201c32ee -->|calls| 41232a25_deb6_6e83_05a8_ae9f961656f7
  style 41232a25_deb6_6e83_05a8_ae9f961656f7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/HIR/visitors.ts lines 1176–1233

export function* eachTerminalOperand(terminal: Terminal): Iterable<Place> {
  switch (terminal.kind) {
    case 'if': {
      yield terminal.test;
      break;
    }
    case 'branch': {
      yield terminal.test;
      break;
    }
    case 'switch': {
      yield terminal.test;
      for (const case_ of terminal.cases) {
        if (case_.test === null) {
          continue;
        }
        yield case_.test;
      }
      break;
    }
    case 'return':
    case 'throw': {
      yield terminal.value;
      break;
    }
    case 'try': {
      if (terminal.handlerBinding !== null) {
        yield terminal.handlerBinding;
      }
      break;
    }
    case 'maybe-throw':
    case 'sequence':
    case 'label':
    case 'optional':
    case 'ternary':
    case 'logical':
    case 'do-while':
    case 'while':
    case 'for':
    case 'for-of':
    case 'for-in':
    case 'goto':
    case 'unreachable':
    case 'unsupported':
    case 'scope':
    case 'pruned-scope': {
      // no-op
      break;
    }
    default: {
      assertExhaustive(
        terminal,
        `Unexpected terminal kind \`${(terminal as any).kind}\``,
      );
    }
  }
}

Subdomains

Frequently Asked Questions

What does eachTerminalOperand() do?
eachTerminalOperand() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/HIR/visitors.ts.
Where is eachTerminalOperand() defined?
eachTerminalOperand() is defined in compiler/packages/babel-plugin-react-compiler/src/HIR/visitors.ts at line 1176.
What does eachTerminalOperand() call?
eachTerminalOperand() calls 1 function(s): assertExhaustive.
What calls eachTerminalOperand()?
eachTerminalOperand() is called by 26 function(s): alignReactiveScopesToBlockScopesHIR, assertConsistentIdentifiers, assertValidMutableRanges, collectDependencies, collectDependencies, collectReactiveIdentifiersHIR, collectScopeInfo, eliminateRedundantPhi, and 18 more.

Analyze Your Own Codebase

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

Try Supermodel Free