public final class org.jruby.java.invokers.SingletonMethodInvoker extends org.jruby.java.invokers.MethodInvoker
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.jruby.java.invokers.SingletonMethodInvoker
  super_class: org.jruby.java.invokers.MethodInvoker
{
  private final java.lang.Object singleton;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(, org.jruby.RubyClass, java.util.function.Supplier<java.lang.reflect.Method[]>, java.lang.String);
    descriptor: (Ljava/lang/Object;Lorg/jruby/RubyClass;Ljava/util/function/Supplier;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // java.lang.Object singleton
        start local 2 // org.jruby.RubyClass host
        start local 3 // java.util.function.Supplier methods
        start local 4 // java.lang.String name
         0: .line 20
            aload 0 /* this */
            aload 2 /* host */
            aload 3 /* methods */
            aload 4 /* name */
            invokespecial org.jruby.java.invokers.MethodInvoker.<init>:(Lorg/jruby/RubyModule;Ljava/util/function/Supplier;Ljava/lang/String;)V
         1: .line 21
            aload 0 /* this */
            aload 1 /* singleton */
            putfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
         2: .line 22
            return
        end local 4 // java.lang.String name
        end local 3 // java.util.function.Supplier methods
        end local 2 // org.jruby.RubyClass host
        end local 1 // java.lang.Object singleton
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0    3     1  singleton  Ljava/lang/Object;
            0    3     2       host  Lorg/jruby/RubyClass;
            0    3     3    methods  Ljava/util/function/Supplier<[Ljava/lang/reflect/Method;>;
            0    3     4       name  Ljava/lang/String;
    Signature: (Ljava/lang/Object;Lorg/jruby/RubyClass;Ljava/util/function/Supplier<[Ljava/lang/reflect/Method;>;Ljava/lang/String;)V
    MethodParameters:
           Name  Flags
      singleton  
      host       
      methods    
      name       

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 26
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* args */
            aload 5 /* args */
            arraylength
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallable:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 6 /* method */
        start local 6 // org.jruby.javasupport.JavaMethod method
         1: .line 27
            aload 6 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            aload 6 /* method */
            aload 5 /* args */
            invokestatic org.jruby.java.invokers.SingletonMethodInvoker.convertArguments:(Lorg/jruby/javasupport/ParameterTypes;[Lorg/jruby/runtime/builtin/IRubyObject;)[Ljava/lang/Object;
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.javasupport.JavaMethod method
        end local 5 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3    clazz  Lorg/jruby/RubyModule;
            0    2     4     name  Ljava/lang/String;
            0    2     5     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    2     6   method  Lorg/jruby/javasupport/JavaMethod;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      args     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
         0: .line 32
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.javaVarargsCallables:[Lorg/jruby/javasupport/JavaCallable;
            ifnull 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            getstatic org.jruby.runtime.builtin.IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 33
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallableArityZero:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 5 /* method */
        start local 5 // org.jruby.javasupport.JavaMethod method
         2: .line 35
            aload 5 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.javasupport.JavaMethod method
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     3    clazz  Lorg/jruby/RubyModule;
            0    3     4     name  Ljava/lang/String;
            2    3     5   method  Lorg/jruby/javasupport/JavaMethod;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=6
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 40
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.javaVarargsCallables:[Lorg/jruby/javasupport/JavaCallable;
            ifnull 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* arg0 */
            aastore
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 41
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallableArityOne:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 6 /* method */
        start local 6 // org.jruby.javasupport.JavaMethod method
         2: .line 42
            aload 6 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.isVarArgs:()Z
            ifeq 3
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* arg0 */
            aastore
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 43
      StackMap locals: org.jruby.javasupport.JavaMethod
      StackMap stack:
            aload 6 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 7 /* paramTypes */
        start local 7 // java.lang.Class[] paramTypes
         4: .line 44
            aload 5 /* arg0 */
            aload 7 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 8 /* cArg0 */
        start local 8 // java.lang.Object cArg0
         5: .line 46
            aload 6 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            aload 8 /* cArg0 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 8 // java.lang.Object cArg0
        end local 7 // java.lang.Class[] paramTypes
        end local 6 // org.jruby.javasupport.JavaMethod method
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0    6     1     context  Lorg/jruby/runtime/ThreadContext;
            0    6     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     3       clazz  Lorg/jruby/RubyModule;
            0    6     4        name  Ljava/lang/String;
            0    6     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            2    6     6      method  Lorg/jruby/javasupport/JavaMethod;
            4    6     7  paramTypes  [Ljava/lang/Class;
            5    6     8       cArg0  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=11, args_size=7
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg1
         0: .line 51
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.javaVarargsCallables:[Lorg/jruby/javasupport/JavaCallable;
            ifnull 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* arg0 */
            aastore
            dup
            iconst_1
            aload 6 /* arg1 */
            aastore
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 52
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallableArityTwo:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 7 /* method */
        start local 7 // org.jruby.javasupport.JavaMethod method
         2: .line 53
            aload 7 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 8 /* paramTypes */
        start local 8 // java.lang.Class[] paramTypes
         3: .line 54
            aload 5 /* arg0 */
            aload 8 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 9 /* cArg0 */
        start local 9 // java.lang.Object cArg0
         4: .line 55
            aload 6 /* arg1 */
            aload 8 /* paramTypes */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 10 /* cArg1 */
        start local 10 // java.lang.Object cArg1
         5: .line 57
            aload 7 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            aload 9 /* cArg0 */
            aload 10 /* cArg1 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 10 // java.lang.Object cArg1
        end local 9 // java.lang.Object cArg0
        end local 8 // java.lang.Class[] paramTypes
        end local 7 // org.jruby.javasupport.JavaMethod method
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0    6     1     context  Lorg/jruby/runtime/ThreadContext;
            0    6     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     3       clazz  Lorg/jruby/RubyModule;
            0    6     4        name  Ljava/lang/String;
            0    6     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     6        arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            2    6     7      method  Lorg/jruby/javasupport/JavaMethod;
            3    6     8  paramTypes  [Ljava/lang/Class;
            4    6     9       cArg0  Ljava/lang/Object;
            5    6    10       cArg1  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      arg1     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=13, args_size=8
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 7 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 62
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.javaVarargsCallables:[Lorg/jruby/javasupport/JavaCallable;
            ifnull 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            iconst_3
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* arg0 */
            aastore
            dup
            iconst_1
            aload 6 /* arg1 */
            aastore
            dup
            iconst_2
            aload 7 /* arg2 */
            aastore
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 63
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            aload 7 /* arg2 */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallableArityThree:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 8 /* method */
        start local 8 // org.jruby.javasupport.JavaMethod method
         2: .line 64
            aload 8 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 9 /* paramTypes */
        start local 9 // java.lang.Class[] paramTypes
         3: .line 65
            aload 5 /* arg0 */
            aload 9 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 10 /* cArg0 */
        start local 10 // java.lang.Object cArg0
         4: .line 66
            aload 6 /* arg1 */
            aload 9 /* paramTypes */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 11 /* cArg1 */
        start local 11 // java.lang.Object cArg1
         5: .line 67
            aload 7 /* arg2 */
            aload 9 /* paramTypes */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 12 /* cArg2 */
        start local 12 // java.lang.Object cArg2
         6: .line 69
            aload 8 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            aload 10 /* cArg0 */
            aload 11 /* cArg1 */
            aload 12 /* cArg2 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 12 // java.lang.Object cArg2
        end local 11 // java.lang.Object cArg1
        end local 10 // java.lang.Object cArg0
        end local 9 // java.lang.Class[] paramTypes
        end local 8 // org.jruby.javasupport.JavaMethod method
        end local 7 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0    7     1     context  Lorg/jruby/runtime/ThreadContext;
            0    7     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3       clazz  Lorg/jruby/RubyModule;
            0    7     4        name  Ljava/lang/String;
            0    7     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     6        arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     7        arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            2    7     8      method  Lorg/jruby/javasupport/JavaMethod;
            3    7     9  paramTypes  [Ljava/lang/Class;
            4    7    10       cArg0  Ljava/lang/Object;
            5    7    11       cArg1  Ljava/lang/Object;
            6    7    12       cArg2  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      arg1     
      arg2     

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=13, args_size=7
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 6 // org.jruby.runtime.Block block
         0: .line 74
            aload 6 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 14
         1: .line 75
            aload 5 /* args */
            arraylength
            istore 7 /* len */
        start local 7 // int len
         2: .line 77
            iload 7 /* len */
            iconst_1
            iadd
            anewarray java.lang.Object
            astore 8 /* convertedArgs */
        start local 8 // java.lang.Object[] convertedArgs
         3: .line 78
            iload 7 /* len */
            iconst_1
            iadd
            anewarray org.jruby.runtime.builtin.IRubyObject
            astore 9 /* intermediate */
        start local 9 // org.jruby.runtime.builtin.IRubyObject[] intermediate
         4: .line 79
            aload 5 /* args */
            iconst_0
            aload 9 /* intermediate */
            iconst_0
            iload 7 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 80
            aload 9 /* intermediate */
            iload 7 /* len */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 6 /* block */
            aload 6 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            aastore
         6: .line 82
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 9 /* intermediate */
            iload 7 /* len */
            iconst_1
            iadd
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallable:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 10 /* method */
        start local 10 // org.jruby.javasupport.JavaMethod method
         7: .line 83
            aload 10 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 11 /* paramTypes */
        start local 11 // java.lang.Class[] paramTypes
         8: .line 84
            iconst_0
            istore 12 /* i */
        start local 12 // int i
         9: goto 12
        10: .line 85
      StackMap locals: org.jruby.java.invokers.SingletonMethodInvoker org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyModule java.lang.String org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block int java.lang.Object[] org.jruby.runtime.builtin.IRubyObject[] org.jruby.javasupport.JavaMethod java.lang.Class[] int
      StackMap stack:
            aload 8 /* convertedArgs */
            iload 12 /* i */
            aload 9 /* intermediate */
            iload 12 /* i */
            aaload
            aload 11 /* paramTypes */
            iload 12 /* i */
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            aastore
        11: .line 84
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 12 /* i */
            iload 7 /* len */
            iconst_1
            iadd
            if_icmplt 10
        end local 12 // int i
        13: .line 88
            aload 10 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            aload 8 /* convertedArgs */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 11 // java.lang.Class[] paramTypes
        end local 10 // org.jruby.javasupport.JavaMethod method
        end local 9 // org.jruby.runtime.builtin.IRubyObject[] intermediate
        end local 8 // java.lang.Object[] convertedArgs
        end local 7 // int len
        14: .line 90
      StackMap locals: org.jruby.java.invokers.SingletonMethodInvoker org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyModule java.lang.String org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            aload 5 /* args */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.runtime.Block block
        end local 5 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0   15     1        context  Lorg/jruby/runtime/ThreadContext;
            0   15     2           self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   15     3          clazz  Lorg/jruby/RubyModule;
            0   15     4           name  Ljava/lang/String;
            0   15     5           args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   15     6          block  Lorg/jruby/runtime/Block;
            2   14     7            len  I
            3   14     8  convertedArgs  [Ljava/lang/Object;
            4   14     9   intermediate  [Lorg/jruby/runtime/builtin/IRubyObject;
            7   14    10         method  Lorg/jruby/javasupport/JavaMethod;
            8   14    11     paramTypes  [Ljava/lang/Class;
            9   13    12              i  I
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      args     
      block    

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=6
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.Block block
         0: .line 95
            aload 5 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 6
         1: .line 96
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* block */
            aload 5 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            astore 6 /* proc */
        start local 6 // org.jruby.RubyProc proc
         2: .line 97
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 6 /* proc */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallableArityOne:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 7 /* method */
        start local 7 // org.jruby.javasupport.JavaMethod method
         3: .line 98
            aload 7 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 8 /* paramTypes */
        start local 8 // java.lang.Class[] paramTypes
         4: .line 99
            aload 6 /* proc */
            aload 8 /* paramTypes */
            iconst_0
            aaload
            invokevirtual org.jruby.RubyProc.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 9 /* cArg0 */
        start local 9 // java.lang.Object cArg0
         5: .line 101
            aload 7 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            aload 9 /* cArg0 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 9 // java.lang.Object cArg0
        end local 8 // java.lang.Class[] paramTypes
        end local 7 // org.jruby.javasupport.JavaMethod method
        end local 6 // org.jruby.RubyProc proc
         6: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.Block block
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0    7     1     context  Lorg/jruby/runtime/ThreadContext;
            0    7     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3       clazz  Lorg/jruby/RubyModule;
            0    7     4        name  Ljava/lang/String;
            0    7     5       block  Lorg/jruby/runtime/Block;
            2    6     6        proc  Lorg/jruby/RubyProc;
            3    6     7      method  Lorg/jruby/javasupport/JavaMethod;
            4    6     8  paramTypes  [Ljava/lang/Class;
            5    6     9       cArg0  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      block    

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, args_size=7
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.Block block
         0: .line 108
            aload 6 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 7
         1: .line 109
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 6 /* block */
            aload 6 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            astore 7 /* proc */
        start local 7 // org.jruby.RubyProc proc
         2: .line 110
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 7 /* proc */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallableArityTwo:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 8 /* method */
        start local 8 // org.jruby.javasupport.JavaMethod method
         3: .line 111
            aload 8 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 9 /* paramTypes */
        start local 9 // java.lang.Class[] paramTypes
         4: .line 112
            aload 5 /* arg0 */
            aload 9 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 10 /* cArg0 */
        start local 10 // java.lang.Object cArg0
         5: .line 113
            aload 7 /* proc */
            aload 9 /* paramTypes */
            iconst_1
            aaload
            invokevirtual org.jruby.RubyProc.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 11 /* cArg1 */
        start local 11 // java.lang.Object cArg1
         6: .line 115
            aload 8 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            aload 10 /* cArg0 */
            aload 11 /* cArg1 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 11 // java.lang.Object cArg1
        end local 10 // java.lang.Object cArg0
        end local 9 // java.lang.Class[] paramTypes
        end local 8 // org.jruby.javasupport.JavaMethod method
        end local 7 // org.jruby.RubyProc proc
         7: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            aload 5 /* arg0 */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.runtime.Block block
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0    8     1     context  Lorg/jruby/runtime/ThreadContext;
            0    8     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     3       clazz  Lorg/jruby/RubyModule;
            0    8     4        name  Ljava/lang/String;
            0    8     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     6       block  Lorg/jruby/runtime/Block;
            2    7     7        proc  Lorg/jruby/RubyProc;
            3    7     8      method  Lorg/jruby/javasupport/JavaMethod;
            4    7     9  paramTypes  [Ljava/lang/Class;
            5    7    10       cArg0  Ljava/lang/Object;
            6    7    11       cArg1  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      block    

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=14, args_size=8
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 7 // org.jruby.runtime.Block block
         0: .line 122
            aload 7 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 8
         1: .line 123
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 7 /* block */
            aload 7 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            astore 8 /* proc */
        start local 8 // org.jruby.RubyProc proc
         2: .line 124
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            aload 8 /* proc */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallableArityThree:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 9 /* method */
        start local 9 // org.jruby.javasupport.JavaMethod method
         3: .line 125
            aload 9 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 10 /* paramTypes */
        start local 10 // java.lang.Class[] paramTypes
         4: .line 126
            aload 5 /* arg0 */
            aload 10 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 11 /* cArg0 */
        start local 11 // java.lang.Object cArg0
         5: .line 127
            aload 6 /* arg1 */
            aload 10 /* paramTypes */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 12 /* cArg1 */
        start local 12 // java.lang.Object cArg1
         6: .line 128
            aload 8 /* proc */
            aload 10 /* paramTypes */
            iconst_2
            aaload
            invokevirtual org.jruby.RubyProc.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 13 /* cArg2 */
        start local 13 // java.lang.Object cArg2
         7: .line 130
            aload 9 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            aload 11 /* cArg0 */
            aload 12 /* cArg1 */
            aload 13 /* cArg2 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 13 // java.lang.Object cArg2
        end local 12 // java.lang.Object cArg1
        end local 11 // java.lang.Object cArg0
        end local 10 // java.lang.Class[] paramTypes
        end local 9 // org.jruby.javasupport.JavaMethod method
        end local 8 // org.jruby.RubyProc proc
         8: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 7 // org.jruby.runtime.Block block
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0    9     1     context  Lorg/jruby/runtime/ThreadContext;
            0    9     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     3       clazz  Lorg/jruby/RubyModule;
            0    9     4        name  Ljava/lang/String;
            0    9     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     6        arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     7       block  Lorg/jruby/runtime/Block;
            2    8     8        proc  Lorg/jruby/RubyProc;
            3    8     9      method  Lorg/jruby/javasupport/JavaMethod;
            4    8    10  paramTypes  [Ljava/lang/Class;
            5    8    11       cArg0  Ljava/lang/Object;
            6    8    12       cArg1  Ljava/lang/Object;
            7    8    13       cArg2  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      arg1     
      block    

  public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=16, args_size=9
        start local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject self
        start local 3 // org.jruby.RubyModule clazz
        start local 4 // java.lang.String name
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 7 // org.jruby.runtime.builtin.IRubyObject arg2
        start local 8 // org.jruby.runtime.Block block
         0: .line 137
            aload 8 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 9
         1: .line 138
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 8 /* block */
            aload 8 /* block */
            getfield org.jruby.runtime.Block.type:Lorg/jruby/runtime/Block$Type;
            invokestatic org.jruby.RubyProc.newProc:(Lorg/jruby/Ruby;Lorg/jruby/runtime/Block;Lorg/jruby/runtime/Block$Type;)Lorg/jruby/RubyProc;
            astore 9 /* proc */
        start local 9 // org.jruby.RubyProc proc
         2: .line 139
            aload 0 /* this */
            aload 2 /* self */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            aload 7 /* arg2 */
            aload 9 /* proc */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.findCallableArityFour:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaCallable;
            checkcast org.jruby.javasupport.JavaMethod
            astore 10 /* method */
        start local 10 // org.jruby.javasupport.JavaMethod method
         3: .line 140
            aload 10 /* method */
            invokevirtual org.jruby.javasupport.JavaMethod.getParameterTypes:()[Ljava/lang/Class;
            astore 11 /* paramTypes */
        start local 11 // java.lang.Class[] paramTypes
         4: .line 141
            aload 5 /* arg0 */
            aload 11 /* paramTypes */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 12 /* cArg0 */
        start local 12 // java.lang.Object cArg0
         5: .line 142
            aload 6 /* arg1 */
            aload 11 /* paramTypes */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 13 /* cArg1 */
        start local 13 // java.lang.Object cArg1
         6: .line 143
            aload 7 /* arg2 */
            aload 11 /* paramTypes */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 14 /* cArg2 */
        start local 14 // java.lang.Object cArg2
         7: .line 144
            aload 9 /* proc */
            aload 11 /* paramTypes */
            iconst_3
            aaload
            invokevirtual org.jruby.RubyProc.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 15 /* cArg3 */
        start local 15 // java.lang.Object cArg3
         8: .line 146
            aload 10 /* method */
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.java.invokers.SingletonMethodInvoker.singleton:Ljava/lang/Object;
            aload 12 /* cArg0 */
            aload 13 /* cArg1 */
            aload 14 /* cArg2 */
            aload 15 /* cArg3 */
            invokevirtual org.jruby.javasupport.JavaMethod.invokeDirect:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 15 // java.lang.Object cArg3
        end local 14 // java.lang.Object cArg2
        end local 13 // java.lang.Object cArg1
        end local 12 // java.lang.Object cArg0
        end local 11 // java.lang.Class[] paramTypes
        end local 10 // org.jruby.javasupport.JavaMethod method
        end local 9 // org.jruby.RubyProc proc
         9: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* self */
            aload 3 /* clazz */
            aload 4 /* name */
            aload 5 /* arg0 */
            aload 6 /* arg1 */
            aload 7 /* arg2 */
            invokevirtual org.jruby.java.invokers.SingletonMethodInvoker.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 8 // org.jruby.runtime.Block block
        end local 7 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 6 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 4 // java.lang.String name
        end local 3 // org.jruby.RubyModule clazz
        end local 2 // org.jruby.runtime.builtin.IRubyObject self
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.java.invokers.SingletonMethodInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/jruby/java/invokers/SingletonMethodInvoker;
            0   10     1     context  Lorg/jruby/runtime/ThreadContext;
            0   10     2        self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     3       clazz  Lorg/jruby/RubyModule;
            0   10     4        name  Ljava/lang/String;
            0   10     5        arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     6        arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     7        arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     8       block  Lorg/jruby/runtime/Block;
            2    9     9        proc  Lorg/jruby/RubyProc;
            3    9    10      method  Lorg/jruby/javasupport/JavaMethod;
            4    9    11  paramTypes  [Ljava/lang/Class;
            5    9    12       cArg0  Ljava/lang/Object;
            6    9    13       cArg1  Ljava/lang/Object;
            7    9    14       cArg2  Ljava/lang/Object;
            8    9    15       cArg3  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      self     
      clazz    
      name     
      arg0     
      arg1     
      arg2     
      block    
}
SourceFile: "SingletonMethodInvoker.java"
InnerClasses:
  public final Type = org.jruby.runtime.Block$Type of org.jruby.runtime.Block