From 98206df864b0cf4e2410a89c080907b675a093b5 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 30 Apr 2015 17:43:31 +0100 Subject: [PATCH] fix retainLines for comments and block statements - fixes #1388 --- src/babel/generation/generators/base.js | 2 +- src/babel/generation/index.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/babel/generation/generators/base.js b/src/babel/generation/generators/base.js index 86c7c92db3..1036b80e30 100644 --- a/src/babel/generation/generators/base.js +++ b/src/babel/generation/generators/base.js @@ -13,7 +13,7 @@ export function BlockStatement(node, print) { this.push("{"); this.newline(); print.sequence(node.body, { indent: true }); - this.removeLast("\n"); + if (!this.format.retainLines) this.removeLast("\n"); this.rightBrace(); } } diff --git a/src/babel/generation/index.js b/src/babel/generation/index.js index bcd9146b0d..5645491b0a 100644 --- a/src/babel/generation/index.js +++ b/src/babel/generation/index.js @@ -376,6 +376,12 @@ class CodeGenerator { val = this.getIndent() + val; } + // force a newline for line comments when retainLines is set in case the next printed node + // doesn't catch up + if (this.format.retainLines && comment.type === "Line") { + val += "\n"; + } + // this._push(val);