diff --git a/packages/babel-plugin-transform-react-jsx-self/src/index.js b/packages/babel-plugin-transform-react-jsx-self/src/index.js
index 208de870d821..6d5403ef9cd0 100644
--- a/packages/babel-plugin-transform-react-jsx-self/src/index.js
+++ b/packages/babel-plugin-transform-react-jsx-self/src/index.js
@@ -30,6 +30,10 @@ export default declare(api => {
return {
name: "transform-react-jsx-self",
- visitor,
+ visitor: {
+ Program(path) {
+ path.traverse(visitor);
+ },
+ },
};
});
diff --git a/packages/babel-plugin-transform-react-jsx-self/test/fixtures/react-source/arrow-function/input.js b/packages/babel-plugin-transform-react-jsx-self/test/fixtures/react-source/arrow-function/input.js
new file mode 100644
index 000000000000..10fa67b30f61
--- /dev/null
+++ b/packages/babel-plugin-transform-react-jsx-self/test/fixtures/react-source/arrow-function/input.js
@@ -0,0 +1,7 @@
+
;
+() => ;
+
+function fn() {
+ ;
+ () => ;
+}
diff --git a/packages/babel-plugin-transform-react-jsx-self/test/fixtures/react-source/arrow-function/options.json b/packages/babel-plugin-transform-react-jsx-self/test/fixtures/react-source/arrow-function/options.json
new file mode 100644
index 000000000000..772751db0b30
--- /dev/null
+++ b/packages/babel-plugin-transform-react-jsx-self/test/fixtures/react-source/arrow-function/options.json
@@ -0,0 +1,3 @@
+{
+ "plugins": ["syntax-jsx", "transform-react-jsx-self", "transform-arrow-functions"]
+}
diff --git a/packages/babel-plugin-transform-react-jsx-self/test/fixtures/react-source/arrow-function/output.js b/packages/babel-plugin-transform-react-jsx-self/test/fixtures/react-source/arrow-function/output.js
new file mode 100644
index 000000000000..176d82ae5625
--- /dev/null
+++ b/packages/babel-plugin-transform-react-jsx-self/test/fixtures/react-source/arrow-function/output.js
@@ -0,0 +1,17 @@
+var _this = this;
+
+;
+
+(function () {
+ return ;
+});
+
+function fn() {
+ var _this2 = this;
+
+ ;
+
+ (function () {
+ return ;
+ });
+}
diff --git a/packages/babel-preset-react/test/fixtures/preset-options/development-windows/exec.js b/packages/babel-preset-react/test/fixtures/preset-options/development-windows/exec.js
deleted file mode 100644
index 1bb3c16bbf00..000000000000
--- a/packages/babel-preset-react/test/fixtures/preset-options/development-windows/exec.js
+++ /dev/null
@@ -1,22 +0,0 @@
-const actual = transform(
- '',
- Object.assign({}, opts, { filename: 'C:\\fake\\path\\mock.js' })
-).code;
-
-const expected = multiline([
- 'var _jsxFileName = "C:\\\\fake\\\\path\\\\mock.js";',
- '',
- '/*#__PURE__*/',
- 'React.createElement(Foo, {',
- ' bar: "baz",',
- ' __source: {',
- ' fileName: _jsxFileName,',
- ' lineNumber: 1,',
- ' columnNumber: 1',
- ' },',
- ' __self: this',
- '});',
-]);
-
-
-expect(actual).toBe(expected);
diff --git a/packages/babel-preset-react/test/fixtures/preset-options/development-windows/input.js b/packages/babel-preset-react/test/fixtures/preset-options/development-windows/input.js
new file mode 100644
index 000000000000..86481bc26221
--- /dev/null
+++ b/packages/babel-preset-react/test/fixtures/preset-options/development-windows/input.js
@@ -0,0 +1 @@
+;
diff --git a/packages/babel-preset-react/test/fixtures/preset-options/development-windows/output.js b/packages/babel-preset-react/test/fixtures/preset-options/development-windows/output.js
new file mode 100644
index 000000000000..ad9f242c6506
--- /dev/null
+++ b/packages/babel-preset-react/test/fixtures/preset-options/development-windows/output.js
@@ -0,0 +1,12 @@
+var _jsxFileName = "C:\\Users\\travis\\build\\babel\\babel\\packages\\babel-preset-react\\test\\fixtures\\preset-options\\development-windows\\input.js";
+
+/*#__PURE__*/
+React.createElement(Foo, {
+ bar: "baz",
+ __self: this,
+ __source: {
+ fileName: _jsxFileName,
+ lineNumber: 1,
+ columnNumber: 1
+ }
+});
diff --git a/packages/babel-preset-react/test/fixtures/preset-options/development/exec.js b/packages/babel-preset-react/test/fixtures/preset-options/development/exec.js
deleted file mode 100644
index 846c554ca8f6..000000000000
--- a/packages/babel-preset-react/test/fixtures/preset-options/development/exec.js
+++ /dev/null
@@ -1,22 +0,0 @@
-const actual = transform(
- '',
- Object.assign({}, opts, { filename: '/fake/path/mock.js' })
-).code;
-
-const expected = multiline([
- 'var _jsxFileName = "/fake/path/mock.js";',
- '',
- '/*#__PURE__*/',
- 'React.createElement(Foo, {',
- ' bar: "baz",',
- ' __source: {',
- ' fileName: _jsxFileName,',
- ' lineNumber: 1,',
- ' columnNumber: 1',
- ' },',
- ' __self: this',
- '});',
-]);
-
-
-expect(actual).toBe(expected);
diff --git a/packages/babel-preset-react/test/fixtures/preset-options/development/input.js b/packages/babel-preset-react/test/fixtures/preset-options/development/input.js
new file mode 100644
index 000000000000..86481bc26221
--- /dev/null
+++ b/packages/babel-preset-react/test/fixtures/preset-options/development/input.js
@@ -0,0 +1 @@
+;
diff --git a/packages/babel-preset-react/test/fixtures/preset-options/development/output.js b/packages/babel-preset-react/test/fixtures/preset-options/development/output.js
new file mode 100644
index 000000000000..624cd815dc05
--- /dev/null
+++ b/packages/babel-preset-react/test/fixtures/preset-options/development/output.js
@@ -0,0 +1,12 @@
+var _jsxFileName = "/packages/babel-preset-react/test/fixtures/preset-options/development/input.js";
+
+/*#__PURE__*/
+React.createElement(Foo, {
+ bar: "baz",
+ __self: this,
+ __source: {
+ fileName: _jsxFileName,
+ lineNumber: 1,
+ columnNumber: 1
+ }
+});