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 2e163dc65112..152dc43b2ccf 100644 --- a/packages/babel-helper-builder-react-jsx-experimental/src/index.js +++ b/packages/babel-helper-builder-react-jsx-experimental/src/index.js @@ -862,7 +862,6 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, let props = []; const objs = []; - const found = Object.create(null); for (const attr of attribs) { const name = @@ -870,10 +869,8 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, t.isJSXIdentifier(attr.name) && attr.name.name; - if (name === "__source" || name === "__self") { - if (found[name]) throw sourceSelfError(path, name); - found[name] = true; - if (!options.development) continue; + if (!options.development && (name === "__source" || name === "__self")) { + continue; } if (useSpread || !t.isJSXSpreadAttribute(attr)) { diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/classic-runtime-with-source-self-plugins/input.js b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/.classic-runtime-with-source-self-plugins/input.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/classic-runtime-with-source-self-plugins/input.js rename to packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/.classic-runtime-with-source-self-plugins/input.js diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/classic-runtime-with-source-self-plugins/options.json b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/.classic-runtime-with-source-self-plugins/options.json similarity index 100% rename from packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/classic-runtime-with-source-self-plugins/options.json rename to packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/.classic-runtime-with-source-self-plugins/options.json diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/classic-runtime-with-source-self-plugins-windows/input.js b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/.classic-runtime-with-source-self-plugins-windows/input.js similarity index 100% rename from packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/classic-runtime-with-source-self-plugins-windows/input.js rename to packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/.classic-runtime-with-source-self-plugins-windows/input.js diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/classic-runtime-with-source-self-plugins-windows/options.json b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/.classic-runtime-with-source-self-plugins-windows/options.json similarity index 100% rename from packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/classic-runtime-with-source-self-plugins-windows/options.json rename to packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/.classic-runtime-with-source-self-plugins-windows/options.json diff --git a/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/input.mjs b/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/input.mjs new file mode 100644 index 000000000000..61da16d02641 --- /dev/null +++ b/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/input.mjs @@ -0,0 +1 @@ +
diff --git a/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/my-preset.js b/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/my-preset.js new file mode 100644 index 000000000000..662db9983bee --- /dev/null +++ b/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/my-preset.js @@ -0,0 +1,3 @@ +module.exports = () => ({ + presets: [["@babel/preset-react", { development: true }]], +}); diff --git a/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/options.json b/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/options.json new file mode 100644 index 000000000000..b83b0c104796 --- /dev/null +++ b/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/options.json @@ -0,0 +1,4 @@ +{ + "presets": [["@babel/preset-react", { "development": true }], "./my-preset"], + "os": ["linux", "darwin"] +} diff --git a/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/output.mjs b/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/output.mjs new file mode 100644 index 000000000000..2e17927a0b39 --- /dev/null +++ b/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/output.mjs @@ -0,0 +1,18 @@ +var _jsxFileName = "/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/input.mjs", + _jsxFileName2 = "/packages/babel-preset-react/test/fixtures/regression/runtime-classic-allow-multiple-source-self/input.mjs"; + +/*#__PURE__*/ +React.createElement("div", { + __self: this, + __source: { + fileName: _jsxFileName, + lineNumber: 1, + columnNumber: 1 + }, + __self: this, + __source: { + fileName: _jsxFileName2, + lineNumber: 1, + columnNumber: 1 + } +});