diff --git a/packages/babel-helper-builder-react-jsx-experimental/src/index.js b/packages/babel-helper-builder-react-jsx-experimental/src/index.js
index 9f795a72081d..d42d84c34063 100644
--- a/packages/babel-helper-builder-react-jsx-experimental/src/index.js
+++ b/packages/babel-helper-builder-react-jsx-experimental/src/index.js
@@ -303,12 +303,8 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`,
"JSXElement|JSXFragment"(path) {
if (path.type === "JSXFragment") imports.add("Fragment");
const openingPath = path.get("openingElement");
- const validChildren = openingPath.parent.children.filter(
- child =>
- !t.isJSXEmptyExpression(child) &&
- !(t.isJSXText(child) && child.value.trim() === ""),
- );
+ const validChildren = t.react.buildChildren(openingPath.parent);
let importName;
if (path.type === "JSXElement" && shouldUseCreateElement(path)) {
importName = "createElement";
diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/input.js
new file mode 100644
index 000000000000..e4bc0b7035e2
--- /dev/null
+++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/input.js
@@ -0,0 +1,5 @@
+class MobileHomeActivityTaskPriorityIcon extends React.PureComponent {
+ render() {
+ return {this.props.value} ;
+ }
+}
diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs
new file mode 100644
index 000000000000..65cfda12fc6a
--- /dev/null
+++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/weird-symbols/output.mjs
@@ -0,0 +1,10 @@
+import { jsxs as _jsxs } from "react/jsx-runtime";
+
+class MobileHomeActivityTaskPriorityIcon extends React.PureComponent {
+ render() {
+ return /*#__PURE__*/_jsxs(Text, {
+ children: ["\xA0", this.props.value, "\xA0"]
+ });
+ }
+
+}
diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/input.js
new file mode 100644
index 000000000000..c0245177d289
--- /dev/null
+++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/input.js
@@ -0,0 +1,7 @@
+/** @jsxRuntime classic */
+
+class MobileHomeActivityTaskPriorityIcon extends React.PureComponent {
+ render() {
+ return {this.props.value} ;
+ }
+}
diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js
new file mode 100644
index 000000000000..3f5b87cb2239
--- /dev/null
+++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/weird-symbols/output.js
@@ -0,0 +1,7 @@
+/** @jsxRuntime classic */
+class MobileHomeActivityTaskPriorityIcon extends React.PureComponent {
+ render() {
+ return /*#__PURE__*/React.createElement(Text, null, "\xA0", this.props.value, "\xA0");
+ }
+
+}
diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/input.js
new file mode 100644
index 000000000000..c0245177d289
--- /dev/null
+++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/input.js
@@ -0,0 +1,7 @@
+/** @jsxRuntime classic */
+
+class MobileHomeActivityTaskPriorityIcon extends React.PureComponent {
+ render() {
+ return {this.props.value} ;
+ }
+}
diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js
new file mode 100644
index 000000000000..3f5b87cb2239
--- /dev/null
+++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/weird-symbols/output.js
@@ -0,0 +1,7 @@
+/** @jsxRuntime classic */
+class MobileHomeActivityTaskPriorityIcon extends React.PureComponent {
+ render() {
+ return /*#__PURE__*/React.createElement(Text, null, "\xA0", this.props.value, "\xA0");
+ }
+
+}