Skip to content

Commit

Permalink
feature: Support pure expressions in transform-react-constant-elements
Browse files Browse the repository at this point in the history
  • Loading branch information
STRML committed Nov 5, 2016
1 parent 723ca0e commit 1886a84
Show file tree
Hide file tree
Showing 9 changed files with 68 additions and 0 deletions.
Expand Up @@ -19,6 +19,12 @@ export default function () {
return;
}

// Expressions are okay, but not if there is a mutable object involved.
// TODO would be great if we could evaluate, because [] + 1 is technically fine
if (path.isPure() && !path.isObjectExpression()) {
return;
}

if (!path.isImmutable()) stop();
}
};
Expand Down
@@ -0,0 +1,5 @@
// https://github.com/facebook/react/issues/3226
// Not safe to reuse because it is mutable
function render() {
return <div style={{ width: 100 }} />;
}
@@ -0,0 +1,5 @@
// https://github.com/facebook/react/issues/3226
// Not safe to reuse because it is mutable
function render() {
return <div style={{ width: 100 }} />;
}
@@ -0,0 +1,5 @@
function render(offset) {
return function () {
return <div tabIndex={offset + 1} />;
};
}
@@ -0,0 +1,8 @@
function render(offset) {
var _ref = <div tabIndex={offset + 1} />;

return function () {
return _ref;
};
}

@@ -0,0 +1,10 @@
const OFFSET = 3;

var Foo = React.createClass({
render: function () {
return (
<div tabIndex={OFFSET + 1} />
);
}
});

@@ -0,0 +1,10 @@
const OFFSET = 3;

var _ref = <div tabIndex={OFFSET + 1} />;

var Foo = React.createClass({
render: function () {
return _ref;
}
});

@@ -0,0 +1,11 @@
var Foo = React.createClass({
render: function () {
return (
<div data-text={
"Some text, " +
"and some more too."
} />
);
}
});

@@ -0,0 +1,8 @@
var _ref = <div data-text={"Some text, " + "and some more too."} />;

var Foo = React.createClass({
render: function () {
return _ref;
}
});

0 comments on commit 1886a84

Please sign in to comment.