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 +};
