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 385d8730d4..f29098b73f 100644 --- a/packages/babel-helper-builder-react-jsx-experimental/src/index.js +++ b/packages/babel-helper-builder-react-jsx-experimental/src/index.js @@ -837,7 +837,6 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, if (name === "__source" || name === "__self") { if (found[name]) throw sourceSelfError(path, name); found[name] = true; - if (!options.development) continue; } props.push(convertAttribute(attr)); @@ -850,15 +849,6 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, const objs = []; for (const attr of attribs) { - const name = - t.isJSXAttribute(attr) && - t.isJSXIdentifier(attr.name) && - attr.name.name; - - if (!options.development && (name === "__source" || name === "__self")) { - continue; - } - if (useSpread || !t.isJSXSpreadAttribute(attr)) { props.push(convertAttribute(attr)); } else { diff --git a/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/emotion-css-prop-preset.js b/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/emotion-css-prop-preset.js new file mode 100644 index 0000000000..50d3778ab9 --- /dev/null +++ b/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/emotion-css-prop-preset.js @@ -0,0 +1,3 @@ +module.exports = () => ({ + plugins: [["@babel/plugin-transform-react-jsx", { pragma: "___EmotionJSX" }]], +}); diff --git a/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/input.mjs b/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/input.mjs new file mode 100644 index 0000000000..9a5edc121d --- /dev/null +++ b/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/input.mjs @@ -0,0 +1,5 @@ +import * as React from "react"; + +export default function Foo() { + return
; +} diff --git a/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/options.json b/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/options.json new file mode 100644 index 0000000000..7d4aff099d --- /dev/null +++ b/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/options.json @@ -0,0 +1,7 @@ +{ + "presets": [ + ["@babel/preset-react", { "development": true }], + "./emotion-css-prop-preset.js" + ], + "os": ["linux", "darwin"] +} diff --git a/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/output.mjs b/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/output.mjs new file mode 100644 index 0000000000..6d698fda7a --- /dev/null +++ b/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/output.mjs @@ -0,0 +1,12 @@ +var _jsxFileName = "/packages/babel-preset-react/test/fixtures/regression/another-preset-with-custom-jsx-keep-source-self/input.mjs"; +import * as React from "react"; +export default function Foo() { + return ___EmotionJSX("div", { + __self: this, + __source: { + fileName: _jsxFileName, + lineNumber: 4, + columnNumber: 10 + } + }); +}