public class org.jruby.javasupport.ext.JavaUtil$List
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.javasupport.ext.JavaUtil$List
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.ext.JavaUtil$List this
         0: .line 253
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.javasupport.ext.JavaUtil$List this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/ext/JavaUtil$List;

  static org.jruby.RubyModule define(org.jruby.Ruby, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyModule;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule proxy
         0: .line 256
            aload 1 /* proxy */
            ldc Lorg/jruby/javasupport/ext/JavaUtil$List;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
         1: .line 257
            aload 1 /* proxy */
            areturn
        end local 1 // org.jruby.RubyModule proxy
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
            0    2     1    proxy  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      runtime  final
      proxy    final

  public static org.jruby.runtime.builtin.IRubyObject aref(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject idx
         0: .line 262
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* list */
        start local 3 // java.util.List list
         1: .line 263
            aload 3 /* list */
            invokeinterface java.util.List.size:()I
            istore 4 /* size */
        start local 4 // int size
         2: .line 265
            aload 2 /* idx */
            instanceof org.jruby.RubyRange
            ifeq 12
         3: .line 266
            aload 2 /* idx */
            aload 0 /* context */
            ldc "first"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 5 /* first */
        start local 5 // int first
         4: .line 267
            aload 2 /* idx */
            aload 0 /* context */
            ldc "last"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 6 /* last */
        start local 6 // int last
         5: .line 268
            iload 6 /* last */
            ifge 6
            iload 6 /* last */
            iload 4 /* size */
            iadd
            istore 6 /* last */
         6: .line 269
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.util.List int int int
      StackMap stack:
            iload 5 /* first */
            ifge 7
            iload 5 /* first */
            iload 4 /* size */
            iadd
            istore 5 /* first */
         7: .line 270
      StackMap locals:
      StackMap stack:
            iload 5 /* first */
            iflt 8
            iload 5 /* first */
            iload 4 /* size */
            if_icmplt 9
      StackMap locals:
      StackMap stack:
         8: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         9: .line 271
      StackMap locals:
      StackMap stack:
            aload 2 /* idx */
            checkcast org.jruby.RubyRange
            invokevirtual org.jruby.RubyRange.isExcludeEnd:()Z
            ifne 10
            iinc 6 /* last */ 1
        10: .line 272
      StackMap locals:
      StackMap stack:
            iload 6 /* last */
            iload 4 /* size */
            if_icmple 11
            iload 4 /* size */
            istore 6 /* last */
        11: .line 274
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* list */
            iload 5 /* first */
            iload 6 /* last */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // int last
        end local 5 // int first
        12: .line 277
      StackMap locals:
      StackMap stack:
            aload 2 /* idx */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 5 /* i */
        start local 5 // int i
        13: .line 278
            iload 5 /* i */
            ifge 14
            iload 4 /* size */
            iload 5 /* i */
            iadd
            istore 5 /* i */
        14: .line 279
      StackMap locals: int
      StackMap stack:
            iload 5 /* i */
            iload 4 /* size */
            if_icmpge 15
            iload 5 /* i */
            ifge 16
      StackMap locals:
      StackMap stack:
        15: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        16: .line 280
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* list */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // int i
        end local 4 // int size
        end local 3 // java.util.List list
        end local 2 // org.jruby.runtime.builtin.IRubyObject idx
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0  context  Lorg/jruby/runtime/ThreadContext;
            0   17     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   17     2      idx  Lorg/jruby/runtime/builtin/IRubyObject;
            1   17     3     list  Ljava/util/List;
            2   17     4     size  I
            4   12     5    first  I
            5   12     6     last  I
           13   17     5        i  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"[]"})
    MethodParameters:
         Name  Flags
      context  final
      self     final
      idx      final

  public static org.jruby.runtime.builtin.IRubyObject aref(org.jruby.runtime.ThreadContext, 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/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject idx
        start local 3 // org.jruby.runtime.builtin.IRubyObject len
         0: .line 287
            aload 3 /* len */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 1
            aload 0 /* context */
            aload 1 /* self */
            aload 2 /* idx */
            invokestatic org.jruby.javasupport.ext.JavaUtil$List.aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 289
      StackMap locals:
      StackMap stack:
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* list */
        start local 4 // java.util.List list
         2: .line 291
            aload 2 /* idx */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 5 /* i */
        start local 5 // int i
         3: .line 292
            aload 4 /* list */
            invokeinterface java.util.List.size:()I
            istore 6 /* size */
        start local 6 // int size
         4: .line 293
            iload 5 /* i */
            ifge 5
            iload 6 /* size */
            iload 5 /* i */
            iadd
            istore 5 /* i */
         5: .line 294
      StackMap locals: java.util.List int int
      StackMap stack:
            iload 5 /* i */
            iload 6 /* size */
            if_icmpge 6
            iload 5 /* i */
            ifge 7
      StackMap locals:
      StackMap stack:
         6: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         7: .line 296
      StackMap locals:
      StackMap stack:
            aload 3 /* len */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 7 /* last */
        start local 7 // int last
         8: .line 297
            iload 7 /* last */
            ifge 9
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         9: .line 298
      StackMap locals: int
      StackMap stack:
            iload 7 /* last */
            iload 5 /* i */
            iadd
            istore 7 /* last */
            iload 7 /* last */
            iload 6 /* size */
            if_icmple 10
            iload 6 /* size */
            istore 7 /* last */
        10: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* list */
            iload 5 /* i */
            iload 7 /* last */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 7 // int last
        end local 6 // int size
        end local 5 // int i
        end local 4 // java.util.List list
        end local 3 // org.jruby.runtime.builtin.IRubyObject len
        end local 2 // org.jruby.runtime.builtin.IRubyObject idx
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  context  Lorg/jruby/runtime/ThreadContext;
            0   11     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     2      idx  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     3      len  Lorg/jruby/runtime/builtin/IRubyObject;
            2   11     4     list  Ljava/util/List;
            3   11     5        i  I
            4   11     6     size  I
            8   11     7     last  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"[]"})
    MethodParameters:
         Name  Flags
      context  final
      self     final
      idx      final
      len      final

  public static org.jruby.runtime.builtin.IRubyObject aset(org.jruby.runtime.ThreadContext, 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/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject idx
        start local 3 // org.jruby.runtime.builtin.IRubyObject val
         0: .line 307
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* list */
        start local 4 // java.util.List list
         1: .line 308
            aload 4 /* list */
            invokeinterface java.util.List.size:()I
            istore 5 /* size */
        start local 5 // int size
         2: .line 310
            aload 2 /* idx */
            instanceof org.jruby.RubyRange
            ifeq 16
         3: .line 311
            aload 2 /* idx */
            aload 0 /* context */
            ldc "first"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 6 /* first */
        start local 6 // int first
         4: .line 312
            aload 2 /* idx */
            aload 0 /* context */
            ldc "last"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 7 /* last */
        start local 7 // int last
         5: .line 313
            iload 7 /* last */
            ifge 6
            iload 7 /* last */
            iload 5 /* size */
            iadd
            istore 7 /* last */
         6: .line 314
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.util.List int int int
      StackMap stack:
            iload 6 /* first */
            ifge 7
            iload 6 /* first */
            iload 5 /* size */
            iadd
            istore 6 /* first */
         7: .line 315
      StackMap locals:
      StackMap stack:
            aload 2 /* idx */
            checkcast org.jruby.RubyRange
            invokevirtual org.jruby.RubyRange.isExcludeEnd:()Z
            ifeq 8
            iinc 7 /* last */ -1
         8: .line 316
      StackMap locals:
      StackMap stack:
            iload 7 /* last */
            istore 8 /* i */
        start local 8 // int i
         9: goto 13
        10: .line 317
      StackMap locals: int
      StackMap stack:
            iload 8 /* i */
            iload 5 /* size */
            if_icmpge 11
            aload 4 /* list */
            iload 8 /* i */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
            goto 12
        11: .line 318
      StackMap locals:
      StackMap stack:
            aload 4 /* list */
            aconst_null
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 316
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ -1
      StackMap locals:
      StackMap stack:
        13: iload 8 /* i */
            iload 6 /* first */
            if_icmpge 10
        end local 8 // int i
        14: .line 320
            aload 4 /* list */
            iload 7 /* last */
            aload 3 /* val */
            ldc Ljava/lang/Object;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        15: .line 321
            aload 3 /* val */
            areturn
        end local 7 // int last
        end local 6 // int first
        16: .line 324
      StackMap locals:
      StackMap stack:
            aload 2 /* idx */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 6 /* i */
        start local 6 // int i
        17: .line 325
            iload 6 /* i */
            ifge 18
            iload 5 /* size */
            iload 6 /* i */
            iadd
            istore 6 /* i */
        18: .line 326
      StackMap locals: int
      StackMap stack:
            iload 6 /* i */
            iload 5 /* size */
            if_icmplt 25
        19: .line 327
            iconst_0
            istore 7 /* t */
        start local 7 // int t
        20: goto 22
      StackMap locals: int
      StackMap stack:
        21: aload 4 /* list */
            aconst_null
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
            iinc 7 /* t */ 1
      StackMap locals:
      StackMap stack:
        22: iload 7 /* t */
            iload 6 /* i */
            iload 5 /* size */
            isub
            if_icmplt 21
        end local 7 // int t
        23: .line 328
            aload 4 /* list */
            aload 3 /* val */
            ldc Ljava/lang/Object;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 329
            goto 26
        25: .line 331
      StackMap locals:
      StackMap stack:
            aload 4 /* list */
            iload 6 /* i */
            aload 3 /* val */
            ldc Ljava/lang/Object;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 333
      StackMap locals:
      StackMap stack:
            aload 3 /* val */
            areturn
        end local 6 // int i
        end local 5 // int size
        end local 4 // java.util.List list
        end local 3 // org.jruby.runtime.builtin.IRubyObject val
        end local 2 // org.jruby.runtime.builtin.IRubyObject idx
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0  context  Lorg/jruby/runtime/ThreadContext;
            0   27     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   27     2      idx  Lorg/jruby/runtime/builtin/IRubyObject;
            0   27     3      val  Lorg/jruby/runtime/builtin/IRubyObject;
            1   27     4     list  Ljava/util/List;
            2   27     5     size  I
            4   16     6    first  I
            5   16     7     last  I
            9   14     8        i  I
           17   27     6        i  I
           20   23     7        t  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"[]="})
    MethodParameters:
         Name  Flags
      context  final
      self     final
      idx      final
      val      final

  public static org.jruby.runtime.builtin.IRubyObject first(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
         0: .line 339
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 340
            aload 2 /* list */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 3
      StackMap locals: java.util.List
      StackMap stack:
         2: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* list */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         3: areturn
        end local 2 // java.util.List list
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     2     list  Ljava/util/List;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"first", "ruby_first"})
    MethodParameters:
         Name  Flags
      context  final
      self     final

  public static org.jruby.runtime.builtin.IRubyObject first(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject count
         0: .line 345
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* list */
        start local 3 // java.util.List list
         1: .line 346
            aload 2 /* count */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 4 /* len */
        start local 4 // int len
         2: .line 347
            aload 3 /* list */
            invokeinterface java.util.List.size:()I
            istore 5 /* size */
        start local 5 // int size
         3: iload 4 /* len */
            iload 5 /* size */
            if_icmple 4
            iload 5 /* size */
            istore 4 /* len */
         4: .line 348
      StackMap locals: java.util.List int int
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* list */
            iconst_0
            iload 4 /* len */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // int size
        end local 4 // int len
        end local 3 // java.util.List list
        end local 2 // org.jruby.runtime.builtin.IRubyObject count
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  context  Lorg/jruby/runtime/ThreadContext;
            0    5     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     2    count  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     3     list  Ljava/util/List;
            2    5     4      len  I
            3    5     5     size  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"first", "ruby_first"})
    MethodParameters:
         Name  Flags
      context  final
      self     final
      count    final

  public static org.jruby.runtime.builtin.IRubyObject last(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
         0: .line 354
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 355
            aload 2 /* list */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 3
      StackMap locals: java.util.List
      StackMap stack:
         2: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* list */
            aload 2 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         3: areturn
        end local 2 // java.util.List list
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     2     list  Ljava/util/List;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"last", "ruby_last"})
    MethodParameters:
         Name  Flags
      context  final
      self     final

  public static org.jruby.runtime.builtin.IRubyObject last(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject count
         0: .line 360
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* list */
        start local 3 // java.util.List list
         1: .line 361
            aload 2 /* count */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 4 /* len */
        start local 4 // int len
         2: .line 362
            aload 3 /* list */
            invokeinterface java.util.List.size:()I
            istore 5 /* size */
        start local 5 // int size
         3: .line 363
            iload 5 /* size */
            iload 4 /* len */
            isub
            istore 6 /* start */
        start local 6 // int start
         4: iload 6 /* start */
            ifge 5
            iconst_0
            istore 6 /* start */
         5: .line 364
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.util.List int int int
      StackMap stack:
            iload 6 /* start */
            iload 4 /* len */
            iadd
            istore 7 /* end */
        start local 7 // int end
         6: iload 7 /* end */
            iload 5 /* size */
            if_icmple 7
            iload 5 /* size */
            istore 7 /* end */
         7: .line 365
      StackMap locals: int
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* list */
            iload 6 /* start */
            iload 7 /* end */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 7 // int end
        end local 6 // int start
        end local 5 // int size
        end local 4 // int len
        end local 3 // java.util.List list
        end local 2 // org.jruby.runtime.builtin.IRubyObject count
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  context  Lorg/jruby/runtime/ThreadContext;
            0    8     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     2    count  Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     3     list  Ljava/util/List;
            2    8     4      len  I
            3    8     5     size  I
            4    8     6    start  I
            6    8     7      end  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"last", "ruby_last"})
    MethodParameters:
         Name  Flags
      context  final
      self     final
      count    final

  public static org.jruby.runtime.builtin.IRubyObject index(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.Block block
         0: .line 370
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 371
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 3
         2: .line 372
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getEnumerator:()Lorg/jruby/RubyClass;
            ldc "new"
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 1 /* self */
            aastore
            dup
            iconst_1
            aload 3 /* runtime */
            ldc "index"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            aastore
            invokevirtual org.jruby.RubyClass.callMethod:(Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 375
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* list */
        start local 4 // java.util.List list
         4: .line 376
            aload 4 /* list */
            instanceof java.util.RandomAccess
            ifeq 12
         5: .line 377
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 10
         7: .line 378
      StackMap locals: java.util.List int
      StackMap stack:
            aload 2 /* block */
            aload 0 /* context */
            aload 3 /* runtime */
            aload 4 /* list */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* ret */
        start local 6 // org.jruby.runtime.builtin.IRubyObject ret
         8: .line 379
            aload 6 /* ret */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 9
            aload 3 /* runtime */
            iload 5 /* i */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 6 // org.jruby.runtime.builtin.IRubyObject ret
         9: .line 377
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            aload 4 /* list */
            invokeinterface java.util.List.size:()I
            if_icmplt 7
        end local 5 // int i
        11: .line 381
            goto 19
        12: .line 383
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        13: .line 384
            aload 4 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 18
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block org.jruby.Ruby java.util.List int top java.util.Iterator
      StackMap stack:
        14: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 6 /* elem */
        start local 6 // java.lang.Object elem
        15: .line 385
            aload 2 /* block */
            aload 0 /* context */
            aload 3 /* runtime */
            aload 6 /* elem */
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* ret */
        start local 8 // org.jruby.runtime.builtin.IRubyObject ret
        16: .line 386
            aload 8 /* ret */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 17
            aload 3 /* runtime */
            iload 5 /* i */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        17: .line 387
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block org.jruby.Ruby java.util.List int java.lang.Object java.util.Iterator org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            iinc 5 /* i */ 1
        end local 8 // org.jruby.runtime.builtin.IRubyObject ret
        end local 6 // java.lang.Object elem
        18: .line 384
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block org.jruby.Ruby java.util.List int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 5 // int i
        19: .line 390
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block org.jruby.Ruby java.util.List
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // java.util.List list
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0  context  Lorg/jruby/runtime/ThreadContext;
            0   20     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   20     2    block  Lorg/jruby/runtime/Block;
            1   20     3  runtime  Lorg/jruby/Ruby;
            4   20     4     list  Ljava/util/List;
            6   11     5        i  I
            8    9     6      ret  Lorg/jruby/runtime/builtin/IRubyObject;
           13   19     5        i  I
           15   18     6     elem  Ljava/lang/Object;
           16   18     8      ret  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"index"}, required = 0)
    MethodParameters:
         Name  Flags
      context  final
      self     final
      block    final

  public static org.jruby.runtime.builtin.IRubyObject index(org.jruby.runtime.ThreadContext, 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/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject val
        start local 3 // org.jruby.runtime.Block ignoredBlock
         0: .line 397
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 398
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 5 /* list */
        start local 5 // java.util.List list
         2: .line 399
            aload 5 /* list */
            instanceof java.util.RandomAccess
            ifeq 12
         3: .line 400
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 10
         5: .line 401
      StackMap locals: org.jruby.Ruby java.util.List int
      StackMap stack:
            aload 5 /* list */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            astore 7 /* elem */
        start local 7 // java.lang.Object elem
         6: .line 402
            aload 2 /* val */
            aload 7 /* elem */
            if_acmpeq 8
         7: .line 403
            aload 0 /* context */
            aload 2 /* val */
            getstatic org.jruby.runtime.invokedynamic.MethodNames.OP_EQUAL:Lorg/jruby/runtime/invokedynamic/MethodNames;
            aload 4 /* runtime */
            aload 7 /* elem */
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.runtime.Helpers.invokedynamic:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/invokedynamic/MethodNames;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 9
         8: .line 404
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* runtime */
            iload 6 /* i */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 7 // java.lang.Object elem
         9: .line 400
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            aload 5 /* list */
            invokeinterface java.util.List.size:()I
            if_icmplt 5
        end local 6 // int i
        11: .line 407
            goto 20
        12: .line 409
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: .line 410
            aload 5 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 19
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block org.jruby.Ruby java.util.List int top java.util.Iterator
      StackMap stack:
        14: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 7 /* elem */
        start local 7 // java.lang.Object elem
        15: .line 411
            aload 2 /* val */
            aload 7 /* elem */
            if_acmpeq 17
        16: .line 412
            aload 0 /* context */
            aload 2 /* val */
            getstatic org.jruby.runtime.invokedynamic.MethodNames.OP_EQUAL:Lorg/jruby/runtime/invokedynamic/MethodNames;
            aload 4 /* runtime */
            aload 7 /* elem */
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.runtime.Helpers.invokedynamic:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/invokedynamic/MethodNames;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 18
        17: .line 413
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block org.jruby.Ruby java.util.List int java.lang.Object java.util.Iterator
      StackMap stack:
            aload 4 /* runtime */
            iload 6 /* i */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        18: .line 415
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
        end local 7 // java.lang.Object elem
        19: .line 410
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block org.jruby.Ruby java.util.List int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 6 // int i
        20: .line 418
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block org.jruby.Ruby java.util.List
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // java.util.List list
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block ignoredBlock
        end local 2 // org.jruby.runtime.builtin.IRubyObject val
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0       context  Lorg/jruby/runtime/ThreadContext;
            0   21     1          self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   21     2           val  Lorg/jruby/runtime/builtin/IRubyObject;
            0   21     3  ignoredBlock  Lorg/jruby/runtime/Block;
            1   21     4       runtime  Lorg/jruby/Ruby;
            2   21     5          list  Ljava/util/List;
            4   11     6             i  I
            6    9     7          elem  Ljava/lang/Object;
           13   20     6             i  I
           15   19     7          elem  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"index"}, required = 1)
    MethodParameters:
              Name  Flags
      context       final
      self          final
      val           final
      ignoredBlock  final

  public static org.jruby.runtime.builtin.IRubyObject rindex(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.Block block
         0: .line 423
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 424
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 3
         2: .line 425
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getEnumerator:()Lorg/jruby/RubyClass;
            ldc "new"
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 1 /* self */
            aastore
            dup
            iconst_1
            aload 3 /* runtime */
            ldc "rindex"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            aastore
            invokevirtual org.jruby.RubyClass.callMethod:(Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 428
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* list */
        start local 4 // java.util.List list
         4: .line 429
            aload 4 /* list */
            instanceof java.util.RandomAccess
            ifeq 12
         5: .line 430
            aload 4 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
         6: goto 10
         7: .line 431
      StackMap locals: java.util.List int
      StackMap stack:
            aload 2 /* block */
            aload 0 /* context */
            aload 3 /* runtime */
            aload 4 /* list */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* ret */
        start local 6 // org.jruby.runtime.builtin.IRubyObject ret
         8: .line 432
            aload 6 /* ret */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 9
            aload 3 /* runtime */
            iload 5 /* i */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 6 // org.jruby.runtime.builtin.IRubyObject ret
         9: .line 430
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            ifge 7
        end local 5 // int i
        11: .line 434
            goto 20
        12: .line 436
      StackMap locals:
      StackMap stack:
            aload 4 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
        13: .line 437
            aload 4 /* list */
            iload 5 /* i */
            invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
            astore 6 /* it */
        start local 6 // java.util.ListIterator it
        14: goto 19
        15: .line 438
      StackMap locals: int java.util.ListIterator
      StackMap stack:
            aload 6 /* it */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            astore 7 /* elem */
        start local 7 // java.lang.Object elem
        16: .line 439
            aload 2 /* block */
            aload 0 /* context */
            aload 3 /* runtime */
            aload 7 /* elem */
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* ret */
        start local 8 // org.jruby.runtime.builtin.IRubyObject ret
        17: .line 440
            aload 8 /* ret */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 18
            aload 3 /* runtime */
            iload 5 /* i */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        18: .line 441
      StackMap locals: java.lang.Object org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            iinc 5 /* i */ -1
        end local 8 // org.jruby.runtime.builtin.IRubyObject ret
        end local 7 // java.lang.Object elem
        19: .line 437
      StackMap locals:
      StackMap stack:
            aload 6 /* it */
            invokeinterface java.util.ListIterator.hasPrevious:()Z
            ifne 15
        end local 6 // java.util.ListIterator it
        end local 5 // int i
        20: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // java.util.List list
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0  context  Lorg/jruby/runtime/ThreadContext;
            0   21     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   21     2    block  Lorg/jruby/runtime/Block;
            1   21     3  runtime  Lorg/jruby/Ruby;
            4   21     4     list  Ljava/util/List;
            6   11     5        i  I
            8    9     6      ret  Lorg/jruby/runtime/builtin/IRubyObject;
           13   20     5        i  I
           14   20     6       it  Ljava/util/ListIterator;
           16   19     7     elem  Ljava/lang/Object;
           17   19     8      ret  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"rindex"}, required = 0)
    MethodParameters:
         Name  Flags
      context  final
      self     final
      block    final

  public static org.jruby.runtime.builtin.IRubyObject rindex(org.jruby.runtime.ThreadContext, 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/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject val
        start local 3 // org.jruby.runtime.Block ignoredBlock
         0: .line 451
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 452
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 5 /* list */
        start local 5 // java.util.List list
         2: .line 453
            aload 5 /* list */
            instanceof java.util.RandomAccess
            ifeq 12
         3: .line 454
            aload 5 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 6 /* i */
        start local 6 // int i
         4: goto 10
         5: .line 455
      StackMap locals: org.jruby.Ruby java.util.List int
      StackMap stack:
            aload 5 /* list */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            astore 7 /* elem */
        start local 7 // java.lang.Object elem
         6: .line 456
            aload 2 /* val */
            aload 7 /* elem */
            if_acmpeq 8
         7: .line 457
            aload 0 /* context */
            aload 2 /* val */
            getstatic org.jruby.runtime.invokedynamic.MethodNames.OP_EQUAL:Lorg/jruby/runtime/invokedynamic/MethodNames;
            aload 4 /* runtime */
            aload 7 /* elem */
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.runtime.Helpers.invokedynamic:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/invokedynamic/MethodNames;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 9
         8: .line 458
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* runtime */
            iload 6 /* i */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 7 // java.lang.Object elem
         9: .line 454
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ -1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            ifge 5
        end local 6 // int i
        11: .line 461
            goto 21
        12: .line 463
      StackMap locals:
      StackMap stack:
            aload 5 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 6 /* i */
        start local 6 // int i
        13: .line 464
            aload 5 /* list */
            iload 6 /* i */
            invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
            astore 7 /* it */
        start local 7 // java.util.ListIterator it
        14: goto 20
        15: .line 465
      StackMap locals: int java.util.ListIterator
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            astore 8 /* elem */
        start local 8 // java.lang.Object elem
        16: .line 466
            aload 2 /* val */
            aload 8 /* elem */
            if_acmpeq 18
        17: .line 467
            aload 0 /* context */
            aload 2 /* val */
            getstatic org.jruby.runtime.invokedynamic.MethodNames.OP_EQUAL:Lorg/jruby/runtime/invokedynamic/MethodNames;
            aload 4 /* runtime */
            aload 8 /* elem */
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.runtime.Helpers.invokedynamic:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/invokedynamic/MethodNames;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 19
        18: .line 468
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* runtime */
            iload 6 /* i */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        19: .line 470
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ -1
        end local 8 // java.lang.Object elem
        20: .line 464
      StackMap locals:
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.ListIterator.hasPrevious:()Z
            ifne 15
        end local 7 // java.util.ListIterator it
        end local 6 // int i
        21: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // java.util.List list
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block ignoredBlock
        end local 2 // org.jruby.runtime.builtin.IRubyObject val
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0       context  Lorg/jruby/runtime/ThreadContext;
            0   22     1          self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   22     2           val  Lorg/jruby/runtime/builtin/IRubyObject;
            0   22     3  ignoredBlock  Lorg/jruby/runtime/Block;
            1   22     4       runtime  Lorg/jruby/Ruby;
            2   22     5          list  Ljava/util/List;
            4   11     6             i  I
            6    9     7          elem  Ljava/lang/Object;
           13   21     6             i  I
           14   21     7            it  Ljava/util/ListIterator;
           16   20     8          elem  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"rindex"}, required = 1)
    MethodParameters:
              Name  Flags
      context       final
      self          final
      val           final
      ignoredBlock  final

  public static org.jruby.RubyArray to_a(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
         0: .line 479
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 480
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* list */
        start local 3 // java.util.List list
         2: .line 481
            aload 3 /* list */
            invokeinterface java.util.List.size:()I
            anewarray org.jruby.runtime.builtin.IRubyObject
            astore 4 /* array */
        start local 4 // org.jruby.runtime.builtin.IRubyObject[] array
         3: .line 482
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: aload 3 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 7
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby java.util.List org.jruby.runtime.builtin.IRubyObject[] int top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 6 /* elem */
        start local 6 // java.lang.Object elem
         6: .line 483
            aload 4 /* array */
            iload 5 /* i */
            iinc 5 /* i */ 1
            aload 2 /* runtime */
            aload 6 /* elem */
            invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
        end local 6 // java.lang.Object elem
         7: .line 482
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 485
            aload 2 /* runtime */
            aload 4 /* array */
            invokestatic org.jruby.RubyArray.newArrayMayCopy:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 5 // int i
        end local 4 // org.jruby.runtime.builtin.IRubyObject[] array
        end local 3 // java.util.List list
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  context  Lorg/jruby/runtime/ThreadContext;
            0    9     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            1    9     2  runtime  Lorg/jruby/Ruby;
            2    9     3     list  Ljava/util/List;
            3    9     4    array  [Lorg/jruby/runtime/builtin/IRubyObject;
            4    9     5        i  I
            6    7     6     elem  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"to_a", "to_ary"})
    MethodParameters:
         Name  Flags
      context  final
      self     final

  public static org.jruby.runtime.builtin.IRubyObject sort(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.Block block
         0: .line 491
            aload 1 /* self */
            aload 0 /* context */
            ldc "dup"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* dup */
        start local 3 // org.jruby.runtime.builtin.IRubyObject dup
         1: .line 492
            aload 3 /* dup */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* dupList */
        start local 4 // java.util.List dupList
         2: .line 493
            aload 3 /* dup */
            aload 1 /* self */
            if_acmpne 4
         3: .line 495
            new java.util.ArrayList
            dup
            aload 4 /* dupList */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* dupList */
         4: .line 498
      StackMap locals: org.jruby.runtime.builtin.IRubyObject java.util.List
      StackMap stack:
            aload 0 /* context */
            aload 4 /* dupList */
            aload 2 /* block */
            invokestatic org.jruby.javasupport.ext.JavaUtil$List.sortImpl:(Lorg/jruby/runtime/ThreadContext;Ljava/util/List;Lorg/jruby/runtime/Block;)V
         5: .line 499
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* dupList */
            invokestatic org.jruby.javasupport.Java.getInstance:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // java.util.List dupList
        end local 3 // org.jruby.runtime.builtin.IRubyObject dup
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  context  Lorg/jruby/runtime/ThreadContext;
            0    6     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2    block  Lorg/jruby/runtime/Block;
            1    6     3      dup  Lorg/jruby/runtime/builtin/IRubyObject;
            2    6     4  dupList  Ljava/util/List;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"sort", "ruby_sort"})
    MethodParameters:
         Name  Flags
      context  final
      self     final
      block    final

  public static org.jruby.runtime.builtin.IRubyObject sort_bang(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.Block block
         0: .line 505
            aload 1 /* self */
            invokestatic org.jruby.javasupport.JavaUtil.unwrapIfJavaObject:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* list */
        start local 3 // java.util.List list
         1: .line 506
            aload 0 /* context */
            aload 3 /* list */
            aload 2 /* block */
            invokestatic org.jruby.javasupport.ext.JavaUtil$List.sortImpl:(Lorg/jruby/runtime/ThreadContext;Ljava/util/List;Lorg/jruby/runtime/Block;)V
         2: .line 507
            aload 1 /* self */
            areturn
        end local 3 // java.util.List list
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2    block  Lorg/jruby/runtime/Block;
            1    3     3     list  Ljava/util/List;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"sort!"})
    MethodParameters:
         Name  Flags
      context  final
      self     final
      block    final

  private static void sortImpl(org.jruby.runtime.ThreadContext, java.util.List, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/util/List;Lorg/jruby/runtime/Block;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // java.util.List list
        start local 2 // org.jruby.runtime.Block block
         0: .line 511
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 2
         1: .line 512
            new org.jruby.javasupport.ext.JavaUtil$List$BlockComparator
            dup
            aload 0 /* context */
            aload 2 /* block */
            invokespecial org.jruby.javasupport.ext.JavaUtil$List$BlockComparator.<init>:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)V
            goto 3
         2: .line 513
      StackMap locals:
      StackMap stack:
            new org.jruby.javasupport.ext.JavaUtil$List$SpaceshipComparator
            dup
            aload 0 /* context */
            invokespecial org.jruby.javasupport.ext.JavaUtil$List$SpaceshipComparator.<init>:(Lorg/jruby/runtime/ThreadContext;)V
         3: .line 511
      StackMap locals:
      StackMap stack: java.util.Comparator
            astore 3 /* comparator */
        start local 3 // java.util.Comparator comparator
         4: .line 515
            aload 1 /* list */
            aload 3 /* comparator */
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         5: .line 516
            return
        end local 3 // java.util.Comparator comparator
        end local 2 // org.jruby.runtime.Block block
        end local 1 // java.util.List list
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0     context  Lorg/jruby/runtime/ThreadContext;
            0    6     1        list  Ljava/util/List;
            0    6     2       block  Lorg/jruby/runtime/Block;
            4    6     3  comparator  Ljava/util/Comparator;
    MethodParameters:
         Name  Flags
      context  final
      list     final
      block    final
}
SourceFile: "JavaUtil.java"
NestHost: org.jruby.javasupport.ext.JavaUtil
InnerClasses:
  public List = org.jruby.javasupport.ext.JavaUtil$List of org.jruby.javasupport.ext.JavaUtil
  private final BlockComparator = org.jruby.javasupport.ext.JavaUtil$List$BlockComparator of org.jruby.javasupport.ext.JavaUtil$List
  private final SpaceshipComparator = org.jruby.javasupport.ext.JavaUtil$List$SpaceshipComparator of org.jruby.javasupport.ext.JavaUtil$List
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyModule(name = {"Java::JavaUtil::List"})