         @outdebt = 0
         @token 'OUTDENT', dent
     @outdebt -= moveOut if dent
-    @token 'TERMINATOR', '\n' unless noNewlines or @tag() is 'TERMINATOR'
+    @newlineToken() unless noNewlines
     this
 
   # Matches and consumes non-meaningful whitespace. Tag the previous token

    if quote is '"' and 0 <= doc.indexOf '#{'
    then @interpolateString doc, heredoc: true
    else @token 'STRNUM', @makeString doc, quote, true
    @countLines heredoc
    heredoc.length

  # Matches and consumes comments.
  commentToken: ->

      @token 'HERECOMMENT', @sanitizeHeredoc here,
        herecomment: true, indent: Array(@indent + 1).join(' ')
      @token<[ TERMINATOR \n ]>
    @countLines(comment).length

  # Matches JavaScript interpolated directly into the source via backticks.
  jsToken: ->
    return 0 unless @chunk.charAt(0) is '`' and js = JSTOKEN.exec @chunk
    @token 'LITERAL', (js[=0]).slice 1, -1
    @countLines(js).length

  # Matches regular expression literals. Lexing regular expressions is difficult
  # to distinguish from division, so we borrow some basic heuristics from
