Mark transpiled JSX elements as pure (#11126)

* Mark transpiled JSX elements as pure

* Avoid duble annotation

* Add "pure" option to the React preset

* Fix generator indentation

* Update tests

* Add tests for the "pure" option

* Update windows fixtures
This commit is contained in:
Nicolò Ribaudo
2020-03-19 15:43:54 +01:00
committed by GitHub
parent fa7ec81771
commit f3912ac08f
246 changed files with 613 additions and 314 deletions

View File

@@ -3,23 +3,23 @@ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
import { Fragment as _Fragment } from "react/jsx-dev-runtime";
var _jsxFileName = "<CWD>/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/auto-import-dev/input.js";
var x = _jsxDEV(_Fragment, {
children: _jsxDEV("div", {
children: [_jsxDEV("div", {}, "1", false, {
var x = /*#__PURE__*/_jsxDEV(_Fragment, {
children: /*#__PURE__*/_jsxDEV("div", {
children: [/*#__PURE__*/_jsxDEV("div", {}, "1", false, {
fileName: _jsxFileName,
lineNumber: 4,
columnNumber: 7
}, this), _jsxDEV("div", {
}, this), /*#__PURE__*/_jsxDEV("div", {
meow: "wolf"
}, "2", false, {
fileName: _jsxFileName,
lineNumber: 5,
columnNumber: 7
}, this), _jsxDEV("div", {}, "3", false, {
}, this), /*#__PURE__*/_jsxDEV("div", {}, "3", false, {
fileName: _jsxFileName,
lineNumber: 6,
columnNumber: 7
}, this), _createElement("div", { ...props,
}, this), /*#__PURE__*/_createElement("div", { ...props,
key: "4",
__source: {
fileName: _jsxFileName,

View File

@@ -1,12 +1,12 @@
var _jsxFileName = "<CWD>/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/classic-runtime/input.js";
var x = React.createElement(React.Fragment, null, React.createElement("div", {
var x = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
__source: {
fileName: _jsxFileName,
lineNumber: 3,
columnNumber: 5
},
__self: this
}, React.createElement("div", {
}, /*#__PURE__*/React.createElement("div", {
key: "1",
__source: {
fileName: _jsxFileName,
@@ -14,7 +14,7 @@ var x = React.createElement(React.Fragment, null, React.createElement("div", {
columnNumber: 9
},
__self: this
}), React.createElement("div", {
}), /*#__PURE__*/React.createElement("div", {
key: "2",
meow: "wolf",
__source: {
@@ -23,7 +23,7 @@ var x = React.createElement(React.Fragment, null, React.createElement("div", {
columnNumber: 9
},
__self: this
}), React.createElement("div", {
}), /*#__PURE__*/React.createElement("div", {
key: "3",
__source: {
fileName: _jsxFileName,
@@ -31,7 +31,7 @@ var x = React.createElement(React.Fragment, null, React.createElement("div", {
columnNumber: 9
},
__self: this
}), React.createElement("div", { ...props,
}), /*#__PURE__*/React.createElement("div", { ...props,
key: "4",
__source: {
fileName: _jsxFileName,

View File

@@ -2,8 +2,8 @@ var _reactJsxDevRuntime = require("react/jsx-dev-runtime");
var _jsxFileName = "<CWD>/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/fragments/input.js";
var x = _reactJsxDevRuntime.jsxDEV(_reactJsxDevRuntime.Fragment, {
children: _reactJsxDevRuntime.jsxDEV("div", {}, void 0, false, {
var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV(_reactJsxDevRuntime.Fragment, {
children: /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("div", {}, void 0, false, {
fileName: _jsxFileName,
lineNumber: 1,
columnNumber: 11

View File

@@ -2,7 +2,7 @@ var _reactJsxDevRuntime = require("react/jsx-dev-runtime");
var _jsxFileName = "<CWD>/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/handle-fragments-with-key/input.js";
var x = _reactJsxDevRuntime.jsxDEV(React.Fragment, {}, "foo", false, {
var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV(React.Fragment, {}, "foo", false, {
fileName: _jsxFileName,
lineNumber: 1,
columnNumber: 9

View File

@@ -2,12 +2,12 @@ var _reactJsxDevRuntime = require("react/jsx-dev-runtime");
var _jsxFileName = "<CWD>/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/handle-nonstatic-children/input.js";
var x = _reactJsxDevRuntime.jsxDEV("div", {
children: [_reactJsxDevRuntime.jsxDEV("span", {}, "0", false, {
var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("div", {
children: [/*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, "0", false, {
fileName: _jsxFileName,
lineNumber: 1,
columnNumber: 16
}, this), _reactJsxDevRuntime.jsxDEV("span", {}, "1", false, {
}, this), /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, "1", false, {
fileName: _jsxFileName,
lineNumber: 1,
columnNumber: 36

View File

@@ -2,16 +2,16 @@ var _reactJsxDevRuntime = require("react/jsx-dev-runtime");
var _jsxFileName = "<CWD>/packages/babel-plugin-transform-react-jsx-development/test/fixtures/linux/handle-static-children/input.js";
var x = _reactJsxDevRuntime.jsxDEV("div", {
children: [_reactJsxDevRuntime.jsxDEV("span", {}, void 0, false, {
var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("div", {
children: [/*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, void 0, false, {
fileName: _jsxFileName,
lineNumber: 3,
columnNumber: 5
}, this), [_reactJsxDevRuntime.jsxDEV("span", {}, "0", false, {
}, this), [/*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, "0", false, {
fileName: _jsxFileName,
lineNumber: 4,
columnNumber: 7
}, this), _reactJsxDevRuntime.jsxDEV("span", {}, "1", false, {
}, this), /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, "1", false, {
fileName: _jsxFileName,
lineNumber: 4,
columnNumber: 27

View File

@@ -3,23 +3,23 @@ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
import { Fragment as _Fragment } from "react/jsx-dev-runtime";
var _jsxFileName = "C:\\Users\\travis\\build\\babel\\babel\\packages\\babel-plugin-transform-react-jsx-development\\test\\fixtures\\windows\\auto-import-dev-windows\\input.js";
var x = _jsxDEV(_Fragment, {
children: _jsxDEV("div", {
children: [_jsxDEV("div", {}, "1", false, {
var x = /*#__PURE__*/_jsxDEV(_Fragment, {
children: /*#__PURE__*/_jsxDEV("div", {
children: [/*#__PURE__*/_jsxDEV("div", {}, "1", false, {
fileName: _jsxFileName,
lineNumber: 4,
columnNumber: 7
}, this), _jsxDEV("div", {
}, this), /*#__PURE__*/_jsxDEV("div", {
meow: "wolf"
}, "2", false, {
fileName: _jsxFileName,
lineNumber: 5,
columnNumber: 7
}, this), _jsxDEV("div", {}, "3", false, {
}, this), /*#__PURE__*/_jsxDEV("div", {}, "3", false, {
fileName: _jsxFileName,
lineNumber: 6,
columnNumber: 7
}, this), _createElement("div", { ...props,
}, this), /*#__PURE__*/_createElement("div", { ...props,
key: "4",
__source: {
fileName: _jsxFileName,

View File

@@ -1,12 +1,12 @@
var _jsxFileName = "C:\\Users\\travis\\build\\babel\\babel\\packages\\babel-plugin-transform-react-jsx-development\\test\\fixtures\\windows\\classic-runtime-windows\\input.js";
var x = React.createElement(React.Fragment, null, React.createElement("div", {
var x = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
__source: {
fileName: _jsxFileName,
lineNumber: 3,
columnNumber: 5
},
__self: this
}, React.createElement("div", {
}, /*#__PURE__*/React.createElement("div", {
key: "1",
__source: {
fileName: _jsxFileName,
@@ -14,7 +14,7 @@ var x = React.createElement(React.Fragment, null, React.createElement("div", {
columnNumber: 7
},
__self: this
}), React.createElement("div", {
}), /*#__PURE__*/React.createElement("div", {
key: "2",
meow: "wolf",
__source: {
@@ -23,7 +23,7 @@ var x = React.createElement(React.Fragment, null, React.createElement("div", {
columnNumber: 7
},
__self: this
}), React.createElement("div", {
}), /*#__PURE__*/React.createElement("div", {
key: "3",
__source: {
fileName: _jsxFileName,
@@ -31,7 +31,7 @@ var x = React.createElement(React.Fragment, null, React.createElement("div", {
columnNumber: 7
},
__self: this
}), React.createElement("div", { ...props,
}), /*#__PURE__*/React.createElement("div", { ...props,
key: "4",
__source: {
fileName: _jsxFileName,

View File

@@ -2,8 +2,8 @@ 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\\fragments-windows\\input.js";
var x = _reactJsxDevRuntime.jsxDEV(_reactJsxDevRuntime.Fragment, {
children: _reactJsxDevRuntime.jsxDEV("div", {}, void 0, false, {
var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV(_reactJsxDevRuntime.Fragment, {
children: /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("div", {}, void 0, false, {
fileName: _jsxFileName,
lineNumber: 1,
columnNumber: 11

View File

@@ -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 = _reactJsxDevRuntime.jsxDEV(React.Fragment, {}, "foo", false, {
var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV(React.Fragment, {}, "foo", false, {
fileName: _jsxFileName,
lineNumber: 1,
columnNumber: 9

View File

@@ -2,12 +2,12 @@ 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-nonstatic-children-windows\\input.js";
var x = _reactJsxDevRuntime.jsxDEV("div", {
children: [_reactJsxDevRuntime.jsxDEV("span", {}, '0', false, {
var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("div", {
children: [/*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, '0', false, {
fileName: _jsxFileName,
lineNumber: 3,
columnNumber: 11
}, this), _reactJsxDevRuntime.jsxDEV("span", {}, '1', false, {
}, this), /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, '1', false, {
fileName: _jsxFileName,
lineNumber: 3,
columnNumber: 31

View File

@@ -2,16 +2,16 @@ 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-static-children-windows\\input.js";
var x = _reactJsxDevRuntime.jsxDEV("div", {
children: [_reactJsxDevRuntime.jsxDEV("span", {}, void 0, false, {
var x = /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("div", {
children: [/*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, void 0, false, {
fileName: _jsxFileName,
lineNumber: 3,
columnNumber: 9
}, this), [_reactJsxDevRuntime.jsxDEV("span", {}, '0', false, {
}, this), [/*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, '0', false, {
fileName: _jsxFileName,
lineNumber: 4,
columnNumber: 11
}, this), _reactJsxDevRuntime.jsxDEV("span", {}, '1', false, {
}, this), /*#__PURE__*/_reactJsxDevRuntime.jsxDEV("span", {}, '1', false, {
fileName: _jsxFileName,
lineNumber: 4,
columnNumber: 31