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 =
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));
}