From 4dcec860bd885e57019683e87063da9bb7ec3503 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Sun, 17 Jul 2016 10:14:29 -0700 Subject: [PATCH] Drop trailing whitespace after all newlines. --- packages/babel-generator/src/buffer.js | 7 +++---- packages/babel-generator/src/printer.js | 1 - .../edgecase/return-with-retainlines-option/expected.js | 2 +- .../test/fixtures/parentheses/terminator-break/expected.js | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/babel-generator/src/buffer.js b/packages/babel-generator/src/buffer.js index 14bd4d2e07..ed294897c0 100644 --- a/packages/babel-generator/src/buffer.js +++ b/packages/babel-generator/src/buffer.js @@ -58,6 +58,9 @@ export default class Buffer { */ queue(str: string): void { + // Drop trailing spaces when a newline is inserted. + if (str === "\n") while (this._queue.length > 0 && SPACES_RE.test(this._queue[0][0])) this._queue.shift(); + const { line, column, filename } = this._sourcePosition; this._queue.unshift([str, line, column, filename]); } @@ -86,10 +89,6 @@ export default class Buffer { } } - removeTrailingSpaces(): void { - while (this._queue.length > 0 && SPACES_RE.test(this._queue[0][0])) this._queue.shift(); - } - removeTrailingNewline(): void { if (this._queue.length > 0 && this._queue[0][0] === "\n") this._queue.shift(); } diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js index 40a2880603..8f1601adca 100644 --- a/packages/babel-generator/src/printer.js +++ b/packages/babel-generator/src/printer.js @@ -167,7 +167,6 @@ export default class Printer { if (this.endsWith("{\n") || this.endsWith(":\n")) i--; if (i <= 0) return; - this._buf.removeTrailingSpaces(); for (let j = 0; j < i; j++) { this._newline(); } diff --git a/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/expected.js b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/expected.js index fd1cba7b14..809ec9aa05 100644 --- a/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/expected.js +++ b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/expected.js @@ -6,6 +6,6 @@ function foo(l) { function foo() { return ( - 1 && 2 || + 1 && 2 || 3); } diff --git a/packages/babel-generator/test/fixtures/parentheses/terminator-break/expected.js b/packages/babel-generator/test/fixtures/parentheses/terminator-break/expected.js index e6604a1cf0..750b0e8c70 100644 --- a/packages/babel-generator/test/fixtures/parentheses/terminator-break/expected.js +++ b/packages/babel-generator/test/fixtures/parentheses/terminator-break/expected.js @@ -5,7 +5,7 @@ function foo() { } function foo() { - return( + return ( // foobar "bar" );