diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/append-to-end-when-declared-in-scope/expected.js b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/append-to-end-when-declared-in-scope/expected.js index fe04d4853f..4980678780 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/append-to-end-when-declared-in-scope/expected.js +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/append-to-end-when-declared-in-scope/expected.js @@ -4,8 +4,9 @@ export default class App extends React.Component { } } -const _ref2 =
child
, - AppItem = () => { +var _ref2 =
child
; + +const AppItem = () => { return _ref2; }, _ref =
diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/compound-assignment/actual.js b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/compound-assignment/actual.js new file mode 100644 index 0000000000..cd3eb616e1 --- /dev/null +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/compound-assignment/actual.js @@ -0,0 +1,5 @@ +import React from 'react'; +import Loader from 'loader'; + +const errorComesHere = () => , + thisWorksFine = () => ; diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/compound-assignment/expected.js b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/compound-assignment/expected.js new file mode 100644 index 0000000000..920de529b1 --- /dev/null +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/compound-assignment/expected.js @@ -0,0 +1,9 @@ +import React from 'react'; +import Loader from 'loader'; + +var _ref = ; + +var _ref2 = ; + +const errorComesHere = () => _ref, + thisWorksFine = () => _ref2; \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/dont-hoist-before-class/expected.js b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/dont-hoist-before-class/expected.js index 6bcd6e0ffb..a1cbfa7a94 100644 --- a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/dont-hoist-before-class/expected.js +++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/dont-hoist-before-class/expected.js @@ -4,10 +4,11 @@ const Parent = ({}) => _ref; export default Parent; -let _ref2 =
+var _ref2 =
ChildTextContent -
, - Child = () => _ref2, +
; + +let Child = () => _ref2, _ref =
-
; +
; \ No newline at end of file diff --git a/packages/babel-traverse/src/path/lib/hoister.js b/packages/babel-traverse/src/path/lib/hoister.js index 9fc433c1fb..3f2bf2840c 100644 --- a/packages/babel-traverse/src/path/lib/hoister.js +++ b/packages/babel-traverse/src/path/lib/hoister.js @@ -172,12 +172,10 @@ export default class PathHoister { // Beginning of the scope !path.parentPath || // Has siblings and is a statement - (Array.isArray(path.container) && path.isStatement()) || - // Is part of multiple var declarations - (path.isVariableDeclarator() && - path.parentPath.node !== null && - path.parentPath.node.declarations.length > 1)) - {return path;} + (Array.isArray(path.container) && path.isStatement()) + ) { + return path; + } } while ((path = path.parentPath)); }