code: public Object eval( CallStack callstack, Interpreter interpreter )
          throws EvalError
      {
          NameSpace namespace = callstack.top();
          BSHAmbiguousName nameNode = getNameNode();
  
        // get caller info for assert fail
        if ("fail".equals(nameNode.text))
            interpreter.getNameSpace().setNode(this);
  
          // Do not evaluate methods this() or super() in class instance space
          // (i.e. inside a constructor)
          if ( namespace.getParent() != null && namespace.getParent().isClass
              && ( nameNode.text.equals("super") || nameNode.text.equals("this") )
          )
              return Primitive.VOID;
  
          Name name = nameNode.getName(namespace);
          Object[] args = getArgsNode().getArguments(callstack, interpreter);
  
  // This try/catch block is replicated is BSHPrimarySuffix... need to
  // factor out common functionality...
  // Move to Reflect?
          try {
              return name.invokeMethod( interpreter, args, callstack, this);
          } catch ( ReflectError e ) {
              throw new EvalError(
                  "Error in method invocation: " + e.getMessage(),
                  this, callstack, e );
          } catch ( InvocationTargetException e )
          {
              String msg = "Method Invocation "+name;
              Throwable te = e.getCause();
  
              /*
                  Try to squeltch the native code stack trace if the exception
                  was caused by a reflective call back into the bsh interpreter
                  (e.g. eval() or source()
              */
              boolean isNative = true;
              if ( te instanceof EvalError )
                  if ( te instanceof TargetError )
                      isNative = ((TargetError)te).inNativeCode();
                  else
                      isNative = false;
  
              throw new TargetError( msg, te, this, callstack, isNative );
          } catch ( UtilEvalError e ) {
              throw e.toEvalError( this, callstack );
          }
      }
docs: Evaluate the method invocation with the specified callstack and
  interpreter