 
   switch node.type
     when 'VariableDeclaration'
-      return (name: declaration.id.name, object:'context' for declaration in node.declarations when declaration.type is 'VariableDeclarator' and declaration.id.type is 'Identifier')
+      return (name: declaration.id.name, object:'_h2o_context_' for declaration in node.declarations when declaration.type is 'VariableDeclarator' and declaration.id.type is 'Identifier')
         
     when 'FunctionDeclaration'
       #
       # XXX Not sure about the semantics here.
       #
       if node.id.type is 'Identifier'
-        return [ name: node.id.name, object: 'context' ]
+        return [ name: node.id.name, object: '_h2o_context_' ]
     when 'ForStatement'
       return identifyDeclarations node.init
     when 'ForInStatement', 'ForOfStatement'

      cause: error

parseJavascript = (js, go) ->
  #XXX Test this - worst case scenario
  x = '''
    var foo = 6 * 7;
    var bar = 10;
    function foo() {
      foo = 20;
      bar = function(){};
      var foo = 10;
      for (var foo = 0; foo < 10; foo++) {
        var foo = foo++;
        foo = foo++;
      }
    }
  '''

  try
    go null, esprima.parse js
  catch error

    h5: -> Flow.HtmlTag _, 'h5'
    h6: -> Flow.HtmlTag _, 'h6'
    md: -> Flow.Markdown _
    cs: -> Flow.Coffeescript _, _sandbox
    raw: -> Flow.Raw _

  countLines = (text) ->
