diff --git a/packages/babel-helper-builder-react-jsx/src/index.js b/packages/babel-helper-builder-react-jsx/src/index.js index 6307db4608..e0b4f5498e 100644 --- a/packages/babel-helper-builder-react-jsx/src/index.js +++ b/packages/babel-helper-builder-react-jsx/src/index.js @@ -92,7 +92,11 @@ You can turn on the 'throwIfNamespace' flag to bypass this warning.`, if (t.isValidIdentifier(node.name.name)) { node.name.type = "Identifier"; } else { - node.name = t.stringLiteral(node.name.name); + node.name = t.stringLiteral( + t.isJSXNamespacedName(node.name) + ? node.name.namespace.name + ":" + node.name.name.name + : node.name.name, + ); } return t.inherits(t.objectProperty(node.name, value), node); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/actual.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/actual.js index 4888b2b705..48d051a951 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/actual.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/actual.js @@ -1 +1 @@ -; +; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/expected.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/expected.js index 84038ebb97..24a57b8f23 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/expected.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-support-xml-namespaces-if-flag/expected.js @@ -1 +1,3 @@ -h("f:image", null); +h("f:image", { + "n:attr": true +});