diff --git a/crates/oxc_transformer/src/react/jsx_source.rs b/crates/oxc_transformer/src/react/jsx_source.rs index 5ba0a8f0f..29a64d3d5 100644 --- a/crates/oxc_transformer/src/react/jsx_source.rs +++ b/crates/oxc_transformer/src/react/jsx_source.rs @@ -59,6 +59,12 @@ impl<'a> ReactJsxSource<'a> { } impl<'a> Traverse<'a> for ReactJsxSource<'a> { + fn exit_program(&mut self, program: &mut Program<'a>, _ctx: &mut TraverseCtx<'a>) { + if let Some(stmt) = self.get_var_file_name_statement() { + program.body.insert(0, stmt); + } + } + fn enter_jsx_opening_element( &mut self, elem: &mut JSXOpeningElement<'a>, diff --git a/crates/oxc_transformer/src/react/mod.rs b/crates/oxc_transformer/src/react/mod.rs index c9523b6ad..9984c5525 100644 --- a/crates/oxc_transformer/src/react/mod.rs +++ b/crates/oxc_transformer/src/react/mod.rs @@ -84,6 +84,8 @@ impl<'a> Traverse<'a> for React<'a> { } if self.jsx_plugin { self.jsx.exit_program(program, ctx); + } else if self.jsx_source_plugin { + self.jsx.jsx_source.exit_program(program, ctx); } } diff --git a/tasks/transform_conformance/oxc.snap.md b/tasks/transform_conformance/oxc.snap.md index 373fd2467..8b6c759e1 100644 --- a/tasks/transform_conformance/oxc.snap.md +++ b/tasks/transform_conformance/oxc.snap.md @@ -1,12 +1,13 @@ commit: 3bcfee23 -Passed: 46/56 +Passed: 47/57 # All Passed: * babel-plugin-transform-nullish-coalescing-operator * babel-plugin-transform-optional-catch-binding * babel-plugin-transform-arrow-functions * babel-preset-typescript +* babel-plugin-transform-react-jsx-source * regexp diff --git a/tasks/transform_conformance/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/input.jsx b/tasks/transform_conformance/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/input.jsx new file mode 100644 index 000000000..51fee284e --- /dev/null +++ b/tasks/transform_conformance/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/input.jsx @@ -0,0 +1 @@ +var x = ; diff --git a/tasks/transform_conformance/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/output.jsx b/tasks/transform_conformance/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/output.jsx new file mode 100644 index 000000000..9b04721c9 --- /dev/null +++ b/tasks/transform_conformance/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/output.jsx @@ -0,0 +1,6 @@ +var _jsxFileName = "/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/basic-sample/input.jsx"; +var x = ; diff --git a/tasks/transform_conformance/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/options.json b/tasks/transform_conformance/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/options.json new file mode 100644 index 000000000..7c7160027 --- /dev/null +++ b/tasks/transform_conformance/tests/babel-plugin-transform-react-jsx-source/test/fixtures/react-source/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["syntax-jsx", "transform-react-jsx-source"] +}