   scanTokens: (block) ->
     {tokens} = this
     i = 0
-    (i += block.call this, token, i, tokens) while token = tokens[i]
+    i += block.call this, token, i, tokens while token = tokens[i]
     true
 
   detectEnd: (i, condition, action) ->

  # Insert the missing braces here, so that the parser doesn't have to.
  addImplicitBraces: ->
    stack = []
    condition = (token, i) ->
      return false if 'HERECOMMENT' in [@tag(i + 1), @tag(i - 1)]
      {(i+1): one, (i+2): two, (i+3): three} = @tokens

      if tag in EXPRESSION_END
        start = stack.pop()
        return 1
      return 1 unless tag is ':'
      ago2 = @tag i - 2
      return 1 unless ago2 is ':' or stack[stack.length - 1]?[0] isnt '{'
      stack.push ['{']
      idx = if ago2 is '@'
        i - 2
      else  if @tag(i - 1) is ')'
        start[1]
      else
        i - 1
      idx -= 2 if @tag(idx - 2) is 'HERECOMMENT'
