This is an automated email from the ASF dual-hosted git repository.

davisp pushed a commit to reference refs/pull/247/head
in repository https://gitbox.apache.org/repos/asf/couchdb-escodegen.git

commit 1f2e8265d1beb851b20fd804b570e0fe6e767517
Author: Dennis Li <[email protected]>
AuthorDate: Sun Aug 9 01:16:01 2015 -0700

    Fix inline comments edge case with preseveBlankLines
    
    Fix extra trailing comma
    
    Lint errors
---
 escodegen.js                                                 | 12 +++++++++---
 .../trailing-comment-in-object.expected.js                   |  3 +++
 test/preserve-blank-lines/trailing-comment-in-object.js      |  3 +++
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/escodegen.js b/escodegen.js
index f706c05..d7adfe1 100644
--- a/escodegen.js
+++ b/escodegen.js
@@ -739,6 +739,10 @@
                 prefix = sourceCode.substring(extRange[0], range[0]);
                 count = (prefix.match(/\n/g) || []).length;
 
+                if (typeof result === 'string') {
+                    result = [result];
+                }
+
                 if (count > 0) {
                     result.push(stringRepeat('\n', count));
                     result.push(addIndent(generateComment(comment)));
@@ -2132,18 +2136,20 @@
         },
 
         ObjectExpression: function (expr, precedence, flags) {
-            var multiline, result, fragment, that = this;
+            var multiline, result, fragment, trailingCommentExists, that = 
this;
 
             if (!expr.properties.length) {
                 return '{}';
             }
+
+            trailingCommentExists = extra.comment && expr.properties.length 
=== 1 && expr.properties[0].value.trailingComments;
             multiline = expr.properties.length > 1;
 
             withIndent(function () {
                 fragment = that.generateExpression(expr.properties[0], 
Precedence.Sequence, E_TTT);
             });
 
-            if (!multiline) {
+            if (!(multiline || trailingCommentExists)) {
                 // issues 4
                 // Do not transform from
                 //   dejavu.Class.declare({
@@ -2166,6 +2172,7 @@
                     for (i = 1, iz = expr.properties.length; i < iz; ++i) {
                         result.push(indent);
                         
result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, 
E_TTT));
+
                         if (i + 1 < iz) {
                             result.push(',' + newline);
                         }
@@ -2410,7 +2417,6 @@
 
         result = this[type](expr, precedence, flags);
 
-
         if (extra.comment) {
             result = addComments(expr, result);
         }
diff --git a/test/preserve-blank-lines/trailing-comment-in-object.expected.js 
b/test/preserve-blank-lines/trailing-comment-in-object.expected.js
new file mode 100644
index 0000000..c72507e
--- /dev/null
+++ b/test/preserve-blank-lines/trailing-comment-in-object.expected.js
@@ -0,0 +1,3 @@
+var x = {
+    a: 2 // this is a comment
+};
\ No newline at end of file
diff --git a/test/preserve-blank-lines/trailing-comment-in-object.js 
b/test/preserve-blank-lines/trailing-comment-in-object.js
new file mode 100644
index 0000000..7b6e3f6
--- /dev/null
+++ b/test/preserve-blank-lines/trailing-comment-in-object.js
@@ -0,0 +1,3 @@
+var x = {
+    a: 2 // this is a comment
+};

Reply via email to