       args = [new Literal 'this']
       args.push new Literal 'arguments' if mentionsArgs
       func = new Value func, [new Accessor meth]
+      func.noReturn = noReturn
     call = new Call func, args
     if statement then Expressions.wrap [call] else call
 

          params.push param
    o.scope.startLevel()
    params = (param.compile(o) for param in params)
    @body.makeReturn() unless empty
    (o.scope.parameter(param)) for param in params
    comm  = if @comment then @comment.compile(o) + '\n' else ''
    o.indent = @idt 2 if @className

  # Wrap the expressions body, unless it contains a pure statement,
  # in which case, no dice. If the body mentions `this` or `arguments`,
  # then make sure that the closure wrapper preserves the original values.
  wrap: (expressions, statement, noReturn) ->
    return expressions if expressions.containsPureStatement()
    func = new Parens new Code [], Expressions.wrap [expressions]
    args = []
