                         strload = irbuilder.createLoad str_alloca, "%str_alloca"
 
                         strload.literal = n
-                        debug.log "strload = #{strload}"
+                        debug.log -> "strload = #{strload}"
                         return strload
 
 
                 # regular expression literals
                 if typeof n.raw is "string" and n.raw[0] is '/'
-                        debug.log "literal regexp: #{n.raw}"
+                        debug.log -> "literal regexp: #{n.raw}"
                         c = irbuilder.createGlobalStringPtr n.raw, "strconst"
                         regexpcall = @createCall @ejs_runtime.regexp_new_utf8, [c], "regexptmp"
-                        debug.log "regexpcall = #{regexpcall}"
+                        debug.log -> "regexpcall = #{regexpcall}"
                         return regexpcall
 
                 # number literals
                 if typeof n.value is "number"
-                        debug.log "literal number: #{n.value}"
+                        debug.log -> "literal number: #{n.value}"
                         if n.value is 0
                                 numload = irbuilder.createLoad @ejs_runtime['zero'], "load_zero"
                         else if n.value is 1

                return ir_func

        visitUnaryExpression: (n) ->
                debug.log "operator = '#{n.operator}'"

                builtin = "unop#{n.operator}"
                callee = @ejs_runtime[builtin]

                argv
                                                                
        visitCallExpression: (n) ->
                debug.log -> "visitCall #{JSON.stringify n}"
                debug.log -> "          arguments length = #{n.arguments.length}"
                debug.log -> "          arguments[#{i}] =  #{JSON.stringify n.arguments[i]}" for i in [0...n.arguments.length]

                intrinsicHandler = @ejs_intrinsics[n.callee.name.slice(1)]
                if not intrinsicHandler
