diff --git a/packages/babel-plugin-transform-merge-sibling-variables/__tests__/transform-merge-sibling-variables-test.js b/packages/babel-plugin-transform-merge-sibling-variables/__tests__/transform-merge-sibling-variables-test.js index 5400250c9..cc344e385 100644 --- a/packages/babel-plugin-transform-merge-sibling-variables/__tests__/transform-merge-sibling-variables-test.js +++ b/packages/babel-plugin-transform-merge-sibling-variables/__tests__/transform-merge-sibling-variables-test.js @@ -135,6 +135,16 @@ describe("transform-merge-sibling-variables-plugin", () => { expect(transform(source)).toBe(source); }); + it("dont lift when the declarations are not initialized", () => { + const source = unpad(` + for (var i = 0;;) { + var i; + } + `); + + expect(transform(source)).toBe(source); + }); + it("dont lift when there are multiple declarations", () => { const source = unpad(` for (var i = 0; i < 0; i++) { diff --git a/packages/babel-plugin-transform-merge-sibling-variables/src/index.js b/packages/babel-plugin-transform-merge-sibling-variables/src/index.js index 7c1e39ef3..84cc00ec0 100644 --- a/packages/babel-plugin-transform-merge-sibling-variables/src/index.js +++ b/packages/babel-plugin-transform-merge-sibling-variables/src/index.js @@ -15,7 +15,7 @@ module.exports = function({ types: t }) { let firstNode = body[0].node.declarations[0]; - if (!t.isIdentifier(firstNode.id)) { + if (!t.isIdentifier(firstNode.id) || !firstNode.init) { return; }