diff --git a/src/babel/transformation/helpers/build-react-transformer.js b/src/babel/transformation/helpers/build-react-transformer.js index beb2158aee..441d1d0869 100644 --- a/src/babel/transformation/helpers/build-react-transformer.js +++ b/src/babel/transformation/helpers/build-react-transformer.js @@ -161,7 +161,8 @@ export default function (exports, opts) { for (var i = 0; i < props.length; i++) { var prop = props[i]; - if (t.isIdentifier(prop.key, { name: "displayName" })) { + var key = t.toComputedKey(prop); + if (t.isLiteral(key, { value: "displayName" })) { safe = false; break; } diff --git a/test/core/fixtures/transformation/react/display-name-if-missing/actual.js b/test/core/fixtures/transformation/react/display-name-if-missing/actual.js index 0ecab87f02..73cb1e0d33 100644 --- a/test/core/fixtures/transformation/react/display-name-if-missing/actual.js +++ b/test/core/fixtures/transformation/react/display-name-if-missing/actual.js @@ -1,6 +1,13 @@ var Whateva = React.createClass({ displayName: "Whatever", render: function render() { - return null; + return null; + } +}); + +var Bar = React.createClass({ + "displayName": "Ba", + render: function render() { + return null; } }); diff --git a/test/core/fixtures/transformation/react/display-name-if-missing/expected.js b/test/core/fixtures/transformation/react/display-name-if-missing/expected.js index dfbc9790ce..73cb1e0d33 100644 --- a/test/core/fixtures/transformation/react/display-name-if-missing/expected.js +++ b/test/core/fixtures/transformation/react/display-name-if-missing/expected.js @@ -4,3 +4,10 @@ var Whateva = React.createClass({ return null; } }); + +var Bar = React.createClass({ + "displayName": "Ba", + render: function render() { + return null; + } +});