From b76482fb051a91b64b4fa952d0d0e9b0b33f6981 Mon Sep 17 00:00:00 2001 From: Vignesh Shanmugam Date: Thu, 1 Dec 2016 23:12:49 +0100 Subject: [PATCH] dont lift declarations when not intialized (fix #309) (#314) --- .../transform-merge-sibling-variables-test.js | 10 ++++++++++ .../src/index.js | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) 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; }