From c2c585aed51fc2e749bde77d474dbe46241a2acb Mon Sep 17 00:00:00 2001 From: Raashish Aggarwal <94279692+raashish1601@users.noreply.github.com> Date: Sat, 2 May 2026 10:39:34 +0530 Subject: [PATCH] Add createElement ref prop compiler fixture --- .../compiler/createElement-ref-prop.expect.md | 46 +++++++++++++++++++ .../compiler/createElement-ref-prop.js | 11 +++++ 2 files changed, 57 insertions(+) create mode 100644 compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/createElement-ref-prop.expect.md create mode 100644 compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/createElement-ref-prop.js diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/createElement-ref-prop.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/createElement-ref-prop.expect.md new file mode 100644 index 000000000000..f95652687320 --- /dev/null +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/createElement-ref-prop.expect.md @@ -0,0 +1,46 @@ + +## Input + +```javascript +import React, {useRef} from 'react'; + +function refInHtmlElement() { + const ref = useRef(null); + return React.createElement('canvas', {ref}); +} + +export const FIXTURE_ENTRYPOINT = { + fn: refInHtmlElement, + params: [], +}; + +``` + +## Code + +```javascript +import { c as _c } from "react/compiler-runtime"; +import React, { useRef } from "react"; + +function refInHtmlElement() { + const $ = _c(1); + const ref = useRef(null); + let t0; + if ($[0] === Symbol.for("react.memo_cache_sentinel")) { + t0 = React.createElement("canvas", { ref }); + $[0] = t0; + } else { + t0 = $[0]; + } + return t0; +} + +export const FIXTURE_ENTRYPOINT = { + fn: refInHtmlElement, + params: [], +}; + +``` + +### Eval output +(kind: ok) \ No newline at end of file diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/createElement-ref-prop.js b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/createElement-ref-prop.js new file mode 100644 index 000000000000..653a11ee01ab --- /dev/null +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/createElement-ref-prop.js @@ -0,0 +1,11 @@ +import React, {useRef} from 'react'; + +function refInHtmlElement() { + const ref = useRef(null); + return React.createElement('canvas', {ref}); +} + +export const FIXTURE_ENTRYPOINT = { + fn: refInHtmlElement, + params: [], +};