aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2018-01-18 02:57:33 +0800
committerGitHub <noreply@github.com>2018-01-18 02:57:33 +0800
commitcc07f3b806f2a6ea971f290bd44425493f5c2e3d (patch)
treeb6d1488fd40918eac41cd6cb33d7e2277bae2a23
parent07e4b64f3a8439a9491cc7a277872e0a5d79a29b (diff)
downloadtracifyjs-cc07f3b806f2a6ea971f290bd44425493f5c2e3d.tar.gz
tracifyjs-cc07f3b806f2a6ea971f290bd44425493f5c2e3d.zip
faster output of comments (#2806)
-rw-r--r--lib/output.js9
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) {