 IS_STRING = /^['"]/
 IS_REGEX = /^\//
 
-# Utility Functions
-# -----------------
+# Helper Functions
+# ----------------
 
 # Helper for ensuring that utility functions are assigned at the top level.
 utility = (name) ->

    @body.expressions.unshift @ctor unless @ctor instanceof Code
    @body.expressions.push lname

    call  = Closure.wrap @body

    if @parent and call.args
      @superClass = new Literal o.scope.freeVariable 'super', no
      @body.expressions.unshift new Extends lname, @superClass
      call.args.push @parent
      params = call.variable.params or call.variable.base.params
      params.push new Param @superClass

    @body.expressions.unshift @directives...

    klass = new Parens call, yes
    klass = new Assign @variable, klass if @variable
    klass.compileToFragments o


    if jumpNode = @jumps()
      jumpNode.error 'cannot use a pure statement in an expression'
    o.sharedScope = yes
    func = new Code [], Block.wrap [this]
    args = []
    if (argumentsNode = @contains isLiteralArguments) or @contains isLiteralThis
      args = [new Literal 'this']
      if argumentsNode
        meth = 'apply'
        args.push new Literal 'arguments'
      else
        meth = 'call'
      func = new Value func, [new Access new Literal meth]
    (new Call func, args).compileNode o

  # If the code generation wishes to use the result of a complex expression
  # in multiple places, ensure that the expression is only ever evaluated once,
