diff --git a/packages/babel-helper-builder-react-jsx/src/index.js b/packages/babel-helper-builder-react-jsx/src/index.js index e0b4f5498e..4f2473ae50 100644 --- a/packages/babel-helper-builder-react-jsx/src/index.js +++ b/packages/babel-helper-builder-react-jsx/src/index.js @@ -89,14 +89,14 @@ You can turn on the 'throwIfNamespace' flag to bypass this warning.`, } } - if (t.isValidIdentifier(node.name.name)) { + if (t.isJSXNamespacedName(node.name)) { + node.name = t.stringLiteral( + node.name.namespace.name + ":" + node.name.name.name, + ); + } else if (esutils.keyword.isIdentifierNameES6(node.name.name)) { node.name.type = "Identifier"; } else { - node.name = t.stringLiteral( - t.isJSXNamespacedName(node.name) - ? node.name.namespace.name + ":" + node.name.name.name - : node.name.name, - ); + node.name = t.stringLiteral(node.name.name); } return t.inherits(t.objectProperty(node.name, value), node); diff --git a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/regressions/6276/output.js b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/regressions/6276/output.js index c2f317566e..0eb30c15e3 100644 --- a/packages/babel-plugin-transform-react-inline-elements/test/fixtures/regressions/6276/output.js +++ b/packages/babel-plugin-transform-react-inline-elements/test/fixtures/regressions/6276/output.js @@ -1,3 +1,3 @@ var test = babelHelpers.jsx(T, { - "default": " some string " + default: " some string " }); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/input.js new file mode 100644 index 0000000000..a47734ffb3 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/input.js @@ -0,0 +1 @@ +var es3 = ; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/options.json new file mode 100644 index 0000000000..81639b17e0 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-react-jsx", "transform-property-literals"] +} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/output.js new file mode 100644 index 0000000000..2306516ef5 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-add-quotes-es3/output.js @@ -0,0 +1,8 @@ +var es3 = React.createElement(F, { + aaa: true, + "new": true, + "const": true, + "var": true, + "default": true, + "foo-bar": true +}); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-add-quotes-to-identifier-names/input.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-add-quotes-to-identifier-names/input.js new file mode 100644 index 0000000000..44d58a60fe --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-add-quotes-to-identifier-names/input.js @@ -0,0 +1 @@ +var e = ; diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-add-quotes-to-identifier-names/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-add-quotes-to-identifier-names/output.js new file mode 100644 index 0000000000..b60eb0ba8e --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/should-not-add-quotes-to-identifier-names/output.js @@ -0,0 +1,8 @@ +var e = React.createElement(F, { + aaa: true, + new: true, + const: true, + var: true, + default: true, + "foo-bar": true +});