diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/destructure/actual.js b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/destructure/actual.js
new file mode 100644
index 0000000000..fbd1ed5555
--- /dev/null
+++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/destructure/actual.js
@@ -0,0 +1,10 @@
+class AnchorLink extends Component {
+ render() {
+ const { isExternal, children } = this.props;
+ if (isExternal) {
+ return ({children});
+ }
+
+ return ({children});
+ }
+}
diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/destructure/expected.js b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/destructure/expected.js
new file mode 100644
index 0000000000..4f730edf03
--- /dev/null
+++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/destructure/expected.js
@@ -0,0 +1,13 @@
+class AnchorLink extends Component {
+ render() {
+ var _props = this.props;
+ const isExternal = _props.isExternal,
+ children = _props.children;
+
+ if (isExternal) {
+ return {children};
+ }
+
+ return {children};
+ }
+}
\ No newline at end of file
diff --git a/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/destructure/options.json b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/destructure/options.json
new file mode 100644
index 0000000000..dc9272a969
--- /dev/null
+++ b/packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/destructure/options.json
@@ -0,0 +1,7 @@
+{
+ "plugins": [
+ "syntax-jsx",
+ "transform-es2015-destructuring",
+ "transform-react-constant-elements"
+ ]
+}
diff --git a/packages/babel-traverse/src/path/lib/hoister.js b/packages/babel-traverse/src/path/lib/hoister.js
index 8a36031f1e..243e9c18ac 100644
--- a/packages/babel-traverse/src/path/lib/hoister.js
+++ b/packages/babel-traverse/src/path/lib/hoister.js
@@ -121,7 +121,12 @@ export default class PathHoister {
do {
if (!path.parentPath ||
(Array.isArray(path.container) && path.isStatement()) ||
- (path.isVariableDeclarator() && path.parentPath.node.declarations.length > 1))
+ (
+ path.isVariableDeclarator() &&
+ path.parentPath.node !== null &&
+ path.parentPath.node.declarations.length > 1
+ )
+ )
return path;
} while ((path = path.parentPath));
}