diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2018-01-18 02:57:33 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-18 02:57:33 +0800 |
commit | cc07f3b806f2a6ea971f290bd44425493f5c2e3d (patch) | |
tree | b6d1488fd40918eac41cd6cb33d7e2277bae2a23 | |
parent | 07e4b64f3a8439a9491cc7a277872e0a5d79a29b (diff) | |
download | tracifyjs-cc07f3b806f2a6ea971f290bd44425493f5c2e3d.tar.gz tracifyjs-cc07f3b806f2a6ea971f290bd44425493f5c2e3d.zip |
faster output of comments (#2806)
-rw-r--r-- | lib/output.js | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/output.js b/lib/output.js index 1b1ba2a4..805f0339 100644 --- a/lib/output.js +++ b/lib/output.js @@ -451,6 +451,11 @@ function OutputStream(options) { return OUTPUT; }; + function has_nlb() { + var index = OUTPUT.lastIndexOf("\n"); + return /^ *$/.test(OUTPUT.slice(index + 1)); + } + function prepend_comments(node) { var self = this; var start = node.start; @@ -499,7 +504,7 @@ function OutputStream(options) { comments = comments.filter(comment_filter, node); if (comments.length == 0) return; - var last_nlb = /(^|\n) *$/.test(OUTPUT); + var last_nlb = has_nlb(); comments.forEach(function(c, i) { if (!last_nlb) { if (c.nlb) { @@ -546,7 +551,7 @@ function OutputStream(options) { print("\n"); indent(); need_newline_indented = false; - } else if (c.nlb && (i > 0 || !/(^|\n) *$/.test(OUTPUT))) { + } else if (c.nlb && (i > 0 || !has_nlb())) { print("\n"); indent(); } else if (i > 0 || !tail) { |