Home / Function/ lowerJsxMemberExpression() — react Function Reference

lowerJsxMemberExpression() — react Function Reference

Architecture documentation for the lowerJsxMemberExpression() function in BuildHIR.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  7477f6f4_c8ce_95b3_d35f_2f53341af86d["lowerJsxMemberExpression()"]
  e04c04d6_37a7_1dc3_7fae_7d07660d0af9["BuildHIR.ts"]
  7477f6f4_c8ce_95b3_d35f_2f53341af86d -->|defined in| e04c04d6_37a7_1dc3_7fae_7d07660d0af9
  bc571674_9276_a5d1_38b8_101118e7d161["lowerJsxElementName()"]
  bc571674_9276_a5d1_38b8_101118e7d161 -->|calls| 7477f6f4_c8ce_95b3_d35f_2f53341af86d
  041ca752_10c1_3cda_1f5c_02f44a01310e["invariant()"]
  7477f6f4_c8ce_95b3_d35f_2f53341af86d -->|calls| 041ca752_10c1_3cda_1f5c_02f44a01310e
  ed6d70a7_397f_1137_1a2e_8b9092747144["getLoadKind()"]
  7477f6f4_c8ce_95b3_d35f_2f53341af86d -->|calls| ed6d70a7_397f_1137_1a2e_8b9092747144
  f1f0c182_09ad_b29e_b1ca_56f10046adff["lowerValueToTemporary()"]
  7477f6f4_c8ce_95b3_d35f_2f53341af86d -->|calls| f1f0c182_09ad_b29e_b1ca_56f10046adff
  b210ff8f_3273_1b70_4f00_b08cc41fd3dd["lowerIdentifier()"]
  7477f6f4_c8ce_95b3_d35f_2f53341af86d -->|calls| b210ff8f_3273_1b70_4f00_b08cc41fd3dd
  3532df9c_cf42_5889_99aa_db6c6d3e1708["makePropertyLiteral()"]
  7477f6f4_c8ce_95b3_d35f_2f53341af86d -->|calls| 3532df9c_cf42_5889_99aa_db6c6d3e1708
  style 7477f6f4_c8ce_95b3_d35f_2f53341af86d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/HIR/BuildHIR.ts lines 3306–3335

function lowerJsxMemberExpression(
  builder: HIRBuilder,
  exprPath: NodePath<t.JSXMemberExpression>,
): Place {
  const loc = exprPath.node.loc ?? GeneratedSource;
  const object = exprPath.get('object');
  let objectPlace: Place;
  if (object.isJSXMemberExpression()) {
    objectPlace = lowerJsxMemberExpression(builder, object);
  } else {
    CompilerError.invariant(object.isJSXIdentifier(), {
      reason: `TypeScript refinement fail: expected 'JsxIdentifier', got \`${object.node.type}\``,
      loc: object.node.loc ?? GeneratedSource,
    });

    const kind = getLoadKind(builder, object);
    objectPlace = lowerValueToTemporary(builder, {
      kind: kind,
      place: lowerIdentifier(builder, object),
      loc: exprPath.node.loc ?? GeneratedSource,
    });
  }
  const property = exprPath.get('property').node.name;
  return lowerValueToTemporary(builder, {
    kind: 'PropertyLoad',
    object: objectPlace,
    property: makePropertyLiteral(property),
    loc,
  });
}

Subdomains

Frequently Asked Questions

What does lowerJsxMemberExpression() do?
lowerJsxMemberExpression() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/HIR/BuildHIR.ts.
Where is lowerJsxMemberExpression() defined?
lowerJsxMemberExpression() is defined in compiler/packages/babel-plugin-react-compiler/src/HIR/BuildHIR.ts at line 3306.
What does lowerJsxMemberExpression() call?
lowerJsxMemberExpression() calls 5 function(s): getLoadKind, invariant, lowerIdentifier, lowerValueToTemporary, makePropertyLiteral.
What calls lowerJsxMemberExpression()?
lowerJsxMemberExpression() is called by 1 function(s): lowerJsxElementName.

Analyze Your Own Codebase

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

Try Supermodel Free