Stop accumulating line comments when trackComments is off

This commit is contained in:
Marijn Haverbeke 2012-11-05 22:39:22 +01:00
parent b660ff6d1c
commit 043386067a
2 changed files with 8 additions and 4 deletions

View File

@ -444,6 +444,7 @@
++tokPos; ++tokPos;
ch = input.charCodeAt(tokPos); ch = input.charCodeAt(tokPos);
} }
if (options.trackComments)
(tokComments || (tokComments = [])).push(input.slice(start, tokPos)); (tokComments || (tokComments = [])).push(input.slice(start, tokPos));
} }
@ -878,7 +879,8 @@
if (tokCommentsAfter) { if (tokCommentsAfter) {
node.commentsAfter = tokCommentsAfter; node.commentsAfter = tokCommentsAfter;
tokCommentsAfter = null; tokCommentsAfter = null;
} else if (lastFinishedNode && lastFinishedNode.end === lastEnd) { } else if (lastFinishedNode && lastFinishedNode.end === lastEnd &&
lastFinishedNode.commentsAfter) {
node.commentsAfter = lastFinishedNode.commentsAfter; node.commentsAfter = lastFinishedNode.commentsAfter;
lastFinishedNode.commentsAfter = null; lastFinishedNode.commentsAfter = null;
} }

View File

@ -263,6 +263,7 @@ the right position.</p> </td> <td class="code">
<span class="o">++</span><span class="nx">tokPos</span><span class="p">;</span> <span class="o">++</span><span class="nx">tokPos</span><span class="p">;</span>
<span class="nx">ch</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">charCodeAt</span><span class="p">(</span><span class="nx">tokPos</span><span class="p">);</span> <span class="nx">ch</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">charCodeAt</span><span class="p">(</span><span class="nx">tokPos</span><span class="p">);</span>
<span class="p">}</span> <span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">options</span><span class="p">.</span><span class="nx">trackComments</span><span class="p">)</span>
<span class="p">(</span><span class="nx">tokComments</span> <span class="o">||</span> <span class="p">(</span><span class="nx">tokComments</span> <span class="o">=</span> <span class="p">[])).</span><span class="nx">push</span><span class="p">(</span><span class="nx">input</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">tokPos</span><span class="p">));</span> <span class="p">(</span><span class="nx">tokComments</span> <span class="o">||</span> <span class="p">(</span><span class="nx">tokComments</span> <span class="o">=</span> <span class="p">[])).</span><span class="nx">push</span><span class="p">(</span><span class="nx">input</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">tokPos</span><span class="p">));</span>
<span class="p">}</span></pre></div> </td> </tr> <tr id="section-53"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-53">&#182;</a> </div> <p>Called at the start of the parse and after every token. Skips <span class="p">}</span></pre></div> </td> </tr> <tr id="section-53"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-53">&#182;</a> </div> <p>Called at the start of the parse and after every token. Skips
whitespace and comments, and, if <code>options.trackComments</code> is on, whitespace and comments, and, if <code>options.trackComments</code> is on,
@ -605,7 +606,8 @@ operator node, not the second literal node.</p> </td> <t
<span class="k">if</span> <span class="p">(</span><span class="nx">tokCommentsAfter</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nx">tokCommentsAfter</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">node</span><span class="p">.</span><span class="nx">commentsAfter</span> <span class="o">=</span> <span class="nx">tokCommentsAfter</span><span class="p">;</span> <span class="nx">node</span><span class="p">.</span><span class="nx">commentsAfter</span> <span class="o">=</span> <span class="nx">tokCommentsAfter</span><span class="p">;</span>
<span class="nx">tokCommentsAfter</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> <span class="nx">tokCommentsAfter</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">lastFinishedNode</span> <span class="o">&amp;&amp;</span> <span class="nx">lastFinishedNode</span><span class="p">.</span><span class="nx">end</span> <span class="o">===</span> <span class="nx">lastEnd</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">lastFinishedNode</span> <span class="o">&amp;&amp;</span> <span class="nx">lastFinishedNode</span><span class="p">.</span><span class="nx">end</span> <span class="o">===</span> <span class="nx">lastEnd</span> <span class="o">&amp;&amp;</span>
<span class="nx">lastFinishedNode</span><span class="p">.</span><span class="nx">commentsAfter</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">node</span><span class="p">.</span><span class="nx">commentsAfter</span> <span class="o">=</span> <span class="nx">lastFinishedNode</span><span class="p">.</span><span class="nx">commentsAfter</span><span class="p">;</span> <span class="nx">node</span><span class="p">.</span><span class="nx">commentsAfter</span> <span class="o">=</span> <span class="nx">lastFinishedNode</span><span class="p">.</span><span class="nx">commentsAfter</span><span class="p">;</span>
<span class="nx">lastFinishedNode</span><span class="p">.</span><span class="nx">commentsAfter</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> <span class="nx">lastFinishedNode</span><span class="p">.</span><span class="nx">commentsAfter</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
<span class="p">}</span> <span class="p">}</span>