public LuaValue method(String name, Object arg1, Object arg2) throws LuaError {
   return val.method(name, LuaValue.userdataOf(arg1), LuaValue.userdataOf(arg2));
 }
 /**
  * Call named method on this with 0 arguments, including metatag processing, and return only the
  * first return value.
  *
  * <p>Look up this[name] and if it is a LuaFunction, call it inserting this as an additional
  * first argument. and return only its first return value, dropping any others. Otherwise, look
  * for the CALL metatag and call that.
  *
  * <p>If the return value is a Varargs, only the 1st value will be returned. To get multiple
  * values, use LuaValue.invoke() instead.
  *
  * <p>To call this as a plain call, use LuaValue.call() instead.
  *
  * @param name Name of the method to look up for invocation
  * @return All values returned from this:name() as a Varargs instance
  * @throws LuaError - if not a function and CALL is not defined, or the invoked function throws
  *     a LuaError or the invoked closure throw a lua error
  */
 public LuaValue method(String name) throws LuaError {
   return val.method(name);
 }