From 043386067a099ad5ef38b9211b8bc190304cc3c1 Mon Sep 17 00:00:00 2001
From: Marijn Haverbeke
Date: Mon, 5 Nov 2012 22:39:22 +0100
Subject: [PATCH] Stop accumulating line comments when trackComments is off
---
acorn.js | 6 ++++--
index.html | 6 ++++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/acorn.js b/acorn.js
index 6323b1fc6a..81abc2da38 100644
--- a/acorn.js
+++ b/acorn.js
@@ -444,7 +444,8 @@
++tokPos;
ch = input.charCodeAt(tokPos);
}
- (tokComments || (tokComments = [])).push(input.slice(start, tokPos));
+ if (options.trackComments)
+ (tokComments || (tokComments = [])).push(input.slice(start, tokPos));
}
// Called at the start of the parse and after every token. Skips
@@ -878,7 +879,8 @@
if (tokCommentsAfter) {
node.commentsAfter = tokCommentsAfter;
tokCommentsAfter = null;
- } else if (lastFinishedNode && lastFinishedNode.end === lastEnd) {
+ } else if (lastFinishedNode && lastFinishedNode.end === lastEnd &&
+ lastFinishedNode.commentsAfter) {
node.commentsAfter = lastFinishedNode.commentsAfter;
lastFinishedNode.commentsAfter = null;
}
diff --git a/index.html b/index.html
index 216adce76a..033605112c 100644
--- a/index.html
+++ b/index.html
@@ -263,7 +263,8 @@ the right position.
++tokPos;
ch = input.charCodeAt(tokPos);
}
- (tokComments || (tokComments = [])).push(input.slice(start, tokPos));
+ if (options.trackComments)
+ (tokComments || (tokComments = [])).push(input.slice(start, tokPos));
} | | Called at the start of the parse and after every token. Skips
whitespace and comments, and, if options.trackComments is on,
will store all skipped comments in tokComments. | function skipSpace() {
@@ -605,7 +606,8 @@ operator node, not the second literal node. | if (tokCommentsAfter) {
node.commentsAfter = tokCommentsAfter;
tokCommentsAfter = null;
- } else if (lastFinishedNode && lastFinishedNode.end === lastEnd) {
+ } else if (lastFinishedNode && lastFinishedNode.end === lastEnd &&
+ lastFinishedNode.commentsAfter) {
node.commentsAfter = lastFinishedNode.commentsAfter;
lastFinishedNode.commentsAfter = null;
}