From 91c463c0f7405cb75b87b9c4650dbc43aee90409 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 3 Nov 2015 03:34:46 +0000 Subject: [PATCH] fix react inline elements plugin when creating properties out of jsx expression containers - fixes #2766 --- .../expression-container/actual.js | 5 +++++ .../expression-container/expected.js | 14 ++++++++++++++ .../src/index.js | 1 + 3 files changed, 20 insertions(+) create mode 100644 packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/expression-container/actual.js create mode 100644 packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/expression-container/expected.js 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)); }