From b53d65871fa4b6bf56005a9d32100d513b8b11e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 19 Mar 2020 16:51:04 +0100 Subject: [PATCH 1/6] Inject `__source` and `__self` in JSX elements earlier This fixes an issue where `this` was not correct inside arrow functions, similar to https://astexplorer.net/#/gist/86638d64cd21c496e7fecaea46313d95/906f8be24d7d99f3f5cd5a956a48355e1864f4b1 --- .../src/index.js | 165 +++++++++--------- .../options.json | 2 +- .../source-and-self-defined/options.json | 2 +- .../options.json | 3 +- .../options.json | 2 +- .../exec.js | 32 ---- .../options.json | 16 -- .../exec.js | 32 ---- .../input.mjs | 10 ++ .../options.json | 9 +- .../output.mjs | 14 ++ .../does-not-add-source-self-windows/exec.js | 31 ---- .../options.json | 15 -- .../does-not-add-source-self/exec.js | 31 ---- .../does-not-add-source-self/input.mjs | 11 ++ .../does-not-add-source-self/options.json | 14 +- .../does-not-add-source-self/output.mjs | 11 ++ 17 files changed, 142 insertions(+), 258 deletions(-) delete mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic-windows/exec.js delete mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic-windows/options.json delete mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/exec.js create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/input.mjs create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/output.mjs delete mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self-windows/exec.js delete mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self-windows/options.json delete mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/exec.js create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/input.mjs create mode 100644 packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/output.mjs 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 2117da3199d2..0cc87aa2343b 100644 --- a/packages/babel-helper-builder-react-jsx-experimental/src/index.js +++ b/packages/babel-helper-builder-react-jsx-experimental/src/index.js @@ -31,6 +31,32 @@ export function helper(babel, options) { pragmaFrag: PRAGMA_FRAG_DEFAULT = DEFAULT.pragmaFrag, } = options; + const injectMetaPropertiesVisitor = { + JSXOpeningElement(path, state) { + for (const attr of path.get("attributes")) { + if (!attr.isJSXElement()) continue; + + const { name } = attr.node.name; + if (name === "__source" || name === "__self") { + throw path.buildCodeFrameError( + `__source and __self should not be defined in props and are reserved for internal usage.`, + ); + } + } + + const source = t.jsxAttribute( + t.jsxIdentifier("__source"), + t.jsxExpressionContainer(makeSource(path, state)), + ); + const self = t.jsxAttribute( + t.jsxIdentifier("__self"), + t.jsxExpressionContainer(t.thisExpression()), + ); + + path.pushContainer("attributes", [source, self]); + }, + }; + return { JSXNamespacedName(path, state) { const throwIfNamespace = @@ -214,6 +240,10 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, `Runtime must be either "classic" or "automatic".`, ); } + + if (options.development) { + path.traverse(injectMetaPropertiesVisitor, state); + } } }, @@ -409,7 +439,7 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, } function makeSource(path, state) { - const location = path.node.openingElement.loc; + const location = path.node.loc; if (!location) { // the element was generated and doesn't have location information return; @@ -487,16 +517,19 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, } } - 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(node.name.name); + try { + 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(node.name.name); + } + } catch (e) { + e.message += JSON.stringify(node); } - return t.inherits(t.objectProperty(node.name, value), node); } @@ -532,33 +565,28 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, } let attribs = []; - let key; - let source; - let self; + const extracted = Object.create(null); // for React.jsx, key, __source (dev), and __self (dev) is passed in as // a separate argument rather than in the args object. We go through the // props and filter out these three keywords so we can pass them in // as separate arguments later - for (let i = 0; i < openingPath.node.attributes.length; i++) { - const attr = openingPath.node.attributes[i]; - if (t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name)) { - if (attr.name.name === "key") { - key = convertAttribute(attr).value; - } else if ( - attr.name.name === "__source" || - attr.name.name === "__self" - ) { - throw path.buildCodeFrameError( - `__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config.`, - ); - } else { - // If someone is still using the __source and __self Babel plugins - // filter the results out - attribs.push(attr); + for (const attr of openingPath.get("attributes")) { + if (attr.isJSXAttribute() && t.isJSXIdentifier(attr.node.name)) { + const { name } = attr.node.name; + switch (name) { + case "__source": + case "__self": + if (extracted[name]) throw sourceSelfError(path, name); + /* falls through */ + case "key": + extracted[name] = convertAttributeValue(attr.node.value); + break; + default: + attribs.push(attr.node); } } else { - attribs.push(attr); + attribs.push(attr.node); } } @@ -576,20 +604,18 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, args.push(attribs); if (!options.development) { - if (key !== undefined) { - args.push(key); + if (extracted.key !== undefined) { + args.push(extracted.key); } } else { // isStaticChildren, __source, and __self are only used in development // automatically include __source and __self in this plugin // so we can eliminate the need for separate Babel plugins in Babel 8 - source = makeSource(path, file); - self = t.thisExpression(); args.push( - key === undefined ? path.scope.buildUndefinedNode() : key, + extracted.key ?? path.scope.buildUndefinedNode(), t.booleanLiteral(path.node.children.length > 1), - source ?? path.scope.buildUndefinedNode(), - self, + extracted.__source ?? path.scope.buildUndefinedNode(), + extracted.__self ?? t.thisExpression(), ); } @@ -611,16 +637,7 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, // Builds props for React.jsx. This function adds children into the props // and ensures that props is always an object function buildJSXOpeningElementAttributes(attribs, file, children) { - const _attribs = attribs.filter( - prop => - !( - t.isJSXAttribute(prop) && - prop.name && - (prop.name.name === "__source" || prop.name.name === "__self") - ), - ); - - const props = _attribs.map(convertAttribute); + const props = attribs.map(convertAttribute); // In React.jsx, children is no longer a separate argument, but passed in // through the argument object @@ -774,7 +791,6 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, const attribs = buildCreateElementOpeningElementAttributes( path, openingPath.node.attributes, - file, ); args.push(attribs, ...path.node.children); @@ -796,40 +812,33 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, * breaking on spreads, we then push a new object containing * all prior attributes to an array for later processing. */ - function buildCreateElementOpeningElementAttributes(path, attribs, file) { - // We want source and self to be automatically included in the future - // so we will error when we see it - - const hasSourceSelf = attribs.some( - prop => - t.isJSXAttribute(prop) && - prop.name && - (prop.name.name === "__source" || prop.name.name === "__self"), - ); + function buildCreateElementOpeningElementAttributes(path, attribs) { + const props = []; + const found = Object.create(null); - if (hasSourceSelf) { - throw path.buildCodeFrameError( - `__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config.`, - ); - } + for (const attr of attribs) { + const name = + t.isJSXAttribute(attr) && + t.isJSXIdentifier(attr.name) && + attr.name.name; - if (options.development) { - attribs.push( - t.jsxAttribute( - t.jsxIdentifier("__source"), - t.jsxExpressionContainer(makeSource(path, file)), - ), - ); - attribs.push( - t.jsxAttribute( - t.jsxIdentifier("__self"), - t.jsxExpressionContainer(t.thisExpression()), - ), - ); - } + if (name === "__source" || name === "__self") { + if (found[name]) throw sourceSelfError(path, name); + found[name] = true; + if (!options.development) continue; + } - const props = attribs.map(convertAttribute); + props.push(convertAttribute(attr)); + } return props.length > 0 ? t.objectExpression(props) : t.nullLiteral(); } + + function sourceSelfError(path, name) { + const pluginName = `transform-react-jsx-${name.slice(2)}`; + + return path.buildCodeFrameError( + `Duplicate ${name} prop found. You are most likely using the deprecated ${pluginName} Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config.`, + ); + } } 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 index b41228b7e3cf..5fea78b9cfa2 100644 --- 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 @@ -5,5 +5,5 @@ "transform-react-jsx-self" ], "os": ["linux", "darwin"], - "throws": "__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config." + "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." } diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/source-and-self-defined/options.json b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/source-and-self-defined/options.json index 563321ae5331..16548d1d0bd1 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/source-and-self-defined/options.json +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/source-and-self-defined/options.json @@ -6,5 +6,5 @@ ], "sourceType": "module", "os": ["linux", "darwin"], - "throws": "__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config." + "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." } 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 index cee6ae74ec95..e907849c8961 100644 --- 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 @@ -4,5 +4,6 @@ "transform-react-jsx-source", "transform-react-jsx-self" ], - "throws": "__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config." + "os": ["windows"], + "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." } diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/source-and-self-defined-windows/options.json b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/source-and-self-defined-windows/options.json index 5dc6b8ebc521..0c15eb665d07 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/source-and-self-defined-windows/options.json +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/source-and-self-defined-windows/options.json @@ -6,5 +6,5 @@ ], "sourceType": "module", "os": ["windows"], - "throws": "__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config." + "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic-windows/exec.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic-windows/exec.js deleted file mode 100644 index f122206b3544..000000000000 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic-windows/exec.js +++ /dev/null @@ -1,32 +0,0 @@ -var actual = transform( - `var x = ( - <> -
-
-
-
-
-
- - );`, - Object.assign({}, opts, { filename: 'C:\\fake\\path\\mock.js' }) -).code; - -var expected = -`import { createElement as _createElement } from "react"; -import { jsxs as _jsxs } from "react/jsx-runtime"; -import { jsx as _jsx } from "react/jsx-runtime"; -import { Fragment as _Fragment } from "react/jsx-runtime"; -var _jsxFileName = "C:\\\\fake\\\\path\\\\mock.js"; - -var x = _jsx(_Fragment, { - children: _jsxs("div", { - children: [_jsx("div", {}, "1"), _jsx("div", { - meow: "wolf" - }, "2"), _jsx("div", {}, "3"), _createElement("div", { ...props, - key: "4" - })] - }) -});`; - -expect(actual).toBe(expected); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic-windows/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic-windows/options.json deleted file mode 100644 index c94bc204de5b..000000000000 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic-windows/options.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "plugins": [ - [ - "transform-react-jsx", - { - "autoImport": "namedExports", - "runtime": "automatic" - } - ], - "transform-react-jsx-source", - "transform-react-jsx-self" - ], - "sourceType": "module", - "os": ["win32"], - "throws": "__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config." -} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/exec.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/exec.js deleted file mode 100644 index e6e063c6369b..000000000000 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/exec.js +++ /dev/null @@ -1,32 +0,0 @@ -var actual = transform( - `var x = ( - <> -
-
-
-
-
-
- - );`, - Object.assign({}, opts, { filename: '/fake/path/mock.js' }) -).code; - -var expected = -`import { createElement as _createElement } from "react"; -import { jsxs as _jsxs } from "react/jsx-runtime"; -import { jsx as _jsx } from "react/jsx-runtime"; -import { Fragment as _Fragment } from "react/jsx-runtime"; -var _jsxFileName = "/fake/path/mock.js"; - -var x = _jsx(_Fragment, { - children: _jsxs("div", { - children: [_jsx("div", {}, "1"), _jsx("div", { - meow: "wolf" - }, "2"), _jsx("div", {}, "3"), _createElement("div", { ...props, - key: "4" - })] - }) -});`; - -expect(actual).toBe(expected); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/input.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/input.mjs new file mode 100644 index 000000000000..ebd66ec03e0a --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/input.mjs @@ -0,0 +1,10 @@ +var x = ( + <> +
+
+
+
+
+
+ +); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/options.json index 0d217ed23c2a..8183c589d151 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/options.json @@ -6,11 +6,6 @@ "autoImport": "namedExports", "runtime": "automatic" } - ], - "transform-react-jsx-source", - "transform-react-jsx-self" - ], - "sourceType": "module", - "os": ["linux", "darwin"], - "throws": "__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config." + ] + ] } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/output.mjs new file mode 100644 index 000000000000..386cac2a472a --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/output.mjs @@ -0,0 +1,14 @@ +import { createElement as _createElement } from "react"; +import { jsxs as _jsxs } from "react/jsx-runtime"; +import { jsx as _jsx } from "react/jsx-runtime"; +import { Fragment as _Fragment } from "react/jsx-runtime"; + +var x = _jsx(_Fragment, { + children: _jsxs("div", { + children: [_jsx("div", {}, "1"), _jsx("div", { + meow: "wolf" + }, "2"), _jsx("div", {}, "3"), _createElement("div", { ...props, + key: "4" + })] + }) +}); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self-windows/exec.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self-windows/exec.js deleted file mode 100644 index 94ca9d4c3f51..000000000000 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self-windows/exec.js +++ /dev/null @@ -1,31 +0,0 @@ -var actual = transform( - `/** @jsxRuntime classic */ - var x = ( - <> -
-
-
-
-
-
- - );`, - Object.assign({}, opts, { filename: 'C:\\fake\\path\\mock.js' }) -).code; - -var expected = -`var _jsxFileName = "C:\\\\fake\\\\path\\\\mock.js"; - -/** @jsxRuntime classic */ -var x = React.createElement(React.Fragment, null, React.createElement("div", null, React.createElement("div", { - key: "1" -}), React.createElement("div", { - key: "2", - meow: "wolf" -}), React.createElement("div", { - key: "3" -}), React.createElement("div", { ...props, - key: "4" -})));`; - -expect(actual).toBe(expected); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self-windows/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self-windows/options.json deleted file mode 100644 index 756c676d8e38..000000000000 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self-windows/options.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "plugins": [ - [ - "transform-react-jsx", - { - "runtime": "automatic" - } - ], - "transform-react-jsx-source", - "transform-react-jsx-self" - ], - "sourceType": "module", - "os": ["win32"], - "throws": "__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config." -} diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/exec.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/exec.js deleted file mode 100644 index 9806f201de39..000000000000 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/exec.js +++ /dev/null @@ -1,31 +0,0 @@ -var actual = transform( - `/** @jsxRuntime classic */ - var x = ( - <> -
-
-
-
-
-
- - );`, - Object.assign({}, opts, { filename: '/fake/path/mock.js' }) -).code; - -var expected = -`var _jsxFileName = "/fake/path/mock.js"; - -/** @jsxRuntime classic */ -var x = React.createElement(React.Fragment, null, React.createElement("div", null, React.createElement("div", { - key: "1" -}), React.createElement("div", { - key: "2", - meow: "wolf" -}), React.createElement("div", { - key: "3" -}), React.createElement("div", { ...props, - key: "4" -})));`; - -expect(actual).toBe(expected); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/input.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/input.mjs new file mode 100644 index 000000000000..76b067760e24 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/input.mjs @@ -0,0 +1,11 @@ +/** @jsxRuntime classic */ +var x = ( + <> +
+
+
+
+
+
+ +); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/options.json b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/options.json index 6803cc2197a5..aa1ff2bb27dd 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/options.json +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/options.json @@ -1,15 +1,5 @@ { "plugins": [ - [ - "transform-react-jsx", - { - "runtime": "automatic" - } - ], - "transform-react-jsx-source", - "transform-react-jsx-self" - ], - "sourceType": "module", - "os": ["linux", "darwin"], - "throws": "__source and __self should not be defined in props. You are most likely using the deprecated transform-react-jsx-self or transform-react-jsx-source Babel plugins. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-self or transform-react-jsx-source from your Babel config." + ["transform-react-jsx", { "runtime": "automatic" }] + ] } diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/output.mjs new file mode 100644 index 000000000000..e11954f7db0c --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/output.mjs @@ -0,0 +1,11 @@ +/** @jsxRuntime classic */ +var x = React.createElement(React.Fragment, null, React.createElement("div", null, React.createElement("div", { + key: "1" +}), React.createElement("div", { + key: "2", + meow: "wolf" +}), React.createElement("div", { + key: "3" +}), React.createElement("div", { ...props, + key: "4" +}))); From fceb4877b14063719899844754be58ff668ccc59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 19 Mar 2020 16:54:44 +0100 Subject: [PATCH 2/6] Add test --- .../linux/self-inside-arrow/input.mjs | 7 ++++ .../linux/self-inside-arrow/output.mjs | 36 +++++++++++++++++++ .../self-inside-arrow-windows/input.mjs | 7 ++++ .../self-inside-arrow-windows/output.mjs | 36 +++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/input.mjs create mode 100644 packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/output.mjs create mode 100644 packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/input.mjs create mode 100644 packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/input.mjs b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/input.mjs new file mode 100644 index 000000000000..10fa67b30f61 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/input.mjs @@ -0,0 +1,7 @@ +
; +() =>
; + +function fn() { +
; + () =>
; +} diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/output.mjs b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/output.mjs new file mode 100644 index 000000000000..a59a5468be78 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/output.mjs @@ -0,0 +1,36 @@ +import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime"; + +var _jsxFileName = "/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/input.mjs", + _this = this; + +_jsxDEV("div", {}, void 0, false, { + fileName: _jsxFileName, + lineNumber: 1, + columnNumber: 1 +}, this); + +(function () { + return _jsxDEV("div", {}, void 0, false, { + fileName: _jsxFileName, + lineNumber: 2, + columnNumber: 7 + }, _this); +}); + +function fn() { + var _this2 = this; + + _jsxDEV("div", {}, void 0, false, { + fileName: _jsxFileName, + lineNumber: 5, + columnNumber: 3 + }, this); + + (function () { + return _jsxDEV("div", {}, void 0, false, { + fileName: _jsxFileName, + lineNumber: 6, + columnNumber: 9 + }, _this2); + }); +} diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/input.mjs b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/input.mjs new file mode 100644 index 000000000000..10fa67b30f61 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/input.mjs @@ -0,0 +1,7 @@ +
; +() =>
; + +function fn() { +
; + () =>
; +} diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs new file mode 100644 index 000000000000..d31c072733d5 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs @@ -0,0 +1,36 @@ +import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime"; + +var _jsxFileName = "C:\\Users\\travis\\build\\babel\\babel\\packages\\babel-plugin-transform-react-jsx-development\\test\\fixtures\\windows\\self-inside-arrow\\input.mjs", + _this = this; + +_jsxDEV("div", {}, void 0, false, { + fileName: _jsxFileName, + lineNumber: 1, + columnNumber: 1 +}, this); + +(function () { + return _jsxDEV("div", {}, void 0, false, { + fileName: _jsxFileName, + lineNumber: 2, + columnNumber: 7 + }, _this); +}); + +function fn() { + var _this2 = this; + + _jsxDEV("div", {}, void 0, false, { + fileName: _jsxFileName, + lineNumber: 5, + columnNumber: 3 + }, this); + + (function () { + return _jsxDEV("div", {}, void 0, false, { + fileName: _jsxFileName, + lineNumber: 6, + columnNumber: 9 + }, _this2); + }); +} From 5ae1db6c05500435d395a8b769c0102b24842837 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 19 Mar 2020 16:56:15 +0100 Subject: [PATCH 3/6] Remove try-catch --- .../src/index.js | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) 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 0cc87aa2343b..3e5eef77b81f 100644 --- a/packages/babel-helper-builder-react-jsx-experimental/src/index.js +++ b/packages/babel-helper-builder-react-jsx-experimental/src/index.js @@ -517,19 +517,16 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, } } - try { - 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(node.name.name); - } - } catch (e) { - e.message += JSON.stringify(node); + 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(node.name.name); } + return t.inherits(t.objectProperty(node.name, value), node); } From 121d025d212160f03094870edd807e75d2c07f39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 19 Mar 2020 17:24:09 +0100 Subject: [PATCH 4/6] Update error --- .../babel-helper-builder-react-jsx-experimental/src/index.js | 2 +- .../linux/classic-runtime-with-source-self-plugins/options.json | 2 +- .../test/fixtures/linux/source-and-self-defined/options.json | 2 +- .../options.json | 2 +- .../windows/source-and-self-defined-windows/options.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) 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 3e5eef77b81f..225e9f0743bc 100644 --- a/packages/babel-helper-builder-react-jsx-experimental/src/index.js +++ b/packages/babel-helper-builder-react-jsx-experimental/src/index.js @@ -835,7 +835,7 @@ You can set \`throwIfNamespace: false\` to bypass this warning.`, const pluginName = `transform-react-jsx-${name.slice(2)}`; return path.buildCodeFrameError( - `Duplicate ${name} prop found. You are most likely using the deprecated ${pluginName} Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config.`, + `Duplicate ${name} prop found. You are most likely using the deprecated ${pluginName} Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config.`, ); } } 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 index 5fea78b9cfa2..3d7af506b7c5 100644 --- 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 @@ -5,5 +5,5 @@ "transform-react-jsx-self" ], "os": ["linux", "darwin"], - "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." + "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." } diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/source-and-self-defined/options.json b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/source-and-self-defined/options.json index 16548d1d0bd1..a2be725ca1cd 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/source-and-self-defined/options.json +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/source-and-self-defined/options.json @@ -6,5 +6,5 @@ ], "sourceType": "module", "os": ["linux", "darwin"], - "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." + "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." } 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 index e907849c8961..9c71d64a534a 100644 --- 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 @@ -5,5 +5,5 @@ "transform-react-jsx-self" ], "os": ["windows"], - "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." + "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." } diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/source-and-self-defined-windows/options.json b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/source-and-self-defined-windows/options.json index 0c15eb665d07..db90159c6e2b 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/source-and-self-defined-windows/options.json +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/source-and-self-defined-windows/options.json @@ -6,5 +6,5 @@ ], "sourceType": "module", "os": ["windows"], - "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. __source and __self will be set automatically in automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." + "throws": "Duplicate __self prop found. You are most likely using the deprecated transform-react-jsx-self Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config." } From 61c1e5b19b9a689563cbc91b53e41dfb2145cd4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 19 Mar 2020 17:50:20 +0100 Subject: [PATCH 5/6] Update fixtures --- .../test/fixtures/linux/self-inside-arrow/output.mjs | 6 ++++-- .../fixtures/windows/self-inside-arrow-windows/output.mjs | 6 ++++-- .../does-not-add-source-self-automatic/output.mjs | 8 ++++---- .../nextReactClassic/does-not-add-source-self/output.mjs | 8 ++++---- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/output.mjs b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/output.mjs index a59a5468be78..a7d8f61fd51a 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/output.mjs +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/output.mjs @@ -3,6 +3,7 @@ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime"; var _jsxFileName = "/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/self-inside-arrow/input.mjs", _this = this; +/*#__PURE__*/ _jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 1, @@ -10,7 +11,7 @@ _jsxDEV("div", {}, void 0, false, { }, this); (function () { - return _jsxDEV("div", {}, void 0, false, { + return /*#__PURE__*/_jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 7 @@ -20,6 +21,7 @@ _jsxDEV("div", {}, void 0, false, { function fn() { var _this2 = this; + /*#__PURE__*/ _jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 5, @@ -27,7 +29,7 @@ function fn() { }, this); (function () { - return _jsxDEV("div", {}, void 0, false, { + return /*#__PURE__*/_jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 9 diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs index d31c072733d5..f91da3744591 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs @@ -3,6 +3,7 @@ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime"; var _jsxFileName = "C:\\Users\\travis\\build\\babel\\babel\\packages\\babel-plugin-transform-react-jsx-development\\test\\fixtures\\windows\\self-inside-arrow\\input.mjs", _this = this; +/*#__PURE__*/ _jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 1, @@ -10,7 +11,7 @@ _jsxDEV("div", {}, void 0, false, { }, this); (function () { - return _jsxDEV("div", {}, void 0, false, { + return /*#__PURE__*/_jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 7 @@ -20,6 +21,7 @@ _jsxDEV("div", {}, void 0, false, { function fn() { var _this2 = this; + /*#__PURE__*/ _jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 5, @@ -27,7 +29,7 @@ function fn() { }, this); (function () { - return _jsxDEV("div", {}, void 0, false, { + return /*#__PURE__*/_jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 9 diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/output.mjs index 386cac2a472a..00a9fb933326 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/output.mjs +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReact/does-not-add-source-self-automatic/output.mjs @@ -3,11 +3,11 @@ import { jsxs as _jsxs } from "react/jsx-runtime"; import { jsx as _jsx } from "react/jsx-runtime"; import { Fragment as _Fragment } from "react/jsx-runtime"; -var x = _jsx(_Fragment, { - children: _jsxs("div", { - children: [_jsx("div", {}, "1"), _jsx("div", { +var x = /*#__PURE__*/_jsx(_Fragment, { + children: /*#__PURE__*/_jsxs("div", { + children: [/*#__PURE__*/_jsx("div", {}, "1"), /*#__PURE__*/_jsx("div", { meow: "wolf" - }, "2"), _jsx("div", {}, "3"), _createElement("div", { ...props, + }, "2"), /*#__PURE__*/_jsx("div", {}, "3"), /*#__PURE__*/_createElement("div", { ...props, key: "4" })] }) diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/output.mjs b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/output.mjs index e11954f7db0c..d35cf1d205b8 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/output.mjs +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/nextReactClassic/does-not-add-source-self/output.mjs @@ -1,11 +1,11 @@ /** @jsxRuntime classic */ -var x = React.createElement(React.Fragment, null, React.createElement("div", null, React.createElement("div", { +var x = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", { key: "1" -}), React.createElement("div", { +}), /*#__PURE__*/React.createElement("div", { key: "2", meow: "wolf" -}), React.createElement("div", { +}), /*#__PURE__*/React.createElement("div", { key: "3" -}), React.createElement("div", { ...props, +}), /*#__PURE__*/React.createElement("div", { ...props, key: "4" }))); From 74bd22dabbb03e2f8deae3daccc8ac2b54bcd17e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 19 Mar 2020 18:54:35 +0100 Subject: [PATCH 6/6] Update windows fixtures --- .../windows/handle-fragments-with-key-windows/output.js | 2 +- .../test/fixtures/windows/self-inside-arrow-windows/output.mjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/handle-fragments-with-key-windows/output.js b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/handle-fragments-with-key-windows/output.js index 577650e5f4d4..24bb6c833000 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/handle-fragments-with-key-windows/output.js +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/handle-fragments-with-key-windows/output.js @@ -2,7 +2,7 @@ var _reactJsxDevRuntime = require("react/jsx-dev-runtime"); var _jsxFileName = "C:\\Users\\travis\\build\\babel\\babel\\packages\\babel-plugin-transform-react-jsx-development\\test\\fixtures\\windows\\handle-fragments-with-key-windows\\input.js"; -var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV(React.Fragment, {}, "foo", false, { +var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV(React.Fragment, {}, 'foo', false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 9 diff --git a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs index f91da3744591..cbd8fff42f08 100644 --- a/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs +++ b/packages/babel-plugin-transform-react-jsx-development/test/fixtures/windows/self-inside-arrow-windows/output.mjs @@ -1,6 +1,6 @@ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime"; -var _jsxFileName = "C:\\Users\\travis\\build\\babel\\babel\\packages\\babel-plugin-transform-react-jsx-development\\test\\fixtures\\windows\\self-inside-arrow\\input.mjs", +var _jsxFileName = "C:\\Users\\travis\\build\\babel\\babel\\packages\\babel-plugin-transform-react-jsx-development\\test\\fixtures\\windows\\self-inside-arrow-windows\\input.mjs", _this = this; /*#__PURE__*/