From 7ac77316765018340ffee4898e9d62cd95063602 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 17 Feb 2026 18:54:57 +0000
Subject: [PATCH 1/3] Initial plan
From 6ff581a5102ca99538e911b7be1df28eb4c1db96 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 17 Feb 2026 19:19:52 +0000
Subject: [PATCH 2/3] Port TypeScript PR #61534: correct source location when
react-jsx and whitespace before jsx
Skip leading trivia when computing the location range for JSX elements,
self-closing elements, and fragments in the JSX transformer. This ensures
correct columnNumber values in react-jsxdev source location metadata.
Co-authored-by: jakebailey <5341706+jakebailey@users.noreply.github.com>
---
internal/transformers/jsxtransforms/jsx.go | 12 +++++++++---
...t-jsxdev,module=commonjs,moduledetection=auto).js | 2 +-
...dev,module=commonjs,moduledetection=auto).js.diff | 2 +-
...-jsxdev,module=commonjs,moduledetection=force).js | 2 +-
...ev,module=commonjs,moduledetection=force).js.diff | 2 +-
...jsxdev,module=commonjs,moduledetection=legacy).js | 2 +-
...v,module=commonjs,moduledetection=legacy).js.diff | 2 +-
...yExpressionNotCountedAsChild(jsx=react-jsxdev).js | 4 ++--
...essionNotCountedAsChild(jsx=react-jsxdev).js.diff | 4 ++--
...AttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js | 8 ++++----
...buteIgnoredWhenReactJsx(jsx=react-jsxdev).js.diff | 8 ++++----
...entChildrenAttributeReactJsx(jsx=react-jsxdev).js | 4 ++--
...ildrenAttributeReactJsx(jsx=react-jsxdev).js.diff | 4 ++--
...eactImportUnusedInNewJSXEmit(jsx=react-jsxdev).js | 4 ++--
...mportUnusedInNewJSXEmit(jsx=react-jsxdev).js.diff | 4 ++--
.../jsxJsxsCjsTransformChildren(jsx=react-jsxdev).js | 2 +-
...sxsCjsTransformChildren(jsx=react-jsxdev).js.diff | 2 +-
...JsxsCjsTransformCustomImport(jsx=react-jsxdev).js | 2 +-
...jsTransformCustomImport(jsx=react-jsxdev).js.diff | 2 +-
...sTransformCustomImportPragma(jsx=react-jsxdev).js | 4 ++--
...sformCustomImportPragma(jsx=react-jsxdev).js.diff | 4 ++--
.../jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).js | 2 +-
...JsxsCjsTransformKeyProp(jsx=react-jsxdev).js.diff | 2 +-
...TransformKeyPropCustomImport(jsx=react-jsxdev).js | 2 +-
...formKeyPropCustomImport(jsx=react-jsxdev).js.diff | 2 +-
...ormKeyPropCustomImportPragma(jsx=react-jsxdev).js | 4 ++--
...yPropCustomImportPragma(jsx=react-jsxdev).js.diff | 4 ++--
...nsformNestedSelfClosingChild(jsx=react-jsxdev).js | 6 +++---
...mNestedSelfClosingChild(jsx=react-jsxdev).js.diff | 6 +++---
...CjsTransformSubstitutesNames(jsx=react-jsxdev).js | 2 +-
...ansformSubstitutesNames(jsx=react-jsxdev).js.diff | 2 +-
...formSubstitutesNamesFragment(jsx=react-jsxdev).js | 2 +-
...ubstitutesNamesFragment(jsx=react-jsxdev).js.diff | 2 +-
33 files changed, 61 insertions(+), 55 deletions(-)
diff --git a/internal/transformers/jsxtransforms/jsx.go b/internal/transformers/jsxtransforms/jsx.go
index e27fa57c6b..353da551a7 100644
--- a/internal/transformers/jsxtransforms/jsx.go
+++ b/internal/transformers/jsxtransforms/jsx.go
@@ -294,7 +294,9 @@ func (tx *JSXTransformer) visitJsxElement(element *ast.JsxElement) *ast.Node {
if tx.shouldUseCreateElement(element.AsNode()) {
tagTransform = (*JSXTransformer).visitJsxOpeningLikeElementCreateElement
}
- return tagTransform(tx, element.OpeningElement, element.Children, element.AsNode())
+ location := element.AsNode()
+ location.Loc = core.NewTextRange(scanner.SkipTrivia(tx.currentSourceFile.Text(), element.Pos()), element.End())
+ return tagTransform(tx, element.OpeningElement, element.Children, location)
}
func (tx *JSXTransformer) visitJsxSelfClosingElement(element *ast.JsxSelfClosingElement) *ast.Node {
@@ -302,7 +304,9 @@ func (tx *JSXTransformer) visitJsxSelfClosingElement(element *ast.JsxSelfClosing
if tx.shouldUseCreateElement(element.AsNode()) {
tagTransform = (*JSXTransformer).visitJsxOpeningLikeElementCreateElement
}
- return tagTransform(tx, element.AsNode(), nil, element.AsNode())
+ location := element.AsNode()
+ location.Loc = core.NewTextRange(scanner.SkipTrivia(tx.currentSourceFile.Text(), element.Pos()), element.End())
+ return tagTransform(tx, location, nil, location)
}
func (tx *JSXTransformer) visitJsxFragment(fragment *ast.JsxFragment) *ast.Node {
@@ -310,7 +314,9 @@ func (tx *JSXTransformer) visitJsxFragment(fragment *ast.JsxFragment) *ast.Node
if len(tx.importSpecifier) == 0 {
tagTransform = (*JSXTransformer).visitJsxOpeningFragmentCreateElement
}
- return tagTransform(tx, fragment.OpeningFragment.AsJsxOpeningFragment(), fragment.Children, fragment.AsNode())
+ location := fragment.AsNode()
+ location.Loc = core.NewTextRange(scanner.SkipTrivia(tx.currentSourceFile.Text(), fragment.Pos()), fragment.End())
+ return tagTransform(tx, fragment.OpeningFragment.AsJsxOpeningFragment(), fragment.Children, location)
}
func (tx *JSXTransformer) convertJsxChildrenToChildrenPropObject(children []*ast.JsxChild) *ast.Node {
diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js
index e91a339a7d..2f8459fefc 100644
--- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js
+++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js
@@ -29,6 +29,6 @@ const jsx_dev_runtime_1 = require("react/jsx-dev-runtime");
const _jsxFileName = "/.src/commentsOnJSXExpressionsArePreserved.tsx";
class Component {
render() {
- return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this);
+ return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 16 }, this);
}
}
diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js.diff
index 8dd1b5936c..91925de870 100644
--- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js.diff
@@ -9,6 +9,6 @@
class Component {
render() {
- return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 16 }, this);
-+ return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this);
++ return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 16 }, this);
}
}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js
index e91a339a7d..2f8459fefc 100644
--- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js
+++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js
@@ -29,6 +29,6 @@ const jsx_dev_runtime_1 = require("react/jsx-dev-runtime");
const _jsxFileName = "/.src/commentsOnJSXExpressionsArePreserved.tsx";
class Component {
render() {
- return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this);
+ return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 16 }, this);
}
}
diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js.diff
index b2a126f7c3..2c47798704 100644
--- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js.diff
@@ -9,6 +9,6 @@
class Component {
render() {
- return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 16 }, this);
-+ return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this);
++ return jsx_dev_runtime_1.jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 16 }, this);
}
}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js
index 653ab83fd3..49266bacd9 100644
--- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js
+++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js
@@ -27,6 +27,6 @@ class Component {
const _jsxFileName = "/.src/commentsOnJSXExpressionsArePreserved.tsx";
class Component {
render() {
- return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this);
+ return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 16 }, this);
}
}
diff --git a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js.diff b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js.diff
index fcc712df39..186d2a7418 100644
--- a/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js.diff
@@ -9,6 +9,6 @@
class Component {
render() {
- return (0, _a.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 16 }, this);
-+ return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this);
++ return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 16 }, this);
}
}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js
index 82f3564b3d..64b265461d 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js
@@ -25,6 +25,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
const jsx_dev_runtime_1 = require("react/jsx-dev-runtime");
const _jsxFileName = "/.src/jsxEmptyExpressionNotCountedAsChild.tsx";
function Wrapper(props) {
- return jsx_dev_runtime_1.jsxDEV("div", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 9, columnNumber: 11 }, this);
+ return jsx_dev_runtime_1.jsxDEV("div", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 9, columnNumber: 12 }, this);
}
-const element = (jsx_dev_runtime_1.jsxDEV(Wrapper, { children: jsx_dev_runtime_1.jsxDEV("div", { children: "Hello" }, void 0, false, { fileName: _jsxFileName, lineNumber: 15, columnNumber: 6 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 12, columnNumber: 18 }, this));
+const element = (jsx_dev_runtime_1.jsxDEV(Wrapper, { children: jsx_dev_runtime_1.jsxDEV("div", { children: "Hello" }, void 0, false, { fileName: _jsxFileName, lineNumber: 15, columnNumber: 6 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 13, columnNumber: 5 }, this));
diff --git a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js.diff
index f75ac73d07..8f6483d93f 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).js.diff
@@ -8,7 +8,7 @@
+const _jsxFileName = "/.src/jsxEmptyExpressionNotCountedAsChild.tsx";
function Wrapper(props) {
- return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 9, columnNumber: 12 }, this);
-+ return jsx_dev_runtime_1.jsxDEV("div", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 9, columnNumber: 11 }, this);
++ return jsx_dev_runtime_1.jsxDEV("div", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 9, columnNumber: 12 }, this);
}
-const element = ((0, jsx_dev_runtime_1.jsxDEV)(Wrapper, { children: (0, jsx_dev_runtime_1.jsxDEV)("div", { children: "Hello" }, void 0, false, { fileName: _jsxFileName, lineNumber: 15, columnNumber: 6 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 13, columnNumber: 5 }, this));
-+const element = (jsx_dev_runtime_1.jsxDEV(Wrapper, { children: jsx_dev_runtime_1.jsxDEV("div", { children: "Hello" }, void 0, false, { fileName: _jsxFileName, lineNumber: 15, columnNumber: 6 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 12, columnNumber: 18 }, this));
\ No newline at end of file
++const element = (jsx_dev_runtime_1.jsxDEV(Wrapper, { children: jsx_dev_runtime_1.jsxDEV("div", { children: "Hello" }, void 0, false, { fileName: _jsxFileName, lineNumber: 15, columnNumber: 6 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 13, columnNumber: 5 }, this));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js
index bcf5f7970d..d24eaf530b 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js
@@ -36,10 +36,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_dev_runtime_1 = require("/jsx/jsx-dev-runtime");
const _jsxFileName = "/test.tsx";
-const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, this);
-jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 74 }, this);
-const Wrong = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.offspring }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 48 }, this);
-jsx_dev_runtime_1.jsxDEV(Wrong, { children: "Byebye, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 76 }, this);
+const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 48 }, this);
+jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 1 }, this);
+const Wrong = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.offspring }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 49 }, this);
+jsx_dev_runtime_1.jsxDEV(Wrong, { children: "Byebye, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 7, columnNumber: 1 }, this);
//// [jsx-runtime.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js.diff
index 0ba1434a8d..b9baa2761d 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceElementChildrenAttributeIgnoredWhenReactJsx(jsx=react-jsxdev).js.diff
@@ -8,10 +8,10 @@
-(0, jsx_dev_runtime_1.jsxDEV)(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 1 }, this);
-const Wrong = (props) => (0, jsx_dev_runtime_1.jsxDEV)("h1", { children: props.offspring }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 49 }, this);
-(0, jsx_dev_runtime_1.jsxDEV)(Wrong, { children: "Byebye, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 7, columnNumber: 1 }, this);
-+const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, this);
-+jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 74 }, this);
-+const Wrong = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.offspring }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 48 }, this);
-+jsx_dev_runtime_1.jsxDEV(Wrong, { children: "Byebye, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 76 }, this);
++const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 48 }, this);
++jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 1 }, this);
++const Wrong = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.offspring }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 49 }, this);
++jsx_dev_runtime_1.jsxDEV(Wrong, { children: "Byebye, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 7, columnNumber: 1 }, this);
//// [jsx-runtime.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js
index c38dd60071..710e496ba7 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js
@@ -27,8 +27,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_dev_runtime_1 = require("/jsx/jsx-dev-runtime");
const _jsxFileName = "/test.tsx";
-const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, this);
-const element = jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 16 }, this);
+const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 48 }, this);
+const element = jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 17 }, this);
//// [jsx-runtime.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js.diff
index 3985743f99..48ea3516e3 100644
--- a/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/jsxNamespaceNoElementChildrenAttributeReactJsx(jsx=react-jsxdev).js.diff
@@ -6,8 +6,8 @@
const _jsxFileName = "/test.tsx";
-const Title = (props) => (0, jsx_dev_runtime_1.jsxDEV)("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 48 }, this);
-const element = (0, jsx_dev_runtime_1.jsxDEV)(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 17 }, this);
-+const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 47 }, this);
-+const element = jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 16 }, this);
++const Title = (props) => jsx_dev_runtime_1.jsxDEV("h1", { children: props.children }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 48 }, this);
++const element = jsx_dev_runtime_1.jsxDEV(Title, { children: "Hello, world!" }, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 17 }, this);
//// [jsx-runtime.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/compiler/reactImportUnusedInNewJSXEmit(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/compiler/reactImportUnusedInNewJSXEmit(jsx=react-jsxdev).js
index b237662020..304d75afff 100644
--- a/testdata/baselines/reference/submodule/compiler/reactImportUnusedInNewJSXEmit(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/compiler/reactImportUnusedInNewJSXEmit(jsx=react-jsxdev).js
@@ -20,8 +20,8 @@ exports.Foo = Foo;
const jsx_dev_runtime_1 = require("react/jsx-dev-runtime");
const _jsxFileName = "/.src/index.tsx";
function Bar() {
- return jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 9 }, this);
+ return jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 10 }, this);
}
function Foo() {
- return jsx_dev_runtime_1.jsxDEV(Bar, {}, void 0, false, { fileName: _jsxFileName, lineNumber: 10, columnNumber: 9 }, this);
+ return jsx_dev_runtime_1.jsxDEV(Bar, {}, void 0, false, { fileName: _jsxFileName, lineNumber: 10, columnNumber: 10 }, this);
}
diff --git a/testdata/baselines/reference/submodule/compiler/reactImportUnusedInNewJSXEmit(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/compiler/reactImportUnusedInNewJSXEmit(jsx=react-jsxdev).js.diff
index e37be78276..4830eeeb81 100644
--- a/testdata/baselines/reference/submodule/compiler/reactImportUnusedInNewJSXEmit(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/compiler/reactImportUnusedInNewJSXEmit(jsx=react-jsxdev).js.diff
@@ -8,9 +8,9 @@
+const _jsxFileName = "/.src/index.tsx";
function Bar() {
- return (0, jsx_dev_runtime_1.jsxDEV)("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 10 }, this);
-+ return jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 9 }, this);
++ return jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 10 }, this);
}
function Foo() {
- return (0, jsx_dev_runtime_1.jsxDEV)(Bar, {}, void 0, false, { fileName: _jsxFileName, lineNumber: 10, columnNumber: 10 }, this);
-+ return jsx_dev_runtime_1.jsxDEV(Bar, {}, void 0, false, { fileName: _jsxFileName, lineNumber: 10, columnNumber: 9 }, this);
++ return jsx_dev_runtime_1.jsxDEV(Bar, {}, void 0, false, { fileName: _jsxFileName, lineNumber: 10, columnNumber: 10 }, this);
}
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).js
index f207953866..745a73affa 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).js
@@ -13,4 +13,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
const jsx_dev_runtime_1 = require("react/jsx-dev-runtime");
const _jsxFileName = "/.src/jsxJsxsCjsTransformChildren.tsx";
///
-const a = jsx_dev_runtime_1.jsxDEV("div", { children: "text" }, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 10 }, this);
+const a = jsx_dev_runtime_1.jsxDEV("div", { children: "text" }, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).js.diff
index 6bf9dce8f8..986bd1985f 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformChildren(jsx=react-jsxdev).js.diff
@@ -8,4 +8,4 @@
+const _jsxFileName = "/.src/jsxJsxsCjsTransformChildren.tsx";
///
-const a = (0, jsx_dev_runtime_1.jsxDEV)("div", { children: "text" }, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
-+const a = jsx_dev_runtime_1.jsxDEV("div", { children: "text" }, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 10 }, this);
\ No newline at end of file
++const a = jsx_dev_runtime_1.jsxDEV("div", { children: "text" }, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).js
index 3fe58ccfa7..0caf326641 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).js
@@ -20,4 +20,4 @@ const a = jsx_dev_runtime_1.jsxDEV(jsx_dev_runtime_1.Fragment, { children: [
jsx_dev_runtime_1.jsxDEV("p", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 3 }, this),
"text",
jsx_dev_runtime_1.jsxDEV("div", { className: "foo" }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 3 }, this)
- ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 10 }, this);
+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).js.diff
index 04a0ca8174..e0641e2150 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImport(jsx=react-jsxdev).js.diff
@@ -12,4 +12,4 @@
+ jsx_dev_runtime_1.jsxDEV("p", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 3 }, this),
+ "text",
+ jsx_dev_runtime_1.jsxDEV("div", { className: "foo" }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 3 }, this)
-+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 10 }, this);
\ No newline at end of file
++ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).js
index bec5cd7fd6..d8920d68ed 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).js
@@ -33,7 +33,7 @@ const a = jsx_dev_runtime_1.jsxDEV(jsx_dev_runtime_1.Fragment, { children: [
jsx_dev_runtime_1.jsxDEV("p", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 3 }, this),
"text",
jsx_dev_runtime_1.jsxDEV("div", { className: "foo" }, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 3 }, this)
- ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 10 }, this);
+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 11 }, this);
//// [react.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -46,4 +46,4 @@ const a = jsx_dev_runtime_1.jsxDEV(jsx_dev_runtime_1.Fragment, { children: [
jsx_dev_runtime_1.jsxDEV("p", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 3 }, this),
"text",
jsx_dev_runtime_1.jsxDEV("div", { className: "foo" }, void 0, false, { fileName: _jsxFileName, lineNumber: 7, columnNumber: 3 }, this)
- ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 10 }, this);
+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 11 }, this);
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).js.diff
index 1fac41bf37..a989b46d21 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsxdev).js.diff
@@ -9,7 +9,7 @@
+ jsx_dev_runtime_1.jsxDEV("p", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 3 }, this),
+ "text",
+ jsx_dev_runtime_1.jsxDEV("div", { className: "foo" }, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 3 }, this)
-+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 10 }, this);
++ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 11 }, this);
//// [react.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@@ -24,4 +24,4 @@
+ jsx_dev_runtime_1.jsxDEV("p", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 3 }, this),
+ "text",
+ jsx_dev_runtime_1.jsxDEV("div", { className: "foo" }, void 0, false, { fileName: _jsxFileName, lineNumber: 7, columnNumber: 3 }, this)
-+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 10 }, this);
\ No newline at end of file
++ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 11 }, this);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).js
index fe22e0e695..c7256bb4b4 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).js
@@ -17,5 +17,5 @@ const react_1 = require("react");
const _jsxFileName = "/.src/jsxJsxsCjsTransformKeyProp.tsx";
///
const props = { answer: 42 };
-const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 10 }, this);
+const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 11 }, this);
const b = react_1.createElement("div", Object.assign({}, props, { key: "bar" }), "text");
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).js.diff
index b795b787cf..babc97a201 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyProp(jsx=react-jsxdev).js.diff
@@ -13,5 +13,5 @@
const props = { answer: 42 };
-const a = (0, jsx_dev_runtime_1.jsxDEV)("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 11 }, this);
-const b = (0, react_1.createElement)("div", Object.assign({}, props, { key: "bar" }), "text");
-+const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 10 }, this);
++const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 11 }, this);
+const b = react_1.createElement("div", Object.assign({}, props, { key: "bar" }), "text");
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).js
index 538d350730..e03a018b66 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).js
@@ -17,5 +17,5 @@ const preact_1 = require("preact");
const _jsxFileName = "/.src/jsxJsxsCjsTransformKeyPropCustomImport.tsx";
///
const props = { answer: 42 };
-const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 10 }, this);
+const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 11 }, this);
const b = preact_1.createElement("div", Object.assign({}, props, { key: "bar" }), "text");
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).js.diff
index 6dbb69681d..7df1ad13a3 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImport(jsx=react-jsxdev).js.diff
@@ -13,5 +13,5 @@
const props = { answer: 42 };
-const a = (0, jsx_dev_runtime_1.jsxDEV)("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 11 }, this);
-const b = (0, preact_1.createElement)("div", Object.assign({}, props, { key: "bar" }), "text");
-+const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 10 }, this);
++const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 11 }, this);
+const b = preact_1.createElement("div", Object.assign({}, props, { key: "bar" }), "text");
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).js
index 9315a22ec4..0848aa835f 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).js
@@ -29,7 +29,7 @@ const _jsxFileName = "/.src/preact.tsx";
///
/* @jsxImportSource preact */
const props = { answer: 42 };
-const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 10 }, this);
+const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 11 }, this);
const b = preact_1.createElement("div", Object.assign({}, props, { key: "bar" }), "text");
//// [react.js]
"use strict";
@@ -41,5 +41,5 @@ const _jsxFileName = "/.src/react.tsx";
/* @jsxImportSource react */
require("./preact");
const props2 = { answer: 42 };
-const a2 = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props2, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 11 }, this);
+const a2 = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props2, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 12 }, this);
const b2 = react_1.createElement("div", Object.assign({}, props2, { key: "bar" }), "text");
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).js.diff
index 9453ee1be8..6b7a2f01bd 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformKeyPropCustomImportPragma(jsx=react-jsxdev).js.diff
@@ -13,7 +13,7 @@
const props = { answer: 42 };
-const a = (0, jsx_dev_runtime_1.jsxDEV)("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 11 }, this);
-const b = (0, preact_1.createElement)("div", Object.assign({}, props, { key: "bar" }), "text");
-+const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 10 }, this);
++const a = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 11 }, this);
+const b = preact_1.createElement("div", Object.assign({}, props, { key: "bar" }), "text");
//// [react.js]
"use strict";
@@ -29,5 +29,5 @@
const props2 = { answer: 42 };
-const a2 = (0, jsx_dev_runtime_1.jsxDEV)("div", Object.assign({}, props2, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 12 }, this);
-const b2 = (0, react_1.createElement)("div", Object.assign({}, props2, { key: "bar" }), "text");
-+const a2 = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props2, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 11 }, this);
++const a2 = jsx_dev_runtime_1.jsxDEV("div", Object.assign({}, props2, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 12 }, this);
+const b2 = react_1.createElement("div", Object.assign({}, props2, { key: "bar" }), "text");
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).js
index 9762ea4d8b..5def54a489 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).js
@@ -28,8 +28,8 @@ console.log(
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_dev_runtime_1 = require("react/jsx-dev-runtime");
const _jsxFileName = "/.src/jsxJsxsCjsTransformNestedSelfClosingChild.tsx";
-console.log(jsx_dev_runtime_1.jsxDEV("div", { children: jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 5 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 13 }, this));
+console.log(jsx_dev_runtime_1.jsxDEV("div", { children: jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 5 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 3 }, this));
console.log(jsx_dev_runtime_1.jsxDEV("div", { children: [
jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 12, columnNumber: 5 }, this), jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 13, columnNumber: 5 }, this)
- ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 10, columnNumber: 13 }, this));
-console.log(jsx_dev_runtime_1.jsxDEV("div", { children: [1, 2].map(i => jsx_dev_runtime_1.jsxDEV("div", { children: i }, i, false, { fileName: _jsxFileName, lineNumber: 19, columnNumber: 21 }, this)) }, void 0, false, { fileName: _jsxFileName, lineNumber: 17, columnNumber: 13 }, this));
+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 11, columnNumber: 3 }, this));
+console.log(jsx_dev_runtime_1.jsxDEV("div", { children: [1, 2].map(i => jsx_dev_runtime_1.jsxDEV("div", { children: i }, i, false, { fileName: _jsxFileName, lineNumber: 19, columnNumber: 22 }, this)) }, void 0, false, { fileName: _jsxFileName, lineNumber: 18, columnNumber: 3 }, this));
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).js.diff
index 880ba9fddf..5bc9ebcdd2 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsxdev).js.diff
@@ -9,8 +9,8 @@
-console.log((0, jsx_dev_runtime_1.jsxDEV)("div", { children: [(0, jsx_dev_runtime_1.jsxDEV)("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 12, columnNumber: 5 }, this), (0, jsx_dev_runtime_1.jsxDEV)("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 13, columnNumber: 5 }, this)] }, void 0, true, { fileName: _jsxFileName, lineNumber: 11, columnNumber: 3 }, this));
-console.log((0, jsx_dev_runtime_1.jsxDEV)("div", { children: [1, 2].map(i => (0, jsx_dev_runtime_1.jsxDEV)("div", { children: i }, i, false, { fileName: _jsxFileName, lineNumber: 19, columnNumber: 22 }, this)) }, void 0, false, { fileName: _jsxFileName, lineNumber: 18, columnNumber: 3 }, this));
+const _jsxFileName = "/.src/jsxJsxsCjsTransformNestedSelfClosingChild.tsx";
-+console.log(jsx_dev_runtime_1.jsxDEV("div", { children: jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 5 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 4, columnNumber: 13 }, this));
++console.log(jsx_dev_runtime_1.jsxDEV("div", { children: jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 6, columnNumber: 5 }, this) }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 3 }, this));
+console.log(jsx_dev_runtime_1.jsxDEV("div", { children: [
+ jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 12, columnNumber: 5 }, this), jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 13, columnNumber: 5 }, this)
-+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 10, columnNumber: 13 }, this));
-+console.log(jsx_dev_runtime_1.jsxDEV("div", { children: [1, 2].map(i => jsx_dev_runtime_1.jsxDEV("div", { children: i }, i, false, { fileName: _jsxFileName, lineNumber: 19, columnNumber: 21 }, this)) }, void 0, false, { fileName: _jsxFileName, lineNumber: 17, columnNumber: 13 }, this));
\ No newline at end of file
++ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 11, columnNumber: 3 }, this));
++console.log(jsx_dev_runtime_1.jsxDEV("div", { children: [1, 2].map(i => jsx_dev_runtime_1.jsxDEV("div", { children: i }, i, false, { fileName: _jsxFileName, lineNumber: 19, columnNumber: 22 }, this)) }, void 0, false, { fileName: _jsxFileName, lineNumber: 18, columnNumber: 3 }, this));
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).js
index 53a8b5e3e5..34314fc7b1 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).js
@@ -12,4 +12,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
const jsx_dev_runtime_1 = require("react/jsx-dev-runtime");
const _jsxFileName = "/.src/jsxJsxsCjsTransformSubstitutesNames.tsx";
///
-const a = jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 10 }, this);
+const a = jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).js.diff
index d23fa93313..4faca33c33 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsxdev).js.diff
@@ -8,4 +8,4 @@
+const _jsxFileName = "/.src/jsxJsxsCjsTransformSubstitutesNames.tsx";
///
-const a = (0, jsx_dev_runtime_1.jsxDEV)("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
-+const a = jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 10 }, this);
\ No newline at end of file
++const a = jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
\ No newline at end of file
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).js b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).js
index 5e91499fa6..b3d93554b4 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).js
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).js
@@ -20,4 +20,4 @@ const a = jsx_dev_runtime_1.jsxDEV(jsx_dev_runtime_1.Fragment, { children: [
jsx_dev_runtime_1.jsxDEV("p", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 3 }, this),
"text",
jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 3 }, this)
- ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 10 }, this);
+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
diff --git a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).js.diff b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).js.diff
index 0c88768f9a..6543371ee8 100644
--- a/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).js.diff
+++ b/testdata/baselines/reference/submodule/conformance/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsxdev).js.diff
@@ -12,4 +12,4 @@
+ jsx_dev_runtime_1.jsxDEV("p", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 3 }, this),
+ "text",
+ jsx_dev_runtime_1.jsxDEV("div", {}, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 3 }, this)
-+ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 10 }, this);
\ No newline at end of file
++ ] }, void 0, true, { fileName: _jsxFileName, lineNumber: 2, columnNumber: 11 }, this);
\ No newline at end of file
From 633007d880f0b9c24e0f0880ff72a626e8d50188 Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Tue, 17 Feb 2026 14:13:43 -0800
Subject: [PATCH 3/3] Fix data race
---
internal/transformers/jsxtransforms/jsx.go | 27 ++++++++++------------
1 file changed, 12 insertions(+), 15 deletions(-)
diff --git a/internal/transformers/jsxtransforms/jsx.go b/internal/transformers/jsxtransforms/jsx.go
index 353da551a7..371bac5e31 100644
--- a/internal/transformers/jsxtransforms/jsx.go
+++ b/internal/transformers/jsxtransforms/jsx.go
@@ -294,8 +294,7 @@ func (tx *JSXTransformer) visitJsxElement(element *ast.JsxElement) *ast.Node {
if tx.shouldUseCreateElement(element.AsNode()) {
tagTransform = (*JSXTransformer).visitJsxOpeningLikeElementCreateElement
}
- location := element.AsNode()
- location.Loc = core.NewTextRange(scanner.SkipTrivia(tx.currentSourceFile.Text(), element.Pos()), element.End())
+ location := core.NewTextRange(scanner.SkipTrivia(tx.currentSourceFile.Text(), element.Pos()), element.End())
return tagTransform(tx, element.OpeningElement, element.Children, location)
}
@@ -304,9 +303,8 @@ func (tx *JSXTransformer) visitJsxSelfClosingElement(element *ast.JsxSelfClosing
if tx.shouldUseCreateElement(element.AsNode()) {
tagTransform = (*JSXTransformer).visitJsxOpeningLikeElementCreateElement
}
- location := element.AsNode()
- location.Loc = core.NewTextRange(scanner.SkipTrivia(tx.currentSourceFile.Text(), element.Pos()), element.End())
- return tagTransform(tx, location, nil, location)
+ location := core.NewTextRange(scanner.SkipTrivia(tx.currentSourceFile.Text(), element.Pos()), element.End())
+ return tagTransform(tx, element.AsNode(), nil, location)
}
func (tx *JSXTransformer) visitJsxFragment(fragment *ast.JsxFragment) *ast.Node {
@@ -314,8 +312,7 @@ func (tx *JSXTransformer) visitJsxFragment(fragment *ast.JsxFragment) *ast.Node
if len(tx.importSpecifier) == 0 {
tagTransform = (*JSXTransformer).visitJsxOpeningFragmentCreateElement
}
- location := fragment.AsNode()
- location.Loc = core.NewTextRange(scanner.SkipTrivia(tx.currentSourceFile.Text(), fragment.Pos()), fragment.End())
+ location := core.NewTextRange(scanner.SkipTrivia(tx.currentSourceFile.Text(), fragment.Pos()), fragment.End())
return tagTransform(tx, fragment.OpeningFragment.AsJsxOpeningFragment(), fragment.Children, location)
}
@@ -376,7 +373,7 @@ func (tx *JSXTransformer) getTagName(node *ast.Node) *ast.Node {
}
}
-func (tx *JSXTransformer) visitJsxOpeningLikeElementJSX(element *ast.Node, children *ast.NodeList, location *ast.Node) *ast.Node {
+func (tx *JSXTransformer) visitJsxOpeningLikeElementJSX(element *ast.Node, children *ast.NodeList, location core.TextRange) *ast.Node {
tagName := tx.getTagName(element)
var childrenProp *ast.Node
if children != nil && len(children.Nodes) > 0 {
@@ -564,7 +561,7 @@ func (tx *JSXTransformer) visitJsxOpeningLikeElementOrFragmentJSX(
object *ast.Expression,
keyAttr *ast.Node,
children *ast.NodeList,
- location *ast.Node,
+ location core.TextRange,
) *ast.Node {
var nonWhitespaceChildren []*ast.Node
if children != nil {
@@ -605,7 +602,7 @@ func (tx *JSXTransformer) visitJsxOpeningLikeElementOrFragmentJSX(
}
element := tx.Factory().NewCallExpression(tx.getJsxFactoryCallee(isStaticChildren), nil, nil, tx.Factory().NewNodeList(args), ast.NodeFlagsNone)
- element.Loc = location.Loc
+ element.Loc = location
if tx.inJsxChild {
tx.EmitContext().AddEmitFlags(element, printer.EFStartOnNewLine)
@@ -614,7 +611,7 @@ func (tx *JSXTransformer) visitJsxOpeningLikeElementOrFragmentJSX(
return element
}
-func (tx *JSXTransformer) visitJsxOpeningFragmentJSX(fragment *ast.JsxOpeningFragment, children *ast.NodeList, location *ast.Node) *ast.Node {
+func (tx *JSXTransformer) visitJsxOpeningFragmentJSX(fragment *ast.JsxOpeningFragment, children *ast.NodeList, location core.TextRange) *ast.Node {
var childrenProps *ast.Expression
if children != nil && len(children.Nodes) > 0 {
result := tx.convertJsxChildrenToChildrenPropObject(children.Nodes)
@@ -682,7 +679,7 @@ func (tx *JSXTransformer) createJsxFragmentFactoryExpression(parent *ast.Node) *
return tx.createJsxPsuedoFactoryExpression(parent, e, "Fragment")
}
-func (tx *JSXTransformer) visitJsxOpeningLikeElementCreateElement(element *ast.Node, children *ast.NodeList, location *ast.Node) *ast.Node {
+func (tx *JSXTransformer) visitJsxOpeningLikeElementCreateElement(element *ast.Node, children *ast.NodeList, location core.TextRange) *ast.Node {
tagName := tx.getTagName(element)
attrs := element.Attributes().Properties()
var objectProperties *ast.Expression
@@ -728,7 +725,7 @@ func (tx *JSXTransformer) visitJsxOpeningLikeElementCreateElement(element *ast.N
tx.Factory().NewNodeList(args),
ast.NodeFlagsNone,
)
- result.Loc = location.Loc
+ result.Loc = location
if tx.inJsxChild {
tx.EmitContext().AddEmitFlags(result, printer.EFStartOnNewLine)
@@ -736,7 +733,7 @@ func (tx *JSXTransformer) visitJsxOpeningLikeElementCreateElement(element *ast.N
return result
}
-func (tx *JSXTransformer) visitJsxOpeningFragmentCreateElement(fragment *ast.JsxOpeningFragment, children *ast.NodeList, location *ast.Node) *ast.Node {
+func (tx *JSXTransformer) visitJsxOpeningFragmentCreateElement(fragment *ast.JsxOpeningFragment, children *ast.NodeList, location core.TextRange) *ast.Node {
tagName := tx.createJsxFragmentFactoryExpression(fragment.AsNode())
callee := tx.createJsxFactoryExpression(fragment.AsNode())
@@ -769,7 +766,7 @@ func (tx *JSXTransformer) visitJsxOpeningFragmentCreateElement(fragment *ast.Jsx
tx.Factory().NewNodeList(args),
ast.NodeFlagsNone,
)
- result.Loc = location.Loc
+ result.Loc = location
if tx.inJsxChild {
tx.EmitContext().AddEmitFlags(result, printer.EFStartOnNewLine)