From 3956b3ee0e92f24890155a6734c5d2658afe2843 Mon Sep 17 00:00:00 2001 From: Fabian Streitel Date: Fri, 29 Dec 2017 15:11:35 +0100 Subject: [PATCH] Fix turning division operator into line comment in compact mode (#7131) --- packages/babel-generator/src/printer.js | 5 ++++- .../test/fixtures/compact/comment-after-division/actual.js | 2 ++ .../test/fixtures/compact/comment-after-division/expected.js | 2 ++ .../test/fixtures/compact/regex-after-division/actual.js | 1 + .../test/fixtures/compact/regex-after-division/expected.js | 1 + 5 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 packages/babel-generator/test/fixtures/compact/comment-after-division/actual.js create mode 100644 packages/babel-generator/test/fixtures/compact/comment-after-division/expected.js create mode 100644 packages/babel-generator/test/fixtures/compact/regex-after-division/actual.js create mode 100644 packages/babel-generator/test/fixtures/compact/regex-after-division/expected.js diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js index a1b7f82eca..35088f3a23 100644 --- a/packages/babel-generator/src/printer.js +++ b/packages/babel-generator/src/printer.js @@ -116,7 +116,10 @@ export default class Printer { */ word(str: string): void { - if (this._endsWithWord) this._space(); + // prevent concatenating words and creating // comment out of division and regex + if (this._endsWithWord || (this.endsWith("/") && str.indexOf("/") === 0)) { + this._space(); + } this._maybeAddAuxComment(); this._append(str); diff --git a/packages/babel-generator/test/fixtures/compact/comment-after-division/actual.js b/packages/babel-generator/test/fixtures/compact/comment-after-division/actual.js new file mode 100644 index 0000000000..69fe1eeeca --- /dev/null +++ b/packages/babel-generator/test/fixtures/compact/comment-after-division/actual.js @@ -0,0 +1,2 @@ +var a = 1 / /*c*/ v / //c2 + v; diff --git a/packages/babel-generator/test/fixtures/compact/comment-after-division/expected.js b/packages/babel-generator/test/fixtures/compact/comment-after-division/expected.js new file mode 100644 index 0000000000..1a34b19a9d --- /dev/null +++ b/packages/babel-generator/test/fixtures/compact/comment-after-division/expected.js @@ -0,0 +1,2 @@ +var a=1/ /*c*/v/ //c2 +v; diff --git a/packages/babel-generator/test/fixtures/compact/regex-after-division/actual.js b/packages/babel-generator/test/fixtures/compact/regex-after-division/actual.js new file mode 100644 index 0000000000..5f88762dce --- /dev/null +++ b/packages/babel-generator/test/fixtures/compact/regex-after-division/actual.js @@ -0,0 +1 @@ +var a = 4 / /2/.source; diff --git a/packages/babel-generator/test/fixtures/compact/regex-after-division/expected.js b/packages/babel-generator/test/fixtures/compact/regex-after-division/expected.js new file mode 100644 index 0000000000..c36b818980 --- /dev/null +++ b/packages/babel-generator/test/fixtures/compact/regex-after-division/expected.js @@ -0,0 +1 @@ +var a=4/ /2/.source;