diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/expression-container/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/expression-container/actual.js new file mode 100644 index 0000000000..609883e28a --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/expression-container/actual.js @@ -0,0 +1,5 @@ +var TestComponent = React.createClass({ + render: function () { + return ; + } +}); diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/expression-container/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/expression-container/expected.js new file mode 100644 index 0000000000..7764f4d7d7 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/expression-container/expected.js @@ -0,0 +1,14 @@ +var TestComponent = React.createClass({ + render: function () { + return { + $$typeof: babelHelpers.typeofReactElement, + type: "span", + key: null, + ref: null, + props: { + className: this.props.someProp + }, + _owner: null + }; + } +}); diff --git a/packages/babel-plugin-transform-react-inline-elements/src/index.js b/packages/babel-plugin-transform-react-inline-elements/src/index.js index 9d6b307f3c..320d8d718e 100644 --- a/packages/babel-plugin-transform-react-inline-elements/src/index.js +++ b/packages/babel-plugin-transform-react-inline-elements/src/index.js @@ -38,6 +38,7 @@ export default function ({ types: t }) { } function pushProp(objProps, key, value) { + if (t.isJSXExpressionContainer(value)) value = value.expression; objProps.push(t.objectProperty(key, value)); }