From ffbf5b0b47ae820fd9f33eb300a889537de4ddb8 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 2 Jun 2015 23:08:46 +0100 Subject: [PATCH] convert property key to computed before checking if it's a displayName property in the react transformer builder - closes #1671 --- .../transformation/helpers/build-react-transformer.js | 3 ++- .../react/display-name-if-missing/actual.js | 9 ++++++++- .../react/display-name-if-missing/expected.js | 7 +++++++ 3 files changed, 17 insertions(+), 2 deletions(-) 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; + } +});