   TheFunction = Builder.insertBlock.parent
 
   # Register all variables and emit their initializer.
-  for VarName, Init of @VarNames
+  for VarName, Init of @varNames
     # Emit the initializer before adding the variable to scope, this prevents
     # the initializer from referencing the variable itself, and permits stuff
     # like this:

    NamedValues[VarName] = Alloca
  
  # Codegen the body, now that all vars are in scope.
  BodyVal = Body.Codegen()
  if not BodyVal then return null
  
  # Pop all our variables from scope.
  for vn, i in VarNames
    NamedValues[vn] = OldBindings[i]

  # Return the body computation.

    while @getNextToken() == tok_identifier
      ArgNames.push(@lexer.val)
    if @curTok != ')'
      throw new Error("Expected ')' in prototype")
    
    # success.
    @getNextToken()  # eat ')'.
    
    # Verify right number of names for operator.
    if Kind && ArgNames.length != Kind
      throw new Error("Invalid number of operands for operator")
    
    return new PrototypeAST(FnName, ArgNames, Kind != 0, BinaryPrecedence)

