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

@@ -1,6 +1,5 @@
import { declare } from "@babel/helper-plugin-utils";
import { types as t } from "@babel/core";
import annotateAsPure from "@babel/helper-annotate-as-pure";
export default declare((api, options) => {
api.assertVersion(7);
@@ -107,13 +106,7 @@ export default declare((api, options) => {
// Traverse all props passed to this element for immutability.
path.traverse(immutabilityVisitor, state);
if (state.isImmutable) {
const hoisted = path.hoist();
if (hoisted) {
annotateAsPure(hoisted);
}
}
if (state.isImmutable) path.hoist();
},
},
};