faster output of comments (#2806)
authorAlex Lam S.L <alexlamsl@gmail.com>
Wed, 17 Jan 2018 18:57:33 +0000 (02:57 +0800)
committerGitHub <noreply@github.com>
Wed, 17 Jan 2018 18:57:33 +0000 (02:57 +0800)
lib/output.js

index 1b1ba2a..805f033 100644 (file)
@@ -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) {