public class org.jruby.RubyIO extends org.jruby.RubyObject implements org.jruby.util.io.IOEncodable, java.io.Closeable, java.io.Flushable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.RubyIO
  super_class: org.jruby.RubyObject
{
  public static final org.jruby.util.ByteList PARAGRAPH_SEPARATOR;
    descriptor: Lorg/jruby/util/ByteList;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String CLOSED_STREAM_MSG;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "closed stream"

  private static final org.jruby.runtime.ObjectAllocator IO_ALLOCATOR;
    descriptor: Lorg/jruby/runtime/ObjectAllocator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int FD_CLOEXEC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final org.jruby.util.io.Getline$Callback<org.jruby.RubyIO, org.jruby.runtime.builtin.IRubyObject> GETLINE;
    descriptor: Lorg/jruby/util/io/Getline$Callback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/jruby/util/io/Getline$Callback<Lorg/jruby/RubyIO;Lorg/jruby/runtime/builtin/IRubyObject;>;

  private static final org.jruby.util.io.Getline$Callback<org.jruby.RubyIO, org.jruby.RubyIO> GETLINE_YIELD;
    descriptor: Lorg/jruby/util/io/Getline$Callback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/jruby/util/io/Getline$Callback<Lorg/jruby/RubyIO;Lorg/jruby/RubyIO;>;

  private static final org.jruby.util.io.Getline$Callback<org.jruby.RubyIO, org.jruby.RubyArray> GETLINE_ARY;
    descriptor: Lorg/jruby/util/io/Getline$Callback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/jruby/util/io/Getline$Callback<Lorg/jruby/RubyIO;Lorg/jruby/RubyArray;>;

  private static final org.jruby.util.ByteList RECURSIVE_BYTELIST;
    descriptor: Lorg/jruby/util/ByteList;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.util.Set<java.lang.String> ALL_SPAWN_OPTIONS;
    descriptor: Ljava/util/Set;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  static final java.lang.String[] UNSUPPORTED_SPAWN_OPTIONS;
    descriptor: [Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  protected org.jruby.util.io.OpenFile openFile;
    descriptor: Lorg/jruby/util/io/OpenFile;
    flags: (0x0004) ACC_PROTECTED

  protected boolean popenSpecial;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$jruby$util$io$STDIO;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 120
            ldc Lorg/jruby/RubyIO;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.jruby.RubyIO.$assertionsDisabled:Z
         3: .line 122
            ldc "\n\n"
            invokestatic org.jruby.util.ByteList.create:(Ljava/lang/CharSequence;)Lorg/jruby/util/ByteList;
            putstatic org.jruby.RubyIO.PARAGRAPH_SEPARATOR:Lorg/jruby/util/ByteList;
         4: .line 298
            new org.jruby.RubyIO$1
            dup
            invokespecial org.jruby.RubyIO$1.<init>:()V
            putstatic org.jruby.RubyIO.IO_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
         5: .line 2341
            new org.jruby.RubyIO$2
            dup
            invokespecial org.jruby.RubyIO$2.<init>:()V
            putstatic org.jruby.RubyIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
         6: .line 2352
            new org.jruby.RubyIO$3
            dup
            invokespecial org.jruby.RubyIO$3.<init>:()V
            putstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
         7: .line 2365
            new org.jruby.RubyIO$4
            dup
            invokespecial org.jruby.RubyIO$4.<init>:()V
            putstatic org.jruby.RubyIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
         8: .line 2569
            ldc "[...]"
            invokestatic org.jruby.util.ByteList.create:(Ljava/lang/CharSequence;)Lorg/jruby/util/ByteList;
            putstatic org.jruby.RubyIO.RECURSIVE_BYTELIST:Lorg/jruby/util/ByteList;
         9: .line 4699
            bipush 10
            anewarray java.lang.String
            dup
            iconst_0
        10: .line 4700
            ldc "unsetenv_others"
            aastore
            dup
            iconst_1
        11: .line 4701
            ldc "prgroup"
            aastore
            dup
            iconst_2
        12: .line 4702
            ldc "new_pgroup"
            aastore
            dup
            iconst_3
        13: .line 4703
            ldc "rlimit_resourcename"
            aastore
            dup
            iconst_4
        14: .line 4704
            ldc "chdir"
            aastore
            dup
            iconst_5
        15: .line 4705
            ldc "umask"
            aastore
            dup
            bipush 6
        16: .line 4706
            ldc "in"
            aastore
            dup
            bipush 7
        17: .line 4707
            ldc "out"
            aastore
            dup
            bipush 8
        18: .line 4708
            ldc "err"
            aastore
            dup
            bipush 9
        19: .line 4709
            ldc "close_others"
            aastore
        20: .line 4699
            astore 0 /* SPAWN_OPTIONS */
        start local 0 // java.lang.String[] SPAWN_OPTIONS
        21: .line 4711
            bipush 10
            anewarray java.lang.String
            dup
            iconst_0
        22: .line 4712
            ldc "unsetenv_others"
            aastore
            dup
            iconst_1
        23: .line 4713
            ldc "prgroup"
            aastore
            dup
            iconst_2
        24: .line 4714
            ldc "new_pgroup"
            aastore
            dup
            iconst_3
        25: .line 4715
            ldc "rlimit_resourcename"
            aastore
            dup
            iconst_4
        26: .line 4716
            ldc "chdir"
            aastore
            dup
            iconst_5
        27: .line 4717
            ldc "umask"
            aastore
            dup
            bipush 6
        28: .line 4718
            ldc "in"
            aastore
            dup
            bipush 7
        29: .line 4719
            ldc "out"
            aastore
            dup
            bipush 8
        30: .line 4720
            ldc "err"
            aastore
            dup
            bipush 9
        31: .line 4721
            ldc "close_others"
            aastore
        32: .line 4711
            putstatic org.jruby.RubyIO.UNSUPPORTED_SPAWN_OPTIONS:[Ljava/lang/String;
        33: .line 4724
            new java.util.HashSet
            dup
            aload 0 /* SPAWN_OPTIONS */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putstatic org.jruby.RubyIO.ALL_SPAWN_OPTIONS:Ljava/util/Set;
        end local 0 // java.lang.String[] SPAWN_OPTIONS
        34: .line 4725
            return
      LocalVariableTable:
        Start  End  Slot           Name  Signature
           21   34     0  SPAWN_OPTIONS  [Ljava/lang/String;

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass type
         0: .line 128
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* type */
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 129
            return
        end local 2 // org.jruby.RubyClass type
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2     type  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      type     

  public void <init>(org.jruby.Ruby, java.io.OutputStream);
    descriptor: (Lorg/jruby/Ruby;Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.io.OutputStream outputStream
         0: .line 132
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* outputStream */
            iconst_1
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/io/OutputStream;Z)V
         1: .line 133
            return
        end local 2 // java.io.OutputStream outputStream
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/jruby/RubyIO;
            0    2     1       runtime  Lorg/jruby/Ruby;
            0    2     2  outputStream  Ljava/io/OutputStream;
    MethodParameters:
              Name  Flags
      runtime       
      outputStream  

  public void <init>(org.jruby.Ruby, java.io.OutputStream, boolean);
    descriptor: (Lorg/jruby/Ruby;Ljava/io/OutputStream;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.io.OutputStream outputStream
        start local 3 // boolean autoclose
         0: .line 136
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 139
            aload 2 /* outputStream */
            ifnonnull 3
         2: .line 140
            aload 1 /* runtime */
            ldc "Opening null stream"
            invokevirtual org.jruby.Ruby.newRuntimeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 143
      StackMap locals: org.jruby.RubyIO org.jruby.Ruby java.io.OutputStream int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.MakeOpenFile:()Lorg/jruby/util/io/OpenFile;
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
         4: .line 144
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            new org.jruby.util.io.ChannelFD
            dup
            aload 2 /* outputStream */
            invokestatic org.jruby.util.io.ChannelHelper.writableChannel:(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
         5: .line 145
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            bipush 66
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
         6: .line 146
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            iload 3 /* autoclose */
            invokevirtual org.jruby.util.io.OpenFile.setAutoclose:(Z)V
         7: .line 147
            return
        end local 3 // boolean autoclose
        end local 2 // java.io.OutputStream outputStream
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/jruby/RubyIO;
            0    8     1       runtime  Lorg/jruby/Ruby;
            0    8     2  outputStream  Ljava/io/OutputStream;
            0    8     3     autoclose  Z
    MethodParameters:
              Name  Flags
      runtime       
      outputStream  
      autoclose     

  public void <init>(org.jruby.Ruby, java.io.InputStream);
    descriptor: (Lorg/jruby/Ruby;Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.io.InputStream inputStream
         0: .line 150
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 152
            aload 2 /* inputStream */
            ifnonnull 3
         2: .line 153
            aload 1 /* runtime */
            ldc "Opening null stream"
            invokevirtual org.jruby.Ruby.newRuntimeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 156
      StackMap locals: org.jruby.RubyIO org.jruby.Ruby java.io.InputStream
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.MakeOpenFile:()Lorg/jruby/util/io/OpenFile;
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
         4: .line 157
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            new org.jruby.util.io.ChannelFD
            dup
            aload 2 /* inputStream */
            invokestatic org.jruby.util.io.ChannelHelper.readableChannel:(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
         5: .line 158
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            iconst_1
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
         6: .line 159
            return
        end local 2 // java.io.InputStream inputStream
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/jruby/RubyIO;
            0    7     1      runtime  Lorg/jruby/Ruby;
            0    7     2  inputStream  Ljava/io/InputStream;
    MethodParameters:
             Name  Flags
      runtime      
      inputStream  

  public void <init>(org.jruby.Ruby, java.nio.channels.Channel);
    descriptor: (Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.nio.channels.Channel channel
         0: .line 162
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            aload 2 /* channel */
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/nio/channels/Channel;)V
         1: .line 163
            return
        end local 2 // java.nio.channels.Channel channel
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2  channel  Ljava/nio/channels/Channel;
    MethodParameters:
         Name  Flags
      runtime  
      channel  

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass, java.nio.channels.Channel);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/nio/channels/Channel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass klass
        start local 3 // java.nio.channels.Channel channel
         0: .line 166
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 169
            aload 3 /* channel */
            ifnonnull 3
         2: .line 170
            aload 1 /* runtime */
            ldc "Opening null channel"
            invokevirtual org.jruby.Ruby.newRuntimeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 173
      StackMap locals: org.jruby.RubyIO org.jruby.Ruby org.jruby.RubyClass java.nio.channels.Channel
      StackMap stack:
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 4 /* context */
        start local 4 // org.jruby.runtime.ThreadContext context
         4: .line 174
            aload 0 /* this */
            aload 4 /* context */
            new org.jruby.util.io.ChannelFD
            dup
            aload 3 /* channel */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 3 /* channel */
            invokestatic org.jruby.util.io.ModeFlags.oflagsFrom:(Ljnr/posix/POSIX;Ljava/nio/channels/Channel;)I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            aload 4 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.initializeCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         5: .line 175
            return
        end local 4 // org.jruby.runtime.ThreadContext context
        end local 3 // java.nio.channels.Channel channel
        end local 2 // org.jruby.RubyClass klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/RubyIO;
            0    6     1  runtime  Lorg/jruby/Ruby;
            0    6     2    klass  Lorg/jruby/RubyClass;
            0    6     3  channel  Ljava/nio/channels/Channel;
            4    6     4  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      runtime  
      klass    
      channel  

  public void <init>(org.jruby.Ruby, org.jruby.util.ShellLauncher$POpenProcess, org.jruby.util.io.IOOptions);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ShellLauncher$POpenProcess;Lorg/jruby/util/io/IOOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.util.ShellLauncher$POpenProcess process
        start local 3 // org.jruby.util.io.IOOptions ioOptions
         0: .line 178
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 180
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aconst_null
            aload 3 /* ioOptions */
            invokevirtual org.jruby.RubyIO.updateIOOptionsFromOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;Lorg/jruby/util/io/IOOptions;)Lorg/jruby/util/io/IOOptions;
            astore 3 /* ioOptions */
         2: .line 182
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.MakeOpenFile:()Lorg/jruby/util/io/OpenFile;
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
         3: .line 184
            aload 0 /* this */
            aload 1 /* runtime */
            aload 3 /* ioOptions */
            invokevirtual org.jruby.util.io.IOOptions.getModeFlags:()Lorg/jruby/util/io/ModeFlags;
            aload 2 /* process */
            invokevirtual org.jruby.RubyIO.setupPopen:(Lorg/jruby/Ruby;Lorg/jruby/util/io/ModeFlags;Lorg/jruby/util/ShellLauncher$POpenProcess;)V
         4: .line 185
            return
        end local 3 // org.jruby.util.io.IOOptions ioOptions
        end local 2 // org.jruby.util.ShellLauncher$POpenProcess process
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/jruby/RubyIO;
            0    5     1    runtime  Lorg/jruby/Ruby;
            0    5     2    process  Lorg/jruby/util/ShellLauncher$POpenProcess;
            0    5     3  ioOptions  Lorg/jruby/util/io/IOOptions;
    MethodParameters:
           Name  Flags
      runtime    
      process    
      ioOptions  

  public static org.jruby.RubyIO prepStdio(org.jruby.Ruby, java.io.InputStream, java.nio.channels.Channel, int, org.jruby.RubyClass, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/io/InputStream;Ljava/nio/channels/Channel;ILorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/RubyIO;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.io.InputStream f
        start local 2 // java.nio.channels.Channel c
        start local 3 // int fmode
        start local 4 // org.jruby.RubyClass klass
        start local 5 // java.lang.String path
         0: .line 190
            aload 0 /* runtime */
            aload 2 /* c */
            iload 3 /* fmode */
            ldc 65536
            ior
            getstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
            ior
            aload 4 /* klass */
            aload 5 /* path */
            invokestatic org.jruby.RubyIO.prepIO:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;ILorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/RubyIO;
            astore 7 /* io */
        start local 7 // org.jruby.RubyIO io
         1: .line 192
            aload 7 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 6 /* fptr */
        start local 6 // org.jruby.util.io.OpenFile fptr
         2: .line 195
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            invokeinterface jnr.posix.POSIX.isNative:()Z
            ifeq 3
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 5
         3: .line 197
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.RubyIO
      StackMap stack:
            aload 1 /* f */
            getstatic java.lang.System.in:Ljava/io/InputStream;
            if_acmpne 5
         4: .line 198
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            iconst_0
            putfield org.jruby.util.io.ChannelFD.realFileno:I
         5: .line 202
      StackMap locals:
      StackMap stack:
            aload 6 /* fptr */
            iload 3 /* fmode */
            invokestatic org.jruby.RubyIO.prepStdioEcflags:(Lorg/jruby/util/io/OpenFile;I)V
         6: .line 203
            aload 6 /* fptr */
            aload 1 /* f */
            putfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
         7: .line 206
            aload 0 /* runtime */
            aload 6 /* fptr */
            aload 7 /* io */
            invokestatic org.jruby.RubyIO.recheckTTY:(Lorg/jruby/Ruby;Lorg/jruby/util/io/OpenFile;Lorg/jruby/RubyIO;)Lorg/jruby/RubyIO;
            areturn
        end local 7 // org.jruby.RubyIO io
        end local 6 // org.jruby.util.io.OpenFile fptr
        end local 5 // java.lang.String path
        end local 4 // org.jruby.RubyClass klass
        end local 3 // int fmode
        end local 2 // java.nio.channels.Channel c
        end local 1 // java.io.InputStream f
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  runtime  Lorg/jruby/Ruby;
            0    8     1        f  Ljava/io/InputStream;
            0    8     2        c  Ljava/nio/channels/Channel;
            0    8     3    fmode  I
            0    8     4    klass  Lorg/jruby/RubyClass;
            0    8     5     path  Ljava/lang/String;
            2    8     6     fptr  Lorg/jruby/util/io/OpenFile;
            1    8     7       io  Lorg/jruby/RubyIO;
    MethodParameters:
         Name  Flags
      runtime  
      f        
      c        
      fmode    
      klass    
      path     

  public static org.jruby.RubyIO prepStdio(org.jruby.Ruby, java.io.OutputStream, java.nio.channels.Channel, int, org.jruby.RubyClass, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/io/OutputStream;Ljava/nio/channels/Channel;ILorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/RubyIO;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.io.OutputStream f
        start local 2 // java.nio.channels.Channel c
        start local 3 // int fmode
        start local 4 // org.jruby.RubyClass klass
        start local 5 // java.lang.String path
         0: .line 212
            aload 0 /* runtime */
            aload 2 /* c */
            iload 3 /* fmode */
            ldc 65536
            ior
            getstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
            ior
            aload 4 /* klass */
            aload 5 /* path */
            invokestatic org.jruby.RubyIO.prepIO:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;ILorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/RubyIO;
            astore 7 /* io */
        start local 7 // org.jruby.RubyIO io
         1: .line 214
            aload 7 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 6 /* fptr */
        start local 6 // org.jruby.util.io.OpenFile fptr
         2: .line 217
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            invokeinterface jnr.posix.POSIX.isNative:()Z
            ifeq 3
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 8
         3: .line 219
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.RubyIO
      StackMap stack:
            aload 1 /* f */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            if_acmpne 6
         4: .line 220
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            iconst_1
            putfield org.jruby.util.io.ChannelFD.realFileno:I
         5: .line 221
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 1 /* f */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            if_acmpne 8
         7: .line 222
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            iconst_2
            putfield org.jruby.util.io.ChannelFD.realFileno:I
         8: .line 226
      StackMap locals:
      StackMap stack:
            aload 6 /* fptr */
            iload 3 /* fmode */
            invokestatic org.jruby.RubyIO.prepStdioEcflags:(Lorg/jruby/util/io/OpenFile;I)V
         9: .line 227
            aload 6 /* fptr */
            aload 1 /* f */
            putfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
        10: .line 229
            aload 0 /* runtime */
            aload 6 /* fptr */
            aload 7 /* io */
            invokestatic org.jruby.RubyIO.recheckTTY:(Lorg/jruby/Ruby;Lorg/jruby/util/io/OpenFile;Lorg/jruby/RubyIO;)Lorg/jruby/RubyIO;
            areturn
        end local 7 // org.jruby.RubyIO io
        end local 6 // org.jruby.util.io.OpenFile fptr
        end local 5 // java.lang.String path
        end local 4 // org.jruby.RubyClass klass
        end local 3 // int fmode
        end local 2 // java.nio.channels.Channel c
        end local 1 // java.io.OutputStream f
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  runtime  Lorg/jruby/Ruby;
            0   11     1        f  Ljava/io/OutputStream;
            0   11     2        c  Ljava/nio/channels/Channel;
            0   11     3    fmode  I
            0   11     4    klass  Lorg/jruby/RubyClass;
            0   11     5     path  Ljava/lang/String;
            2   11     6     fptr  Lorg/jruby/util/io/OpenFile;
            1   11     7       io  Lorg/jruby/RubyIO;
    MethodParameters:
         Name  Flags
      runtime  
      f        
      c        
      fmode    
      klass    
      path     

  private static org.jruby.RubyIO recheckTTY(org.jruby.Ruby, org.jruby.util.io.OpenFile, org.jruby.RubyIO);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/io/OpenFile;Lorg/jruby/RubyIO;)Lorg/jruby/RubyIO;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.io.OpenFile fptr
        start local 2 // org.jruby.RubyIO io
         0: .line 234
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.checkTTY:()V
         1: .line 236
            aload 2 /* io */
            areturn
        end local 2 // org.jruby.RubyIO io
        end local 1 // org.jruby.util.io.OpenFile fptr
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
            0    2     1     fptr  Lorg/jruby/util/io/OpenFile;
            0    2     2       io  Lorg/jruby/RubyIO;
    MethodParameters:
         Name  Flags
      runtime  
      fptr     
      io       

  private static void prepStdioEcflags(org.jruby.util.io.OpenFile, int);
    descriptor: (Lorg/jruby/util/io/OpenFile;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.util.io.OpenFile fptr
        start local 1 // int fmode
         0: .line 241
            aload 0 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         1: .line 243
            aload 0 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            dup
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            getstatic org.jruby.util.io.EncodingUtils.ECONV_DEFAULT_NEWLINE_DECORATOR:I
            ior
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
         2: .line 244
            getstatic org.jruby.util.io.EncodingUtils.TEXTMODE_NEWLINE_DECORATOR_ON_WRITE:I
            ifeq 10
         3: .line 245
            aload 0 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            dup
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            getstatic org.jruby.util.io.EncodingUtils.TEXTMODE_NEWLINE_DECORATOR_ON_WRITE:I
            ior
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
         4: .line 246
            iload 1 /* fmode */
            iconst_1
            iand
            ifeq 10
         5: .line 247
            aload 0 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            dup
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            sipush 256
            ior
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
         6: .line 250
            goto 10
      StackMap locals: org.jruby.util.io.OpenFile int int
      StackMap stack: java.lang.Throwable
         7: astore 3
         8: .line 251
            iload 2 /* locked */
            ifeq 9
            aload 0 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 252
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        10: .line 251
      StackMap locals:
      StackMap stack:
            iload 2 /* locked */
            ifeq 11
            aload 0 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean locked
        end local 1 // int fmode
        end local 0 // org.jruby.util.io.OpenFile fptr
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    fptr  Lorg/jruby/util/io/OpenFile;
            0   12     1   fmode  I
            1   12     2  locked  Z
      Exception table:
        from    to  target  type
           1     7       7  any
    MethodParameters:
       Name  Flags
      fptr   
      fmode  

  private static org.jruby.RubyIO prepIO(org.jruby.Ruby, java.nio.channels.Channel, int, org.jruby.RubyClass, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/nio/channels/Channel;ILorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/RubyIO;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=5
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.nio.channels.Channel fd
        start local 2 // int fmode
        start local 3 // org.jruby.RubyClass klass
        start local 4 // java.lang.String path
         0: .line 258
            aload 3 /* klass */
            invokevirtual org.jruby.RubyClass.allocate:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyIO
            astore 6 /* io */
        start local 6 // org.jruby.RubyIO io
         1: .line 260
            aload 6 /* io */
            invokevirtual org.jruby.RubyIO.MakeOpenFile:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fp */
        start local 5 // org.jruby.util.io.OpenFile fp
         2: .line 261
            aload 5 /* fp */
            aload 1 /* fd */
            invokevirtual org.jruby.util.io.OpenFile.setChannel:(Ljava/nio/channels/Channel;)V
         3: .line 270
            aload 5 /* fp */
            iload 2 /* fmode */
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
         4: .line 271
            aload 5 /* fp */
            invokevirtual org.jruby.util.io.OpenFile.checkTTY:()V
         5: .line 272
            aload 4 /* path */
            ifnull 6
            aload 5 /* fp */
            aload 4 /* path */
            invokevirtual org.jruby.util.io.OpenFile.setPath:(Ljava/lang/String;)V
         6: .line 275
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.RubyIO
      StackMap stack:
            aload 6 /* io */
            areturn
        end local 6 // org.jruby.RubyIO io
        end local 5 // org.jruby.util.io.OpenFile fp
        end local 4 // java.lang.String path
        end local 3 // org.jruby.RubyClass klass
        end local 2 // int fmode
        end local 1 // java.nio.channels.Channel fd
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  runtime  Lorg/jruby/Ruby;
            0    7     1       fd  Ljava/nio/channels/Channel;
            0    7     2    fmode  I
            0    7     3    klass  Lorg/jruby/RubyClass;
            0    7     4     path  Ljava/lang/String;
            2    7     5       fp  Lorg/jruby/util/io/OpenFile;
            1    7     6       io  Lorg/jruby/RubyIO;
    MethodParameters:
         Name  Flags
      runtime  
      fd       
      fmode    
      klass    
      path     

  public static org.jruby.RubyIO newIO(org.jruby.Ruby, java.nio.channels.Channel);
    descriptor: (Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/RubyIO;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.nio.channels.Channel channel
         0: .line 279
            new org.jruby.RubyIO
            dup
            aload 0 /* runtime */
            aload 1 /* channel */
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)V
            areturn
        end local 1 // java.nio.channels.Channel channel
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1  channel  Ljava/nio/channels/Channel;
    MethodParameters:
         Name  Flags
      runtime  
      channel  

  public org.jruby.util.io.OpenFile getOpenFile();
    descriptor: ()Lorg/jruby/util/io/OpenFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 283
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public org.jruby.util.io.OpenFile getOpenFileChecked();
    descriptor: ()Lorg/jruby/util/io/OpenFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 287
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.checkInitialized:()V
         1: .line 288
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         2: .line 289
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/RubyIO;

  public org.jruby.util.io.OpenFile getOpenFileInitialized();
    descriptor: ()Lorg/jruby/util/io/OpenFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 294
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.checkInitialized:()V
         1: .line 295
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/RubyIO;

  public org.jruby.runtime.ClassIndex getNativeClassIndex();
    descriptor: ()Lorg/jruby/runtime/ClassIndex;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 310
            getstatic org.jruby.runtime.ClassIndex.FILE:Lorg/jruby/runtime/ClassIndex;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public static org.jruby.RubyClass createIOClass(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 314
            aload 0 /* runtime */
            ldc "IO"
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            getstatic org.jruby.RubyIO.IO_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
            invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 1 /* ioClass */
        start local 1 // org.jruby.RubyClass ioClass
         1: .line 316
            aload 0 /* runtime */
            aload 1 /* ioClass */
            invokevirtual org.jruby.Ruby.setIO:(Lorg/jruby/RubyClass;)V
         2: .line 318
            aload 1 /* ioClass */
            getstatic org.jruby.runtime.ClassIndex.IO:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.RubyClass.setClassIndex:(Lorg/jruby/runtime/ClassIndex;)V
         3: .line 319
            aload 1 /* ioClass */
            ldc Lorg/jruby/RubyIO;
            invokevirtual org.jruby.RubyClass.setReifiedClass:(Ljava/lang/Class;)V
         4: .line 321
            aload 1 /* ioClass */
            new org.jruby.RubyModule$JavaClassKindOf
            dup
            ldc Lorg/jruby/RubyIO;
            invokespecial org.jruby.RubyModule$JavaClassKindOf.<init>:(Ljava/lang/Class;)V
            putfield org.jruby.RubyClass.kindOf:Lorg/jruby/RubyModule$KindOf;
         5: .line 323
            aload 1 /* ioClass */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getEnumerable:()Lorg/jruby/RubyModule;
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         6: .line 325
            aload 1 /* ioClass */
            ldc Lorg/jruby/RubyIO;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         7: .line 328
            aload 1 /* ioClass */
            ldc "SEEK_SET"
            aload 0 /* runtime */
            iconst_0
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         8: .line 329
            aload 1 /* ioClass */
            ldc "SEEK_CUR"
            aload 0 /* runtime */
            iconst_1
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         9: .line 330
            aload 1 /* ioClass */
            ldc "SEEK_END"
            aload 0 /* runtime */
            iconst_2
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        10: .line 332
            aload 1 /* ioClass */
            ldc "WaitReadable"
            invokevirtual org.jruby.RubyClass.defineModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            pop
        11: .line 333
            aload 1 /* ioClass */
            ldc "WaitWritable"
            invokevirtual org.jruby.RubyClass.defineModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            pop
        12: .line 335
            aload 1 /* ioClass */
            areturn
        end local 1 // org.jruby.RubyClass ioClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0  runtime  Lorg/jruby/Ruby;
            1   13     1  ioClass  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  

  public java.io.OutputStream getOutStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 339
            new org.jruby.RubyIO$5
            dup
            aload 0 /* this */
            invokespecial org.jruby.RubyIO$5.<init>:(Lorg/jruby/RubyIO;)V
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public java.io.InputStream getInStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 370
            new org.jruby.RubyIO$6
            dup
            aload 0 /* this */
            invokespecial org.jruby.RubyIO$6.<init>:(Lorg/jruby/RubyIO;)V
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public java.nio.channels.Channel getChannel();
    descriptor: ()Ljava/nio/channels/Channel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 423
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.channel:()Ljava/nio/channels/Channel;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  protected org.jruby.RubyIO reopenIO(org.jruby.runtime.ThreadContext, org.jruby.RubyIO);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;)Lorg/jruby/RubyIO;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyIO nfile
         0: .line 428
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 431
            lconst_0
            lstore 8 /* pos */
        start local 8 // long pos
         2: .line 433
            aload 3 /* runtime */
            aload 2 /* nfile */
            invokestatic org.jruby.util.TypeConverter.ioGetIO:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            astore 2 /* nfile */
         3: .line 434
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         4: .line 435
            aload 2 /* nfile */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* orig */
        start local 5 // org.jruby.util.io.OpenFile orig
         5: .line 437
            aload 4 /* fptr */
            aload 5 /* orig */
            if_acmpne 6
            aload 0 /* this */
            areturn
         6: .line 438
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.RubyIO org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.util.io.OpenFile top top long
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.IS_PREP_STDIO:()Z
            ifeq 11
         7: .line 439
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
            getstatic java.lang.System.in:Ljava/io/InputStream;
            if_acmpne 8
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.isReadable:()Z
            ifeq 10
         8: .line 440
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            if_acmpne 9
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifeq 10
         9: .line 441
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            if_acmpne 11
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifne 11
        10: .line 442
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            new java.lang.StringBuilder
            dup
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.PREP_STDIO_NAME:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " can't change access mode from \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* fptr */
            aload 3 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.getModeAsString:(Lorg/jruby/Ruby;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" to \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* orig */
            aload 3 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.getModeAsString:(Lorg/jruby/Ruby;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        11: .line 447
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 10 /* locked */
        start local 10 // boolean locked
        12: .line 449
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifeq 15
        13: .line 450
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 20
        14: .line 451
            aload 3 /* runtime */
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        15: .line 453
      StackMap locals: int
      StackMap stack:
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.tell:(Lorg/jruby/runtime/ThreadContext;)J
            pop2
        16: .line 455
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 11
        18: .line 456
            iload 10 /* locked */
            ifeq 19
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        19: .line 457
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        20: .line 456
      StackMap locals:
      StackMap stack:
            iload 10 /* locked */
            ifeq 21
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        21: .line 459
      StackMap locals:
      StackMap stack:
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 10 /* locked */
        22: .line 461
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.isReadable:()Z
            ifeq 24
        23: .line 462
            aload 5 /* orig */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.tell:(Lorg/jruby/runtime/ThreadContext;)J
            lstore 8 /* pos */
        24: .line 464
      StackMap locals:
      StackMap stack:
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifeq 30
        25: .line 465
            aload 5 /* orig */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 30
        26: .line 466
            aload 3 /* runtime */
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        27: .line 468
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        28: .line 469
            iload 10 /* locked */
            ifeq 29
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        29: .line 470
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        30: .line 469
      StackMap locals:
      StackMap stack:
            iload 10 /* locked */
            ifeq 31
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        31: .line 474
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 10 /* locked */
        32: .line 475
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 11 /* locked2 */
        start local 11 // boolean locked2
        33: .line 477
            aload 4 /* fptr */
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            ldc 65544
            iand
            ior
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        34: .line 478
            aload 4 /* fptr */
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getProcess:()Ljava/lang/Process;
            invokevirtual org.jruby.util.io.OpenFile.setProcess:(Ljava/lang/Process;)V
        35: .line 479
            aload 4 /* fptr */
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getLineNumber:()I
            invokevirtual org.jruby.util.io.OpenFile.setLineNumber:(I)V
        36: .line 480
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            ifnull 37
            aload 4 /* fptr */
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.util.io.OpenFile.setPath:(Ljava/lang/String;)V
            goto 38
        37: .line 481
      StackMap locals: int
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.IS_PREP_STDIO:()Z
            ifne 38
            aload 4 /* fptr */
            aconst_null
            invokevirtual org.jruby.util.io.OpenFile.setPath:(Ljava/lang/String;)V
        38: .line 482
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getFinalizer:()Lorg/jruby/util/io/OpenFile$Finalizer;
            invokevirtual org.jruby.util.io.OpenFile.setFinalizer:(Lorg/jruby/util/io/OpenFile$Finalizer;)V
        39: .line 490
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            astore 6 /* fd */
        start local 6 // org.jruby.util.io.ChannelFD fd
        40: .line 491
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            astore 7 /* fd2 */
        start local 7 // org.jruby.util.io.ChannelFD fd2
        41: .line 492
            aload 6 /* fd */
            aload 7 /* fd2 */
            if_acmpeq 57
        42: .line 493
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.IS_PREP_STDIO:()Z
            ifne 43
            aload 6 /* fd */
            invokevirtual org.jruby.util.io.ChannelFD.bestFileno:()I
            iconst_2
            if_icmple 43
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
            ifnonnull 46
        43: .line 495
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.RubyIO org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.util.io.OpenFile org.jruby.util.io.ChannelFD org.jruby.util.io.ChannelFD long int int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* runtime */
            aload 5 /* orig */
            aload 7 /* fd2 */
            aload 6 /* fd */
            invokevirtual org.jruby.RubyIO.checkReopenCloexecDup2:(Lorg/jruby/Ruby;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/util/io/ChannelFD;)V
        44: .line 497
            aload 4 /* fptr */
            aload 6 /* fd */
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        45: .line 504
            goto 54
        46: .line 505
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
            ifnull 50
        47: .line 506
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
            invokeinterface java.io.Closeable.close:()V
        48: .line 507
            goto 50
      StackMap locals:
      StackMap stack: java.io.IOException
        49: pop
        50: .line 509
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.clearStdio:()V
        51: .line 510
            aload 4 /* fptr */
            aconst_null
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        52: .line 511
            aload 0 /* this */
            aload 3 /* runtime */
            aload 5 /* orig */
            aload 7 /* fd2 */
            aload 6 /* fd */
            invokevirtual org.jruby.RubyIO.checkReopenCloexecDup2:(Lorg/jruby/Ruby;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/util/io/ChannelFD;)V
        53: .line 513
            aload 4 /* fptr */
            aload 6 /* fd */
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        54: .line 517
      StackMap locals:
      StackMap stack:
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.isReadable:()Z
            ifeq 57
            lload 8 /* pos */
            lconst_0
            lcmp
            iflt 57
        55: .line 518
            aload 4 /* fptr */
            aload 1 /* context */
            aload 3 /* runtime */
            lload 8 /* pos */
            invokevirtual org.jruby.util.io.OpenFile.checkReopenSeek:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;J)V
        56: .line 519
            aload 5 /* orig */
            aload 1 /* context */
            aload 3 /* runtime */
            lload 8 /* pos */
            invokevirtual org.jruby.util.io.OpenFile.checkReopenSeek:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;J)V
        57: .line 523
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isBinmode:()Z
            ifeq 64
        58: .line 524
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.setBinmode:()V
        59: .line 526
            goto 64
        end local 7 // org.jruby.util.io.ChannelFD fd2
        end local 6 // org.jruby.util.io.ChannelFD fd
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.RubyIO org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.util.io.OpenFile top top long int int
      StackMap stack: java.lang.Throwable
        60: astore 12
        61: .line 527
            iload 11 /* locked2 */
            ifeq 62
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        62: .line 528
      StackMap locals: java.lang.Throwable
      StackMap stack:
            iload 10 /* locked */
            ifeq 63
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        63: .line 529
      StackMap locals:
      StackMap stack:
            aload 12
            athrow
        start local 6 // org.jruby.util.io.ChannelFD fd
        start local 7 // org.jruby.util.io.ChannelFD fd2
        64: .line 527
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.RubyIO org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.util.io.OpenFile org.jruby.util.io.ChannelFD org.jruby.util.io.ChannelFD long int int
      StackMap stack:
            iload 11 /* locked2 */
            ifeq 65
            aload 5 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        65: .line 528
      StackMap locals:
      StackMap stack:
            iload 10 /* locked */
            ifeq 66
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        66: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 11 // boolean locked2
        end local 10 // boolean locked
        end local 8 // long pos
        end local 7 // org.jruby.util.io.ChannelFD fd2
        end local 6 // org.jruby.util.io.ChannelFD fd
        end local 5 // org.jruby.util.io.OpenFile orig
        end local 4 // org.jruby.util.io.OpenFile fptr
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.RubyIO nfile
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   67     0     this  Lorg/jruby/RubyIO;
            0   67     1  context  Lorg/jruby/runtime/ThreadContext;
            0   67     2    nfile  Lorg/jruby/RubyIO;
            1   67     3  runtime  Lorg/jruby/Ruby;
            4   67     4     fptr  Lorg/jruby/util/io/OpenFile;
            5   67     5     orig  Lorg/jruby/util/io/OpenFile;
           40   60     6       fd  Lorg/jruby/util/io/ChannelFD;
           64   67     6       fd  Lorg/jruby/util/io/ChannelFD;
           41   60     7      fd2  Lorg/jruby/util/io/ChannelFD;
           64   67     7      fd2  Lorg/jruby/util/io/ChannelFD;
            2   67     8      pos  J
           12   67    10   locked  Z
           33   67    11  locked2  Z
      Exception table:
        from    to  target  type
          12    17      17  any
          22    27      27  any
          47    48      49  Class java.io.IOException
          33    60      60  any
    MethodParameters:
         Name  Flags
      context  
      nfile    

  private void checkReopenCloexecDup2(org.jruby.Ruby, org.jruby.util.io.OpenFile, org.jruby.util.io.ChannelFD, org.jruby.util.io.ChannelFD);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/util/io/ChannelFD;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.util.io.OpenFile orig
        start local 3 // org.jruby.util.io.ChannelFD oldfd
        start local 4 // org.jruby.util.io.ChannelFD newfd
         0: .line 537
            new org.jruby.util.io.PosixShim
            dup
            aload 1 /* runtime */
            invokespecial org.jruby.util.io.PosixShim.<init>:(Lorg/jruby/Ruby;)V
            aload 3 /* oldfd */
            aload 4 /* newfd */
            invokestatic org.jruby.util.io.OpenFile.cloexecDup2:(Lorg/jruby/util/io/PosixShim;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/util/io/ChannelFD;)I
            pop
         1: .line 538
            return
        end local 4 // org.jruby.util.io.ChannelFD newfd
        end local 3 // org.jruby.util.io.ChannelFD oldfd
        end local 2 // org.jruby.util.io.OpenFile orig
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2     orig  Lorg/jruby/util/io/OpenFile;
            0    2     3    oldfd  Lorg/jruby/util/io/ChannelFD;
            0    2     4    newfd  Lorg/jruby/util/io/ChannelFD;
    MethodParameters:
         Name  Flags
      runtime  
      orig     
      oldfd    
      newfd    

  private void setBinmode();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 544
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 1 /* fptr */
        start local 1 // org.jruby.util.io.OpenFile fptr
         1: .line 545
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 2 /* locked */
        start local 2 // boolean locked
         2: .line 547
            aload 1 /* fptr */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            ifnull 4
         3: .line 548
            aload 1 /* fptr */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            invokevirtual org.jcodings.transcode.EConv.binmode:()V
         4: .line 549
      StackMap locals: org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 1 /* fptr */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            ifnull 6
         5: .line 550
            aload 1 /* fptr */
            getfield org.jruby.util.io.OpenFile.writeconv:Lorg/jcodings/transcode/EConv;
            invokevirtual org.jcodings.transcode.EConv.binmode:()V
         6: .line 551
      StackMap locals:
      StackMap stack:
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.setBinmode:()V
         7: .line 552
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.clearTextMode:()V
         8: .line 553
            aload 1 /* fptr */
            dup
            getfield org.jruby.util.io.OpenFile.writeconvPreEcflags:I
            sipush -16129
            iand
            putfield org.jruby.util.io.OpenFile.writeconvPreEcflags:I
         9: .line 554
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.defined:()Z
            pop
        10: .line 564
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 3
        12: .line 565
            iload 2 /* locked */
            ifeq 13
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        13: .line 566
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3
            athrow
        14: .line 565
      StackMap locals:
      StackMap stack:
            iload 2 /* locked */
            ifeq 15
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        15: .line 567
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean locked
        end local 1 // org.jruby.util.io.OpenFile fptr
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lorg/jruby/RubyIO;
            1   16     1    fptr  Lorg/jruby/util/io/OpenFile;
            2   16     2  locked  Z
      Exception table:
        from    to  target  type
           2    11      11  any

  public org.jruby.runtime.builtin.IRubyObject reopen(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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=17, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 572
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 573
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* nil */
        start local 4 // org.jruby.runtime.builtin.IRubyObject nil
         2: .line 574
            aload 0 /* this */
            astore 5 /* file */
        start local 5 // org.jruby.RubyIO file
         3: .line 575
            aload 4 /* nil */
            astore 6 /* fname */
        start local 6 // org.jruby.runtime.builtin.IRubyObject fname
         4: aload 4 /* nil */
            astore 7 /* nmode */
        start local 7 // org.jruby.runtime.builtin.IRubyObject nmode
         5: aload 4 /* nil */
            astore 8 /* opt */
        start local 8 // org.jruby.runtime.builtin.IRubyObject opt
         6: .line 576
            iconst_1
            newarray 10
            astore 9 /* oflags_p */
        start local 9 // int[] oflags_p
         7: .line 579
            aload 2 /* args */
            arraylength
            tableswitch { // 1 - 3
                    1: 17
                    2: 10
                    3: 8
              default: 18
          }
         8: .line 581
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int[]
      StackMap stack:
            aload 3 /* runtime */
            aload 2 /* args */
            iconst_2
            aaload
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* opt */
         9: .line 582
            aload 8 /* opt */
            aload 4 /* nil */
            if_acmpne 10
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            iconst_3
            iconst_2
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
        10: .line 584
      StackMap locals:
      StackMap stack:
            aload 8 /* opt */
            aload 4 /* nil */
            if_acmpne 16
        11: .line 585
            aload 3 /* runtime */
            aload 2 /* args */
            iconst_1
            aaload
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* opt */
        12: .line 586
            aload 8 /* opt */
            aload 4 /* nil */
            if_acmpne 17
        13: .line 587
            aload 2 /* args */
            iconst_1
            aaload
            astore 7 /* nmode */
        14: .line 588
            aload 4 /* nil */
            astore 8 /* opt */
        15: .line 590
            goto 17
        16: .line 591
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aaload
            astore 7 /* nmode */
        17: .line 594
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            astore 6 /* fname */
        18: .line 595
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
        19: .line 596
            arraylength
            iconst_1
            if_icmpne 23
        20: .line 597
            aload 3 /* runtime */
            aload 6 /* fname */
            invokestatic org.jruby.util.TypeConverter.ioCheckIO:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11 /* tmp */
        start local 11 // org.jruby.runtime.builtin.IRubyObject tmp
        21: .line 598
            aload 11 /* tmp */
            aload 4 /* nil */
            if_acmpeq 23
        22: .line 599
            aload 5 /* file */
            aload 1 /* context */
            aload 11 /* tmp */
            checkcast org.jruby.RubyIO
            invokevirtual org.jruby.RubyIO.reopenIO:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;)Lorg/jruby/RubyIO;
            areturn
        end local 11 // org.jruby.runtime.builtin.IRubyObject tmp
        23: .line 603
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 1 /* context */
            aload 6 /* fname */
            invokestatic org.jruby.RubyFile.get_path:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            invokestatic org.jruby.util.StringSupport.checkEmbeddedNulls:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            astore 6 /* fname */
        24: .line 606
            aload 5 /* file */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            astore 10 /* fptr */
        start local 10 // org.jruby.util.io.OpenFile fptr
        25: .line 607
            aload 10 /* fptr */
            ifnonnull 27
        26: .line 608
            aload 5 /* file */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.MakeOpenFile:()Lorg/jruby/util/io/OpenFile;
            dup_x1
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            astore 10 /* fptr */
        27: .line 611
      StackMap locals: org.jruby.util.io.OpenFile
      StackMap stack:
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 11 /* locked */
        start local 11 // boolean locked
        28: .line 613
            aload 7 /* nmode */
            aload 4 /* nil */
            if_acmpne 29
            aload 8 /* opt */
            aload 4 /* nil */
            if_acmpeq 41
        29: .line 614
      StackMap locals: int
      StackMap stack:
            new org.jruby.util.io.IOEncodable$ConvConfig
            dup
            invokespecial org.jruby.util.io.IOEncodable$ConvConfig.<init>:()V
            astore 12 /* convconfig */
        start local 12 // org.jruby.util.io.IOEncodable$ConvConfig convconfig
        30: .line 615
            aload 7 /* nmode */
            aconst_null
            invokestatic org.jruby.util.io.EncodingUtils.vmodeVperm:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            astore 13 /* vmode_vperm */
        start local 13 // java.lang.Object vmode_vperm
        31: .line 616
            iconst_1
            newarray 10
            astore 14 /* fmode_p */
        start local 14 // int[] fmode_p
        32: .line 618
            aload 1 /* context */
            aload 12 /* convconfig */
            aload 13 /* vmode_vperm */
            aload 8 /* opt */
            aload 9 /* oflags_p */
            aload 14 /* fmode_p */
            invokestatic org.jruby.util.io.EncodingUtils.extractModeEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;[I[I)V
        33: .line 619
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.IS_PREP_STDIO:()Z
            ifeq 38
        34: .line 620
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            iconst_3
            iand
            aload 14 /* fmode_p */
            iconst_0
            iaload
            iconst_3
            iand
            iand
        35: .line 621
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            iconst_3
            iand
        36: .line 620
            if_icmpeq 38
        37: .line 622
            aload 3 /* runtime */
            new java.lang.StringBuilder
            dup
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.PREP_STDIO_NAME:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " can't change access mode from \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* fptr */
            aload 3 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.getModeAsString:(Lorg/jruby/Ruby;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" to \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 14 /* fmode_p */
            iconst_0
            iaload
            invokestatic org.jruby.util.io.OpenFile.getStringFromMode:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        38: .line 624
      StackMap locals: org.jruby.util.io.IOEncodable$ConvConfig java.lang.Object int[]
      StackMap stack:
            aload 10 /* fptr */
            aload 14 /* fmode_p */
            iconst_0
            iaload
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        39: .line 625
            aload 10 /* fptr */
            aload 12 /* convconfig */
            putfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
        end local 14 // int[] fmode_p
        end local 13 // java.lang.Object vmode_vperm
        end local 12 // org.jruby.util.io.IOEncodable$ConvConfig convconfig
        40: .line 626
            goto 42
        41: .line 627
      StackMap locals:
      StackMap stack:
            aload 9 /* oflags_p */
            iconst_0
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            invokestatic org.jruby.util.io.OpenFile.getModeFlagsAsIntFrom:(I)I
            iastore
        42: .line 630
      StackMap locals:
      StackMap stack:
            aload 10 /* fptr */
            aload 6 /* fname */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual org.jruby.util.io.OpenFile.setPath:(Ljava/lang/String;)V
        43: .line 631
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            ifnonnull 49
        44: .line 632
            aload 10 /* fptr */
            aload 3 /* runtime */
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            aload 9 /* oflags_p */
            iconst_0
            iaload
            sipush 438
            invokestatic org.jruby.RubyIO.sysopen:(Lorg/jruby/Ruby;Ljava/lang/String;II)Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        45: .line 633
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.clearStdio:()V
        46: .line 634
            aload 5 /* file */
            astore 16
        47: .line 680
            iload 11 /* locked */
            ifeq 48
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        48: .line 634
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int[] org.jruby.util.io.OpenFile int top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 16
            areturn
        49: .line 637
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int[] org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifeq 52
        50: .line 638
            aload 10 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 52
        51: .line 639
            aload 3 /* runtime */
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        52: .line 641
      StackMap locals:
      StackMap stack:
            aload 10 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 10 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            iconst_0
            dup_x1
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        53: .line 643
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isStdio:()Z
            ifeq 57
        54: .line 649
            aload 10 /* fptr */
            aload 3 /* runtime */
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            aload 9 /* oflags_p */
            iconst_0
            iaload
            sipush 438
            invokestatic org.jruby.RubyIO.sysopen:(Lorg/jruby/Ruby;Ljava/lang/String;II)Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        55: .line 652
            aload 10 /* fptr */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            invokestatic org.jruby.util.io.OpenFile.fdFixCloexec:(Lorg/jruby/util/io/PosixShim;I)V
        56: .line 668
            goto 68
        57: .line 669
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            aload 9 /* oflags_p */
            iconst_0
            iaload
            sipush 438
            invokestatic org.jruby.RubyIO.sysopen:(Lorg/jruby/Ruby;Ljava/lang/String;II)Lorg/jruby/util/io/ChannelFD;
            astore 12 /* tmpfd */
        start local 12 // org.jruby.util.io.ChannelFD tmpfd
        58: .line 670
            aconst_null
            astore 13 /* err */
        start local 13 // jnr.constants.platform.Errno err
        59: .line 671
            aload 10 /* fptr */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 12 /* tmpfd */
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            invokestatic org.jruby.util.io.OpenFile.cloexecDup2:(Lorg/jruby/util/io/PosixShim;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/util/io/ChannelFD;)I
            ifge 61
        60: .line 672
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            astore 13 /* err */
        61: .line 674
      StackMap locals: org.jruby.util.io.ChannelFD jnr.constants.platform.Errno
      StackMap stack:
            aload 13 /* err */
            ifnull 63
        62: .line 675
            aload 3 /* runtime */
            aload 13 /* err */
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        63: .line 677
      StackMap locals:
      StackMap stack:
            aload 10 /* fptr */
            aload 12 /* tmpfd */
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        end local 13 // jnr.constants.platform.Errno err
        end local 12 // org.jruby.util.io.ChannelFD tmpfd
        64: .line 679
            goto 68
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int[] org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
        65: astore 15
        66: .line 680
            iload 11 /* locked */
            ifeq 67
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        67: .line 681
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int[] org.jruby.util.io.OpenFile int top top top java.lang.Throwable
      StackMap stack:
            aload 15
            athrow
        68: .line 680
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int[] org.jruby.util.io.OpenFile int
      StackMap stack:
            iload 11 /* locked */
            ifeq 69
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        69: .line 683
      StackMap locals:
      StackMap stack:
            aload 5 /* file */
            areturn
        end local 11 // boolean locked
        end local 10 // org.jruby.util.io.OpenFile fptr
        end local 9 // int[] oflags_p
        end local 8 // org.jruby.runtime.builtin.IRubyObject opt
        end local 7 // org.jruby.runtime.builtin.IRubyObject nmode
        end local 6 // org.jruby.runtime.builtin.IRubyObject fname
        end local 5 // org.jruby.RubyIO file
        end local 4 // org.jruby.runtime.builtin.IRubyObject nil
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   70     0         this  Lorg/jruby/RubyIO;
            0   70     1      context  Lorg/jruby/runtime/ThreadContext;
            0   70     2         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   70     3      runtime  Lorg/jruby/Ruby;
            2   70     4          nil  Lorg/jruby/runtime/builtin/IRubyObject;
            3   70     5         file  Lorg/jruby/RubyIO;
            4   70     6        fname  Lorg/jruby/runtime/builtin/IRubyObject;
            5   70     7        nmode  Lorg/jruby/runtime/builtin/IRubyObject;
            6   70     8          opt  Lorg/jruby/runtime/builtin/IRubyObject;
            7   70     9     oflags_p  [I
           25   70    10         fptr  Lorg/jruby/util/io/OpenFile;
           21   23    11          tmp  Lorg/jruby/runtime/builtin/IRubyObject;
           28   70    11       locked  Z
           30   40    12   convconfig  Lorg/jruby/util/io/IOEncodable$ConvConfig;
           31   40    13  vmode_vperm  Ljava/lang/Object;
           32   40    14      fmode_p  [I
           58   64    12        tmpfd  Lorg/jruby/util/io/ChannelFD;
           59   64    13          err  Ljnr/constants/platform/Errno;
      Exception table:
        from    to  target  type
          28    47      65  any
          49    65      65  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"reopen"}, required = 1, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject getline(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject separator
         0: .line 687
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* separator */
            iconst_m1
            iconst_0
            invokevirtual org.jruby.RubyIO.getlineImpl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IZ)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject separator
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/RubyIO;
            0    1     1    context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  separator  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
           Name  Flags
      context    
      separator  

  public org.jruby.runtime.builtin.IRubyObject getline(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;J)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject separator
        start local 3 // long limit
         0: .line 695
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* separator */
            lload 3 /* limit */
            l2i
            iconst_0
            invokevirtual org.jruby.RubyIO.getlineImpl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IZ)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // long limit
        end local 2 // org.jruby.runtime.builtin.IRubyObject separator
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/RubyIO;
            0    1     1    context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  separator  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3      limit  J
    MethodParameters:
           Name  Flags
      context    
      separator  
      limit      

  private org.jruby.runtime.builtin.IRubyObject getlineImpl(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, int, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IZ)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject rs
        start local 3 // int limit
        start local 4 // boolean chomp
         0: .line 703
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 705
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 6 /* fptr */
        start local 6 // org.jruby.util.io.OpenFile fptr
         2: .line 707
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 7 /* locked */
        start local 7 // boolean locked
         3: .line 709
            aload 6 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkCharReadable:(Lorg/jruby/runtime/ThreadContext;)V
         4: .line 711
            iload 3 /* limit */
            ifne 8
         5: .line 712
            aload 5 /* runtime */
            aload 6 /* fptr */
            aload 5 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            invokestatic org.jruby.RubyString.newEmptyString:(Lorg/jruby/Ruby;Lorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 11
         6: .line 732
            iload 7 /* locked */
            ifeq 7
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 712
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.util.io.OpenFile int top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 11
            areturn
         8: .line 715
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack:
            aconst_null
            astore 8 /* str */
        start local 8 // org.jruby.RubyString str
         9: .line 717
            aload 2 /* rs */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 16
            iload 3 /* limit */
            ifge 16
        10: .line 718
            aload 6 /* fptr */
            aload 1 /* context */
            iconst_0
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.util.io.OpenFile.readAll:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 8 /* str */
        11: .line 719
            aload 8 /* str */
            invokevirtual org.jruby.RubyString.size:()I
            ifne 14
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11
        12: .line 732
            iload 7 /* locked */
            ifeq 13
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.util.io.OpenFile int org.jruby.RubyString top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        13: aload 11
            areturn
        14: .line 720
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.util.io.OpenFile int org.jruby.RubyString
      StackMap stack:
            iload 4 /* chomp */
            ifeq 25
            aload 8 /* str */
            aload 1 /* context */
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyString.chomp_bang:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        15: .line 721
            goto 25
      StackMap locals:
      StackMap stack:
        16: aload 2 /* rs */
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 25
        17: .line 722
            iload 3 /* limit */
            ifge 25
        18: .line 723
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.needsReadConversion:()Z
            ifne 25
        19: .line 724
            aload 6 /* fptr */
            aload 5 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            dup
            astore 9 /* enc */
        start local 9 // org.jcodings.Encoding enc
        20: invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifeq 25
        21: .line 725
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_READ_CHECK:()V
        22: .line 726
            aload 6 /* fptr */
            aload 1 /* context */
            aload 9 /* enc */
            aload 0 /* this */
            iload 4 /* chomp */
            invokevirtual org.jruby.util.io.OpenFile.getlineFast:(Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/Encoding;Lorg/jruby/RubyIO;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11
        23: .line 732
            iload 7 /* locked */
            ifeq 24
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        24: .line 726
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.util.io.OpenFile int org.jruby.RubyString org.jcodings.Encoding top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 11
            areturn
        end local 9 // org.jcodings.Encoding enc
        25: .line 729
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.util.io.OpenFile int org.jruby.RubyString
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 6 /* fptr */
            aload 8 /* str */
            aload 2 /* rs */
            iload 3 /* limit */
            iload 4 /* chomp */
            invokevirtual org.jruby.RubyIO.getlineImplSlowPart:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/RubyString;Lorg/jruby/runtime/builtin/IRubyObject;IZ)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11
        26: .line 732
            iload 7 /* locked */
            ifeq 27
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        27: .line 729
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.util.io.OpenFile int org.jruby.RubyString top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 11
            areturn
        end local 8 // org.jruby.RubyString str
        28: .line 731
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
            astore 10
        29: .line 732
            iload 7 /* locked */
            ifeq 30
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        30: .line 733
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby org.jruby.util.io.OpenFile int top top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        end local 7 // boolean locked
        end local 6 // org.jruby.util.io.OpenFile fptr
        end local 5 // org.jruby.Ruby runtime
        end local 4 // boolean chomp
        end local 3 // int limit
        end local 2 // org.jruby.runtime.builtin.IRubyObject rs
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   31     0     this  Lorg/jruby/RubyIO;
            0   31     1  context  Lorg/jruby/runtime/ThreadContext;
            0   31     2       rs  Lorg/jruby/runtime/builtin/IRubyObject;
            0   31     3    limit  I
            0   31     4    chomp  Z
            1   31     5  runtime  Lorg/jruby/Ruby;
            2   31     6     fptr  Lorg/jruby/util/io/OpenFile;
            3   31     7   locked  Z
            9   28     8      str  Lorg/jruby/RubyString;
           20   25     9      enc  Lorg/jcodings/Encoding;
      Exception table:
        from    to  target  type
           3     6      28  any
           8    12      28  any
          14    23      28  any
          25    26      28  any
    MethodParameters:
         Name  Flags
      context  
      rs       
      limit    final
      chomp    final

  private org.jruby.runtime.builtin.IRubyObject getlineImplSlowPart(org.jruby.runtime.ThreadContext, org.jruby.util.io.OpenFile, org.jruby.RubyString, org.jruby.runtime.builtin.IRubyObject, int, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/RubyString;Lorg/jruby/runtime/builtin/IRubyObject;IZ)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=27, args_size=7
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.util.io.OpenFile fptr
        start local 3 // org.jruby.RubyString str
        start local 4 // org.jruby.runtime.builtin.IRubyObject rs
        start local 5 // int limit
        start local 6 // boolean chomp
         0: .line 739
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 7 /* runtime */
        start local 7 // org.jruby.Ruby runtime
         1: .line 741
            iconst_0
            istore 8 /* noLimit */
        start local 8 // boolean noLimit
         2: .line 744
            iconst_m1
            istore 10 /* newline */
        start local 10 // int newline
         3: .line 745
            aconst_null
            astore 11 /* rsptrBytes */
        start local 11 // byte[] rsptrBytes
         4: .line 746
            iconst_0
            istore 12 /* rsptr */
        start local 12 // int rsptr
         5: .line 747
            iconst_0
            istore 13 /* rslen */
        start local 13 // int rslen
         6: .line 748
            iconst_0
            istore 14 /* rspara */
        start local 14 // boolean rspara
         7: .line 749
            bipush 16
            istore 15 /* extraLimit */
        start local 15 // int extraLimit
         8: .line 750
            iload 6 /* chomp */
            istore 16 /* chompCR */
        start local 16 // boolean chompCR
         9: .line 752
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.SET_BINARY_MODE:()V
        10: .line 753
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getReadEncoding:()Lorg/jcodings/Encoding;
            astore 17 /* enc */
        start local 17 // org.jcodings.Encoding enc
        11: .line 755
            aload 4 /* rs */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 37
        12: .line 756
            aload 4 /* rs */
            checkcast org.jruby.RubyString
            astore 18 /* rsStr */
        start local 18 // org.jruby.RubyString rsStr
        13: .line 757
            aload 18 /* rsStr */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 19 /* rsByteList */
        start local 19 // org.jruby.util.ByteList rsByteList
        14: .line 758
            aload 19 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 13 /* rslen */
        15: .line 759
            iload 13 /* rslen */
            ifne 31
        16: .line 760
            getstatic org.jruby.RubyIO.PARAGRAPH_SEPARATOR:Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 11 /* rsptrBytes */
        17: .line 761
            getstatic org.jruby.RubyIO.PARAGRAPH_SEPARATOR:Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 12 /* rsptr */
        18: .line 762
            iconst_2
            istore 13 /* rslen */
        19: .line 763
            iconst_1
            istore 14 /* rspara */
        20: .line 764
            aload 2 /* fptr */
            aload 1 /* context */
            bipush 10
            invokevirtual org.jruby.util.io.OpenFile.swallow:(Lorg/jruby/runtime/ThreadContext;I)Z
            pop
        21: .line 765
            aload 17 /* enc */
            invokevirtual org.jcodings.Encoding.isAsciiCompatible:()Z
            ifne 33
        22: .line 766
            aload 7 /* runtime */
            aload 11 /* rsptrBytes */
            iload 12 /* rsptr */
            iload 13 /* rslen */
            invokestatic org.jruby.RubyString.newUsAsciiStringShared:(Lorg/jruby/Ruby;[BII)Lorg/jruby/RubyString;
            astore 4 /* rs */
        23: .line 767
            aload 1 /* context */
            aload 4 /* rs */
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 17 /* enc */
            invokevirtual org.jruby.runtime.encoding.EncodingService.convertEncodingToRubyEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            iconst_0
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.io.EncodingUtils.rbStrEncode:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* rs */
        24: .line 768
            aload 4 /* rs */
            iconst_1
            invokeinterface org.jruby.runtime.builtin.IRubyObject.setFrozen:(Z)V
        25: .line 769
            aload 4 /* rs */
            checkcast org.jruby.RubyString
            astore 18 /* rsStr */
        26: .line 770
            aload 18 /* rsStr */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 19 /* rsByteList */
        27: .line 771
            aload 19 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 11 /* rsptrBytes */
        28: .line 772
            aload 19 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 12 /* rsptr */
        29: .line 773
            aload 19 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 13 /* rslen */
        30: .line 775
            goto 33
        31: .line 776
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int top int byte[] int int int int int org.jcodings.Encoding org.jruby.RubyString org.jruby.util.ByteList
      StackMap stack:
            aload 19 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            astore 11 /* rsptrBytes */
        32: .line 777
            aload 19 /* rsByteList */
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 12 /* rsptr */
        33: .line 779
      StackMap locals:
      StackMap stack:
            aload 11 /* rsptrBytes */
            iload 12 /* rsptr */
            iload 13 /* rslen */
            iadd
            iconst_1
            isub
            baload
            sipush 255
            iand
            istore 10 /* newline */
        34: .line 780
            iload 6 /* chomp */
            ifeq 35
            iload 13 /* rslen */
            iconst_1
            if_icmpne 35
            iload 10 /* newline */
            bipush 10
            if_icmpne 35
            iconst_1
            goto 36
      StackMap locals:
      StackMap stack:
        35: iconst_0
      StackMap locals:
      StackMap stack: int
        36: istore 16 /* chompCR */
        end local 19 // org.jruby.util.ByteList rsByteList
        end local 18 // org.jruby.RubyString rsStr
        37: .line 783
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray org.jruby.util.ByteList
            dup
            iconst_0
            aload 3 /* str */
            ifnull 38
            aload 3 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            goto 39
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int top int byte[] int int int int int org.jcodings.Encoding
      StackMap stack: org.jruby.util.ByteList[] org.jruby.util.ByteList[] int
        38: aconst_null
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int top int byte[] int int int int int org.jcodings.Encoding
      StackMap stack: org.jruby.util.ByteList[] org.jruby.util.ByteList[] int org.jruby.util.ByteList
        39: aastore
            astore 18 /* strPtr */
        start local 18 // org.jruby.util.ByteList[] strPtr
        40: .line 784
            iconst_1
            newarray 10
            dup
            iconst_0
            iload 5 /* limit */
            iastore
            astore 19 /* limit_p */
        start local 19 // int[] limit_p
        41: .line 786
            goto 68
        start local 9 // int c
        42: .line 789
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int int int byte[] int int int int int org.jcodings.Encoding org.jruby.util.ByteList[] int[]
      StackMap stack:
            aload 18 /* strPtr */
            iconst_0
            aaload
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            astore 24 /* strBytes */
        start local 24 // byte[] strBytes
        43: .line 790
            aload 18 /* strPtr */
            iconst_0
            aaload
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            istore 25 /* realSize */
        start local 25 // int realSize
        44: .line 791
            aload 18 /* strPtr */
            iconst_0
            aaload
            invokevirtual org.jruby.util.ByteList.getBegin:()I
            istore 26 /* begin */
        start local 26 // int begin
        45: .line 793
            iload 9 /* c */
            iload 10 /* newline */
            if_icmpne 57
        46: .line 794
            iload 25 /* realSize */
            iload 13 /* rslen */
            if_icmpge 47
            goto 68
        47: .line 795
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int int int byte[] int int int int int org.jcodings.Encoding org.jruby.util.ByteList[] int[] top top top top byte[] int int
      StackMap stack:
            iload 26 /* begin */
            istore 20 /* s */
        start local 20 // int s
        48: .line 796
            iload 20 /* s */
            iload 25 /* realSize */
            iadd
            istore 23 /* e */
        start local 23 // int e
        49: .line 797
            iload 23 /* e */
            iload 13 /* rslen */
            isub
            istore 21 /* p */
        start local 21 // int p
        50: .line 798
            aload 17 /* enc */
            aload 24 /* strBytes */
            iload 20 /* s */
            iload 21 /* p */
            iload 23 /* e */
            invokevirtual org.jcodings.Encoding.leftAdjustCharHead:([BIII)I
            istore 22 /* pp */
        start local 22 // int pp
        51: .line 799
            iload 22 /* pp */
            iload 21 /* p */
            if_icmpeq 52
            goto 68
        52: .line 800
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int int int byte[] int int int int int org.jcodings.Encoding org.jruby.util.ByteList[] int[] int int int int byte[] int int
      StackMap stack:
            aload 24 /* strBytes */
            iload 21 /* p */
            aload 11 /* rsptrBytes */
            iload 12 /* rsptr */
            iload 13 /* rslen */
            invokestatic org.jruby.util.ByteList.memcmp:([BI[BII)I
            ifne 57
        53: .line 801
            iload 6 /* chomp */
            ifeq 70
        54: .line 802
            iload 16 /* chompCR */
            ifeq 55
            iload 21 /* p */
            iload 20 /* s */
            if_icmple 55
            aload 24 /* strBytes */
            iload 21 /* p */
            iconst_1
            isub
            baload
            bipush 13
            if_icmpne 55
            iinc 21 /* p */ -1
        55: .line 803
      StackMap locals:
      StackMap stack:
            aload 18 /* strPtr */
            iconst_0
            aaload
            iload 21 /* p */
            iload 20 /* s */
            isub
            invokevirtual org.jruby.util.ByteList.length:(I)V
        56: .line 805
            goto 70
        end local 23 // int e
        end local 22 // int pp
        end local 21 // int p
        end local 20 // int s
        57: .line 808
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int int int byte[] int int int int int org.jcodings.Encoding org.jruby.util.ByteList[] int[] top top top top byte[] int int
      StackMap stack:
            aload 19 /* limit_p */
            iconst_0
            iaload
            ifne 68
        58: .line 809
            iload 26 /* begin */
            istore 20 /* s */
        start local 20 // int s
        59: .line 810
            iload 20 /* s */
            iload 25 /* realSize */
            iadd
            istore 21 /* p */
        start local 21 // int p
        60: .line 811
            aload 17 /* enc */
            aload 24 /* strBytes */
            iload 20 /* s */
            iload 21 /* p */
            iconst_1
            isub
            iload 21 /* p */
            invokevirtual org.jcodings.Encoding.leftAdjustCharHead:([BIII)I
            istore 22 /* pp */
        start local 22 // int pp
        61: .line 812
            iload 15 /* extraLimit */
            ifeq 66
        62: .line 813
            aload 17 /* enc */
            aload 24 /* strBytes */
            iload 22 /* pp */
            iload 21 /* p */
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE_P:(I)Z
            ifeq 66
        63: .line 814
            aload 19 /* limit_p */
            iconst_0
            iconst_1
            iastore
        64: .line 815
            iinc 15 /* extraLimit */ -1
        65: .line 816
            goto 68
        66: .line 817
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int int int byte[] int int int int int org.jcodings.Encoding org.jruby.util.ByteList[] int[] int int int top byte[] int int
      StackMap stack:
            iconst_1
            istore 8 /* noLimit */
        67: .line 818
            goto 70
        end local 26 // int begin
        end local 25 // int realSize
        end local 24 // byte[] strBytes
        end local 22 // int pp
        end local 21 // int p
        end local 20 // int s
        end local 9 // int c
        68: .line 786
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int top int byte[] int int int int int org.jcodings.Encoding org.jruby.util.ByteList[] int[]
      StackMap stack:
            aload 2 /* fptr */
            aload 1 /* context */
            iload 10 /* newline */
            aload 18 /* strPtr */
            aload 19 /* limit_p */
            invokevirtual org.jruby.util.io.OpenFile.appendline:(Lorg/jruby/runtime/ThreadContext;I[Lorg/jruby/util/ByteList;[I)I
            dup
            istore 9 /* c */
        start local 9 // int c
        69: iconst_m1
            if_icmpne 42
        70: .line 823
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject int int org.jruby.Ruby int int int byte[] int int int int int org.jcodings.Encoding org.jruby.util.ByteList[] int[]
      StackMap stack:
            aload 18 /* strPtr */
            iconst_0
            aaload
            ifnull 75
        71: .line 824
            aload 3 /* str */
            ifnull 74
        72: .line 825
            aload 3 /* str */
            aload 18 /* strPtr */
            iconst_0
            aaload
            invokevirtual org.jruby.RubyString.setValue:(Lorg/jruby/util/ByteList;)V
        73: .line 826
            goto 75
        74: .line 827
      StackMap locals:
      StackMap stack:
            aload 7 /* runtime */
            aload 18 /* strPtr */
            iconst_0
            aaload
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 3 /* str */
        75: .line 831
      StackMap locals:
      StackMap stack:
            iload 14 /* rspara */
            ifeq 77
            iload 9 /* c */
            iconst_m1
            if_icmpeq 77
        76: .line 833
            aload 2 /* fptr */
            aload 1 /* context */
            bipush 10
            invokevirtual org.jruby.util.io.OpenFile.swallow:(Lorg/jruby/runtime/ThreadContext;I)Z
            pop
        77: .line 835
      StackMap locals:
      StackMap stack:
            aload 3 /* str */
            ifnull 80
        78: .line 836
            aload 3 /* str */
            iconst_1
            invokevirtual org.jruby.RubyString.setTaint:(Z)V
        79: .line 837
            aload 3 /* str */
            aload 17 /* enc */
            invokevirtual org.jruby.RubyString.setEncoding:(Lorg/jcodings/Encoding;)V
        80: .line 840
      StackMap locals:
      StackMap stack:
            aload 3 /* str */
            ifnull 81
            iload 8 /* noLimit */
            ifne 81
            aload 2 /* fptr */
            aload 7 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.util.io.OpenFile.incrementLineno:(Lorg/jruby/Ruby;Lorg/jruby/RubyIO;)V
        81: .line 842
      StackMap locals:
      StackMap stack:
            aload 3 /* str */
            ifnonnull 82
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 83
      StackMap locals:
      StackMap stack:
        82: aload 3 /* str */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        83: areturn
        end local 19 // int[] limit_p
        end local 18 // org.jruby.util.ByteList[] strPtr
        end local 17 // org.jcodings.Encoding enc
        end local 16 // boolean chompCR
        end local 15 // int extraLimit
        end local 14 // boolean rspara
        end local 13 // int rslen
        end local 12 // int rsptr
        end local 11 // byte[] rsptrBytes
        end local 10 // int newline
        end local 9 // int c
        end local 8 // boolean noLimit
        end local 7 // org.jruby.Ruby runtime
        end local 6 // boolean chomp
        end local 5 // int limit
        end local 4 // org.jruby.runtime.builtin.IRubyObject rs
        end local 3 // org.jruby.RubyString str
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   84     0        this  Lorg/jruby/RubyIO;
            0   84     1     context  Lorg/jruby/runtime/ThreadContext;
            0   84     2        fptr  Lorg/jruby/util/io/OpenFile;
            0   84     3         str  Lorg/jruby/RubyString;
            0   84     4          rs  Lorg/jruby/runtime/builtin/IRubyObject;
            0   84     5       limit  I
            0   84     6       chomp  Z
            1   84     7     runtime  Lorg/jruby/Ruby;
            2   84     8     noLimit  Z
           42   68     9           c  I
           69   84     9           c  I
            3   84    10     newline  I
            4   84    11  rsptrBytes  [B
            5   84    12       rsptr  I
            6   84    13       rslen  I
            7   84    14      rspara  Z
            8   84    15  extraLimit  I
            9   84    16     chompCR  Z
           11   84    17         enc  Lorg/jcodings/Encoding;
           13   37    18       rsStr  Lorg/jruby/RubyString;
           14   37    19  rsByteList  Lorg/jruby/util/ByteList;
           40   84    18      strPtr  [Lorg/jruby/util/ByteList;
           41   84    19     limit_p  [I
           48   57    20           s  I
           59   68    20           s  I
           50   57    21           p  I
           60   68    21           p  I
           51   57    22          pp  I
           61   68    22          pp  I
           49   57    23           e  I
           43   68    24    strBytes  [B
           44   68    25    realSize  I
           45   68    26       begin  I
    MethodParameters:
         Name  Flags
      context  
      fptr     final
      str      
      rs       
      limit    final
      chomp    final

  public org.jcodings.Encoding getEnc();
    descriptor: ()Lorg/jcodings/Encoding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 847
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public org.jcodings.Encoding getReadEncoding();
    descriptor: ()Lorg/jcodings/Encoding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 852
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public org.jcodings.Encoding getEnc2();
    descriptor: ()Lorg/jcodings/Encoding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 857
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public org.jcodings.Encoding getInputEncoding();
    descriptor: ()Lorg/jcodings/Encoding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 862
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.util.io.OpenFile.inputEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public static org.jruby.runtime.builtin.IRubyObject newInstance(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=7, locals=6, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 869
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            astore 4 /* klass */
        start local 4 // org.jruby.RubyClass klass
         1: .line 871
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 6
         2: .line 872
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* klass */
            invokestatic org.jruby.util.RubyStringBuilder.types:(Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyString;
            astore 5 /* className */
        start local 5 // org.jruby.runtime.builtin.IRubyObject className
         3: .line 874
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            getstatic org.jruby.common.IRubyWarnings$ID.BLOCK_NOT_ACCEPTED:Lorg/jruby/common/IRubyWarnings$ID;
         4: .line 875
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* className */
            ldc "::new() does not take block; use "
            aload 5 /* className */
            ldc "::open() instead"
            invokestatic org.jruby.util.RubyStringBuilder.str:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Ljava/lang/String;
         5: .line 874
            invokevirtual org.jruby.common.RubyWarnings.warn:(Lorg/jruby/common/IRubyWarnings$ID;Ljava/lang/String;)V
        end local 5 // org.jruby.runtime.builtin.IRubyObject className
         6: .line 878
      StackMap locals: org.jruby.RubyClass
      StackMap stack:
            aload 4 /* klass */
            aload 0 /* context */
            aload 2 /* args */
            aload 3 /* block */
            invokevirtual org.jruby.RubyClass.newInstance:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.RubyClass klass
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0    context  Lorg/jruby/runtime/ThreadContext;
            0    7     1       recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2       args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3      block  Lorg/jruby/runtime/Block;
            1    7     4      klass  Lorg/jruby/RubyClass;
            3    6     5  className  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"new"}, rest = true, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  public static org.jruby.runtime.builtin.IRubyObject for_fd(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=4, locals=5, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 883
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            astore 4 /* klass */
        start local 4 // org.jruby.RubyClass klass
         1: .line 885
            aload 4 /* klass */
            aload 0 /* context */
            aload 2 /* args */
            aload 3 /* block */
            invokevirtual org.jruby.RubyClass.newInstance:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.RubyClass klass
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3    block  Lorg/jruby/runtime/Block;
            1    2     4    klass  Lorg/jruby/RubyClass;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(rest = true, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  private org.jruby.runtime.builtin.IRubyObject initializeCommon(org.jruby.runtime.ThreadContext, int, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int fileno
        start local 3 // org.jruby.runtime.builtin.IRubyObject vmodeArg
        start local 4 // org.jruby.runtime.builtin.IRubyObject opt
         0: .line 889
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 893
            iload 2 /* fileno */
            invokestatic org.jruby.util.io.FilenoUtil.isFake:(I)Z
            ifne 16
         2: .line 895
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            iload 2 /* fileno */
            invokevirtual org.jruby.util.io.FilenoUtil.getWrapperFromFileno:(I)Lorg/jruby/util/io/ChannelFD;
            astore 6 /* fd */
        start local 6 // org.jruby.util.io.ChannelFD fd
         3: .line 897
            aload 6 /* fd */
            ifnonnull 19
         4: .line 898
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 14
         5: .line 900
            iload 2 /* fileno */
            tableswitch { // 0 - 2
                    0: 6
                    1: 8
                    2: 10
              default: 12
          }
         6: .line 902
      StackMap locals: org.jruby.Ruby org.jruby.util.io.ChannelFD
      StackMap stack:
            new org.jruby.util.io.ChannelFD
            dup
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getIn:()Ljava/io/InputStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            astore 6 /* fd */
         7: .line 903
            goto 19
         8: .line 905
      StackMap locals:
      StackMap stack:
            new org.jruby.util.io.ChannelFD
            dup
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getOut:()Ljava/io/PrintStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            astore 6 /* fd */
         9: .line 906
            goto 19
        10: .line 908
      StackMap locals:
      StackMap stack:
            new org.jruby.util.io.ChannelFD
            dup
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getErr:()Ljava/io/PrintStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            astore 6 /* fd */
        11: .line 909
            goto 19
        12: .line 911
      StackMap locals:
      StackMap stack:
            new org.jruby.util.io.ChannelFD
            dup
            new jnr.enxio.channels.NativeDeviceChannel
            dup
            iload 2 /* fileno */
            invokespecial jnr.enxio.channels.NativeDeviceChannel.<init>:(I)V
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            astore 6 /* fd */
        13: .line 914
            goto 19
        14: .line 915
      StackMap locals:
      StackMap stack:
            new org.jruby.util.io.ChannelFD
            dup
            new jnr.enxio.channels.NativeDeviceChannel
            dup
            iload 2 /* fileno */
            invokespecial jnr.enxio.channels.NativeDeviceChannel.<init>:(I)V
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            astore 6 /* fd */
        15: .line 918
            goto 19
        end local 6 // org.jruby.util.io.ChannelFD fd
        16: .line 919
      StackMap locals:
      StackMap stack:
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            iload 2 /* fileno */
            invokevirtual org.jruby.util.io.FilenoUtil.getWrapperFromFileno:(I)Lorg/jruby/util/io/ChannelFD;
            astore 7 /* descriptor */
        start local 7 // org.jruby.util.io.ChannelFD descriptor
        17: .line 921
            aload 7 /* descriptor */
            ifnonnull 18
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEBADFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 923
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top org.jruby.util.io.ChannelFD
      StackMap stack:
            aload 7 /* descriptor */
            astore 6 /* fd */
        end local 7 // org.jruby.util.io.ChannelFD descriptor
        start local 6 // org.jruby.util.io.ChannelFD fd
        19: .line 926
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.ChannelFD
      StackMap stack:
            aload 6 /* fd */
            getfield org.jruby.util.io.ChannelFD.ch:Ljava/nio/channels/Channel;
            invokeinterface java.nio.channels.Channel.isOpen:()Z
            ifne 21
        20: .line 927
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEBADFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        21: .line 930
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 6 /* fd */
            aload 3 /* vmodeArg */
            aload 4 /* opt */
            invokevirtual org.jruby.RubyIO.initializeCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.util.io.ChannelFD fd
        end local 5 // org.jruby.Ruby runtime
        end local 4 // org.jruby.runtime.builtin.IRubyObject opt
        end local 3 // org.jruby.runtime.builtin.IRubyObject vmodeArg
        end local 2 // int fileno
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Lorg/jruby/RubyIO;
            0   22     1     context  Lorg/jruby/runtime/ThreadContext;
            0   22     2      fileno  I
            0   22     3    vmodeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0   22     4         opt  Lorg/jruby/runtime/builtin/IRubyObject;
            1   22     5     runtime  Lorg/jruby/Ruby;
            3   16     6          fd  Lorg/jruby/util/io/ChannelFD;
           19   22     6          fd  Lorg/jruby/util/io/ChannelFD;
           17   19     7  descriptor  Lorg/jruby/util/io/ChannelFD;
    MethodParameters:
          Name  Flags
      context   
      fileno    
      vmodeArg  
      opt       

  private org.jruby.runtime.builtin.IRubyObject initializeCommon(org.jruby.runtime.ThreadContext, org.jruby.util.io.ChannelFD, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.util.io.ChannelFD fd
        start local 3 // org.jruby.runtime.builtin.IRubyObject vmodeArg
        start local 4 // org.jruby.runtime.builtin.IRubyObject opt
         0: .line 934
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 937
            iconst_1
            newarray 10
            dup
            iconst_0
            getstatic org.jruby.util.io.ModeFlags.RDONLY:I
            iastore
            astore 7 /* oflags_p */
        start local 7 // int[] oflags_p
         2: .line 939
            aload 4 /* opt */
            ifnull 4
            aload 4 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 4
            aload 4 /* opt */
            instanceof org.jruby.RubyHash
            ifne 4
            aload 1 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            getfield org.jruby.runtime.JavaSites$IOSites.respond_to_to_hash:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 1 /* context */
            aload 4 /* opt */
            aload 4 /* opt */
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifne 4
         3: .line 940
            aload 5 /* runtime */
            ldc "last argument must be a hash!"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 943
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.ChannelFD org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top int[]
      StackMap stack:
            aload 4 /* opt */
            ifnull 6
            aload 4 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 6
         5: .line 944
            aload 4 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToHash:()Lorg/jruby/RubyHash;
            astore 4 /* opt */
         6: .line 947
      StackMap locals:
      StackMap stack:
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.ch:Ljava/nio/channels/Channel;
            invokeinterface java.nio.channels.Channel.isOpen:()Z
            ifne 8
         7: .line 948
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEBADFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 951
      StackMap locals:
      StackMap stack:
            aload 3 /* vmodeArg */
            aload 5 /* runtime */
            iconst_0
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokestatic org.jruby.util.io.EncodingUtils.vmodeVperm:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            astore 8 /* pm */
        start local 8 // java.lang.Object pm
         9: .line 952
            iconst_1
            newarray 10
            astore 9 /* fmode_p */
        start local 9 // int[] fmode_p
        10: .line 953
            new org.jruby.util.io.IOEncodable$ConvConfig
            dup
            invokespecial org.jruby.util.io.IOEncodable$ConvConfig.<init>:()V
            astore 10 /* convconfig */
        start local 10 // org.jruby.util.io.IOEncodable$ConvConfig convconfig
        11: .line 954
            aload 1 /* context */
            aload 10 /* convconfig */
            aload 8 /* pm */
            aload 4 /* opt */
            aload 7 /* oflags_p */
            aload 9 /* fmode_p */
            invokestatic org.jruby.util.io.EncodingUtils.extractModeEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;[I[I)V
        12: .line 957
            aload 7 /* oflags_p */
            iconst_0
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 2 /* fd */
            getfield org.jruby.util.io.ChannelFD.ch:Ljava/nio/channels/Channel;
            invokestatic org.jruby.util.io.ModeFlags.oflagsFrom:(Ljnr/posix/POSIX;Ljava/nio/channels/Channel;)I
            iastore
        13: .line 959
            aload 7 /* oflags_p */
            iconst_0
            iaload
            invokestatic org.jruby.util.io.ModeFlags.getOpenFileFlagsFor:(I)I
            istore 6 /* ofmode */
        start local 6 // int ofmode
        14: .line 960
            aload 8 /* pm */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            ifnull 15
            aload 8 /* pm */
            invokestatic org.jruby.util.io.EncodingUtils.vmode:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 17
        15: .line 961
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.ChannelFD org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby int int[] java.lang.Object int[] org.jruby.util.io.IOEncodable$ConvConfig
      StackMap stack:
            aload 9 /* fmode_p */
            iconst_0
            iload 6 /* ofmode */
            iastore
        16: .line 962
            goto 19
      StackMap locals:
      StackMap stack:
        17: iload 6 /* ofmode */
            iconst_m1
            ixor
            aload 9 /* fmode_p */
            iconst_0
            iaload
            iand
            iconst_3
            iand
            ifeq 19
        18: .line 963
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        19: .line 967
      StackMap locals:
      StackMap stack:
            aload 4 /* opt */
            ifnull 21
            aload 4 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 21
            aload 4 /* opt */
            checkcast org.jruby.RubyHash
            aload 1 /* context */
            aload 5 /* runtime */
            ldc "autoclose"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
            if_acmpne 21
        20: .line 968
            aload 9 /* fmode_p */
            iconst_0
            dup2
            iaload
            ldc 65536
            ior
            iastore
        21: .line 972
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.MakeOpenFile:()Lorg/jruby/util/io/OpenFile;
            pop
        22: .line 974
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 2 /* fd */
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        23: .line 975
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 9 /* fmode_p */
            iconst_0
            iaload
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        24: .line 976
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 10 /* convconfig */
            putfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
        25: .line 977
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.clearCodeConversion:()V
        26: .line 979
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.checkTTY:()V
        27: .line 980
            aload 2 /* fd */
            invokevirtual org.jruby.util.io.ChannelFD.bestFileno:()I
            tableswitch { // 0 - 2
                    0: 28
                    1: 30
                    2: 32
              default: 33
          }
        28: .line 982
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getstatic java.lang.System.in:Ljava/io/InputStream;
            putfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
        29: .line 983
            goto 33
        30: .line 985
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            putfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
        31: .line 986
            goto 33
        32: .line 988
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            putfield org.jruby.util.io.OpenFile.stdio_file:Ljava/io/Closeable;
        33: .line 992
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isBOM:()Z
            ifeq 35
        34: .line 993
            aload 1 /* context */
            aload 0 /* this */
            invokestatic org.jruby.util.io.EncodingUtils.ioSetEncodingByBOM:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;)V
        35: .line 996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 10 // org.jruby.util.io.IOEncodable$ConvConfig convconfig
        end local 9 // int[] fmode_p
        end local 8 // java.lang.Object pm
        end local 7 // int[] oflags_p
        end local 6 // int ofmode
        end local 5 // org.jruby.Ruby runtime
        end local 4 // org.jruby.runtime.builtin.IRubyObject opt
        end local 3 // org.jruby.runtime.builtin.IRubyObject vmodeArg
        end local 2 // org.jruby.util.io.ChannelFD fd
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   36     0        this  Lorg/jruby/RubyIO;
            0   36     1     context  Lorg/jruby/runtime/ThreadContext;
            0   36     2          fd  Lorg/jruby/util/io/ChannelFD;
            0   36     3    vmodeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0   36     4         opt  Lorg/jruby/runtime/builtin/IRubyObject;
            1   36     5     runtime  Lorg/jruby/Ruby;
           14   36     6      ofmode  I
            2   36     7    oflags_p  [I
            9   36     8          pm  Ljava/lang/Object;
           10   36     9     fmode_p  [I
           11   36    10  convconfig  Lorg/jruby/util/io/IOEncodable$ConvConfig;
    MethodParameters:
          Name  Flags
      context   
      fd        
      vmodeArg  
      opt       

  public org.jruby.runtime.builtin.IRubyObject initialize(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject fileNumber
        start local 3 // org.jruby.runtime.Block unused
         0: .line 1001
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* fileNumber */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            aconst_null
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.initializeCommon:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block unused
        end local 2 // org.jruby.runtime.builtin.IRubyObject fileNumber
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/jruby/RubyIO;
            0    1     1     context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  fileNumber  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3      unused  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
            Name  Flags
      context     
      fileNumber  
      unused      

  public org.jruby.runtime.builtin.IRubyObject initialize(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject fileNumber
        start local 3 // org.jruby.runtime.builtin.IRubyObject second
        start local 4 // org.jruby.runtime.Block unused
         0: .line 1006
            aload 2 /* fileNumber */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 5 /* fileno */
        start local 5 // int fileno
         1: .line 1007
            aconst_null
            astore 6 /* vmode */
        start local 6 // org.jruby.runtime.builtin.IRubyObject vmode
         2: .line 1009
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* second */
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* hashTest */
        start local 8 // org.jruby.runtime.builtin.IRubyObject hashTest
         3: .line 1010
            aload 8 /* hashTest */
            instanceof org.jruby.RubyHash
            ifeq 6
         4: .line 1011
            aload 8 /* hashTest */
            astore 7 /* options */
        start local 7 // org.jruby.runtime.builtin.IRubyObject options
         5: .line 1012
            goto 8
        end local 7 // org.jruby.runtime.builtin.IRubyObject options
         6: .line 1013
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.runtime.builtin.IRubyObject top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* options */
        start local 7 // org.jruby.runtime.builtin.IRubyObject options
         7: .line 1014
            aload 3 /* second */
            astore 6 /* vmode */
         8: .line 1017
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.Block int org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            iload 5 /* fileno */
            aload 6 /* vmode */
            aload 7 /* options */
            invokevirtual org.jruby.RubyIO.initializeCommon:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 8 // org.jruby.runtime.builtin.IRubyObject hashTest
        end local 7 // org.jruby.runtime.builtin.IRubyObject options
        end local 6 // org.jruby.runtime.builtin.IRubyObject vmode
        end local 5 // int fileno
        end local 4 // org.jruby.runtime.Block unused
        end local 3 // org.jruby.runtime.builtin.IRubyObject second
        end local 2 // org.jruby.runtime.builtin.IRubyObject fileNumber
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/jruby/RubyIO;
            0    9     1     context  Lorg/jruby/runtime/ThreadContext;
            0    9     2  fileNumber  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     3      second  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     4      unused  Lorg/jruby/runtime/Block;
            1    9     5      fileno  I
            2    9     6       vmode  Lorg/jruby/runtime/builtin/IRubyObject;
            5    6     7     options  Lorg/jruby/runtime/builtin/IRubyObject;
            7    9     7     options  Lorg/jruby/runtime/builtin/IRubyObject;
            3    9     8    hashTest  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
            Name  Flags
      context     
      fileNumber  
      second      
      unused      

  public org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, 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/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject fileNumber
        start local 3 // org.jruby.runtime.builtin.IRubyObject modeValue
        start local 4 // org.jruby.runtime.builtin.IRubyObject options
        start local 5 // org.jruby.runtime.Block unused
         0: .line 1022
            aload 2 /* fileNumber */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 6 /* fileno */
        start local 6 // int fileno
         1: .line 1024
            aload 0 /* this */
            aload 1 /* context */
            iload 6 /* fileno */
            aload 3 /* modeValue */
            aload 4 /* options */
            invokevirtual org.jruby.RubyIO.initializeCommon:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // int fileno
        end local 5 // org.jruby.runtime.Block unused
        end local 4 // org.jruby.runtime.builtin.IRubyObject options
        end local 3 // org.jruby.runtime.builtin.IRubyObject modeValue
        end local 2 // org.jruby.runtime.builtin.IRubyObject fileNumber
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/jruby/RubyIO;
            0    2     1     context  Lorg/jruby/runtime/ThreadContext;
            0    2     2  fileNumber  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3   modeValue  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4     options  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     5      unused  Lorg/jruby/runtime/Block;
            1    2     6      fileno  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
            Name  Flags
      context     
      fileNumber  
      modeValue   
      options     
      unused      

  protected org.jruby.util.io.IOOptions parseIOOptions(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/util/io/IOOptions;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1029
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1031
            aload 1 /* arg */
            instanceof org.jruby.RubyFixnum
            ifeq 2
            aload 2 /* runtime */
            aload 1 /* arg */
            invokestatic org.jruby.RubyFixnum.fix2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            l2i
            invokestatic org.jruby.RubyIO.newIOOptions:(Lorg/jruby/Ruby;I)Lorg/jruby/util/io/IOOptions;
            areturn
         2: .line 1033
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            astore 3 /* modeString */
        start local 3 // java.lang.String modeString
         3: .line 1035
            new org.jruby.util.io.IOOptions
            dup
            aload 2 /* runtime */
            aload 3 /* modeString */
            invokespecial org.jruby.util.io.IOOptions.<init>:(Lorg/jruby/Ruby;Ljava/lang/String;)V
         4: areturn
         5: .line 1036
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby java.lang.String
      StackMap stack: org.jruby.util.io.InvalidValueException
            pop
         6: .line 1037
            aload 2 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid access mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* modeString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.String modeString
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/jruby/RubyIO;
            0    7     1         arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     2     runtime  Lorg/jruby/Ruby;
            3    7     3  modeString  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  Class org.jruby.util.io.InvalidValueException
    MethodParameters:
      Name  Flags
      arg   

  public org.jruby.runtime.builtin.IRubyObject external_encoding(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1043
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            astore 2 /* encodingService */
        start local 2 // org.jruby.runtime.encoding.EncodingService encodingService
         1: .line 1045
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            ifnull 2
            aload 2 /* encodingService */
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/RubyEncoding;
            areturn
         2: .line 1047
      StackMap locals: org.jruby.runtime.encoding.EncodingService
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifeq 6
         3: .line 1048
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            ifnonnull 4
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 2 /* encodingService */
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/RubyEncoding;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         5: areturn
         6: .line 1051
      StackMap locals:
      StackMap stack:
            aload 2 /* encodingService */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getReadEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/RubyEncoding;
            areturn
        end local 2 // org.jruby.runtime.encoding.EncodingService encodingService
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/jruby/RubyIO;
            0    7     1          context  Lorg/jruby/runtime/ThreadContext;
            1    7     2  encodingService  Lorg/jruby/runtime/encoding/EncodingService;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject internal_encoding(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1056
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            ifnonnull 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 1058
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getEncodingService:()Lorg/jruby/runtime/encoding/EncodingService;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getReadEncoding:()Lorg/jcodings/Encoding;
            invokevirtual org.jruby.runtime.encoding.EncodingService.getEncoding:(Lorg/jcodings/Encoding;)Lorg/jruby/RubyEncoding;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject set_encoding(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject encodingObj
         0: .line 1063
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* encodingObj */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.setEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
         1: .line 1065
            aload 0 /* this */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject encodingObj
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/jruby/RubyIO;
            0    2     1      context  Lorg/jruby/runtime/ThreadContext;
            0    2     2  encodingObj  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
             Name  Flags
      context      
      encodingObj  

  public org.jruby.runtime.builtin.IRubyObject set_encoding(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject encodingString
        start local 3 // org.jruby.runtime.builtin.IRubyObject internalEncoding
         0: .line 1070
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* internalEncoding */
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* opt */
        start local 4 // org.jruby.runtime.builtin.IRubyObject opt
         1: .line 1071
            aload 4 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 4
         2: .line 1072
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* encodingString */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aload 4 /* opt */
            invokevirtual org.jruby.RubyIO.setEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
         3: .line 1073
            goto 5
         4: .line 1074
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* encodingString */
            aload 3 /* internalEncoding */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.setEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
         5: .line 1077
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject opt
        end local 3 // org.jruby.runtime.builtin.IRubyObject internalEncoding
        end local 2 // org.jruby.runtime.builtin.IRubyObject encodingString
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lorg/jruby/RubyIO;
            0    6     1           context  Lorg/jruby/runtime/ThreadContext;
            0    6     2    encodingString  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     3  internalEncoding  Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     4               opt  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
                  Name  Flags
      context           
      encodingString    
      internalEncoding  

  public org.jruby.runtime.builtin.IRubyObject set_encoding(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject encodingString
        start local 3 // org.jruby.runtime.builtin.IRubyObject internalEncoding
        start local 4 // org.jruby.runtime.builtin.IRubyObject options
         0: .line 1082
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* encodingString */
            aload 3 /* internalEncoding */
            aload 4 /* options */
            invokevirtual org.jruby.RubyIO.setEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
         1: .line 1084
            aload 0 /* this */
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject options
        end local 3 // org.jruby.runtime.builtin.IRubyObject internalEncoding
        end local 2 // org.jruby.runtime.builtin.IRubyObject encodingString
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/jruby/RubyIO;
            0    2     1           context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    encodingString  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3  internalEncoding  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4           options  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
                  Name  Flags
      context           
      encodingString    
      internalEncoding  
      options           

  public void setEncoding(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;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject v1
        start local 3 // org.jruby.runtime.builtin.IRubyObject v2
        start local 4 // org.jruby.runtime.builtin.IRubyObject opt
         0: .line 1089
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* nil */
        start local 5 // org.jruby.runtime.builtin.IRubyObject nil
         1: .line 1090
            new org.jruby.util.io.IOEncodable$ConvConfig
            dup
            invokespecial org.jruby.util.io.IOEncodable$ConvConfig.<init>:()V
            astore 6 /* holder */
        start local 6 // org.jruby.util.io.IOEncodable$ConvConfig holder
         2: .line 1091
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            istore 7 /* ecflags */
        start local 7 // int ecflags
         3: .line 1092
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* nil */
            aastore
            astore 8 /* ecopts_p */
        start local 8 // org.jruby.runtime.builtin.IRubyObject[] ecopts_p
         4: .line 1094
            aload 3 /* v2 */
            aload 5 /* nil */
            if_acmpeq 23
         5: .line 1095
            aload 6 /* holder */
            aload 1 /* context */
            aload 2 /* v1 */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
         6: .line 1096
            aload 3 /* v2 */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.checkStringType:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* tmp */
        start local 9 // org.jruby.runtime.builtin.IRubyObject tmp
         7: .line 1098
            aload 9 /* tmp */
            aload 5 /* nil */
            if_acmpeq 17
         8: .line 1099
            aload 9 /* tmp */
            checkcast org.jruby.RubyString
            astore 10 /* internalAsString */
        start local 10 // org.jruby.RubyString internalAsString
         9: .line 1102
            aload 10 /* internalAsString */
            invokestatic org.jruby.RubyIO.isDash:(Lorg/jruby/RubyString;)Z
            ifeq 13
        10: .line 1104
            aload 6 /* holder */
            aload 6 /* holder */
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
        11: .line 1105
            aload 6 /* holder */
            aconst_null
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
        12: .line 1106
            goto 14
        13: .line 1107
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.IOEncodable$ConvConfig int org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString
      StackMap stack:
            aload 6 /* holder */
            aload 1 /* context */
            aload 10 /* internalAsString */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
        14: .line 1110
      StackMap locals:
      StackMap stack:
            aload 6 /* holder */
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            aload 6 /* holder */
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            if_acmpne 20
        15: .line 1112
            aload 6 /* holder */
            aconst_null
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
        end local 10 // org.jruby.RubyString internalAsString
        16: .line 1114
            goto 20
        17: .line 1115
      StackMap locals:
      StackMap stack:
            aload 6 /* holder */
            aload 1 /* context */
            aload 3 /* v2 */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
        18: .line 1117
            aload 6 /* holder */
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            aload 6 /* holder */
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            if_acmpne 20
        19: .line 1119
            aload 6 /* holder */
            aconst_null
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
        20: .line 1122
      StackMap locals:
      StackMap stack:
            aload 6 /* holder */
            invokevirtual org.jruby.util.io.IOEncodable$ConvConfig.getEnc2:()Lorg/jcodings/Encoding;
            iload 7 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2:(Lorg/jcodings/Encoding;I)I
            pop
        21: .line 1123
            aload 1 /* context */
            aload 4 /* opt */
            aload 8 /* ecopts_p */
            iload 7 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.econvPrepareOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;I)I
            istore 7 /* ecflags */
        end local 9 // org.jruby.runtime.builtin.IRubyObject tmp
        22: .line 1124
            goto 36
        23: .line 1125
      StackMap locals:
      StackMap stack:
            aload 2 /* v1 */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 28
        24: .line 1126
            aload 1 /* context */
            aload 6 /* holder */
            aconst_null
            aconst_null
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.ioExtIntToEncs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;I)V
        25: .line 1127
            aload 6 /* holder */
            invokevirtual org.jruby.util.io.IOEncodable$ConvConfig.getEnc2:()Lorg/jcodings/Encoding;
            iload 7 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2:(Lorg/jcodings/Encoding;I)I
            pop
        26: .line 1128
            aload 8 /* ecopts_p */
            iconst_0
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aastore
        27: .line 1129
            goto 36
        28: .line 1130
      StackMap locals:
      StackMap stack:
            aload 2 /* v1 */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.checkStringType:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* tmp */
        start local 9 // org.jruby.runtime.builtin.IRubyObject tmp
        29: .line 1131
            aload 9 /* tmp */
            aload 5 /* nil */
            if_acmpeq 34
            aload 1 /* context */
            aload 9 /* tmp */
            invokestatic org.jruby.util.io.EncodingUtils.encGet:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.io.EncodingUtils.encAsciicompat:(Lorg/jcodings/Encoding;)Z
            ifeq 34
        30: .line 1132
            aload 1 /* context */
            aload 6 /* holder */
            aload 9 /* tmp */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            aconst_null
            invokestatic org.jruby.util.io.EncodingUtils.parseModeEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Ljava/lang/String;[I)V
        31: .line 1133
            aload 6 /* holder */
            invokevirtual org.jruby.util.io.IOEncodable$ConvConfig.getEnc2:()Lorg/jcodings/Encoding;
            iload 7 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2:(Lorg/jcodings/Encoding;I)I
            pop
        32: .line 1134
            aload 1 /* context */
            aload 4 /* opt */
            aload 8 /* ecopts_p */
            iload 7 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.econvPrepareOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;I)I
            istore 7 /* ecflags */
        33: .line 1135
            goto 36
        34: .line 1136
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* context */
            aload 6 /* holder */
            aload 1 /* context */
            aload 2 /* v1 */
            invokestatic org.jruby.util.io.EncodingUtils.rbToEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jcodings/Encoding;
            aconst_null
            iconst_0
            invokestatic org.jruby.util.io.EncodingUtils.ioExtIntToEncs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jcodings/Encoding;Lorg/jcodings/Encoding;I)V
        35: .line 1137
            aload 6 /* holder */
            invokevirtual org.jruby.util.io.IOEncodable$ConvConfig.getEnc2:()Lorg/jcodings/Encoding;
            iload 7 /* ecflags */
            invokestatic org.jruby.util.io.EncodingUtils.SET_UNIVERSAL_NEWLINE_DECORATOR_IF_ENC2:(Lorg/jcodings/Encoding;I)I
            pop
        end local 9 // org.jruby.runtime.builtin.IRubyObject tmp
        36: .line 1143
      StackMap locals:
      StackMap stack:
            iconst_1
            newarray 10
            dup
            iconst_0
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            iastore
            astore 9 /* fmode_p */
        start local 9 // int[] fmode_p
        37: .line 1144
            aload 1 /* context */
            aload 9 /* fmode_p */
            iload 7 /* ecflags */
            aload 6 /* holder */
            invokestatic org.jruby.util.io.EncodingUtils.validateEncodingBinmode:(Lorg/jruby/runtime/ThreadContext;[IILorg/jruby/util/io/IOEncodable;)V
        38: .line 1145
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 9 /* fmode_p */
            iconst_0
            iaload
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        39: .line 1147
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aload 6 /* holder */
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
        40: .line 1148
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aload 6 /* holder */
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
        41: .line 1149
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            iload 7 /* ecflags */
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
        42: .line 1150
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aload 8 /* ecopts_p */
            iconst_0
            aaload
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecopts:Lorg/jruby/runtime/builtin/IRubyObject;
        43: .line 1152
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.clearCodeConversion:()V
        44: .line 1153
            return
        end local 9 // int[] fmode_p
        end local 8 // org.jruby.runtime.builtin.IRubyObject[] ecopts_p
        end local 7 // int ecflags
        end local 6 // org.jruby.util.io.IOEncodable$ConvConfig holder
        end local 5 // org.jruby.runtime.builtin.IRubyObject nil
        end local 4 // org.jruby.runtime.builtin.IRubyObject opt
        end local 3 // org.jruby.runtime.builtin.IRubyObject v2
        end local 2 // org.jruby.runtime.builtin.IRubyObject v1
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   45     0              this  Lorg/jruby/RubyIO;
            0   45     1           context  Lorg/jruby/runtime/ThreadContext;
            0   45     2                v1  Lorg/jruby/runtime/builtin/IRubyObject;
            0   45     3                v2  Lorg/jruby/runtime/builtin/IRubyObject;
            0   45     4               opt  Lorg/jruby/runtime/builtin/IRubyObject;
            1   45     5               nil  Lorg/jruby/runtime/builtin/IRubyObject;
            2   45     6            holder  Lorg/jruby/util/io/IOEncodable$ConvConfig;
            3   45     7           ecflags  I
            4   45     8          ecopts_p  [Lorg/jruby/runtime/builtin/IRubyObject;
            7   22     9               tmp  Lorg/jruby/runtime/builtin/IRubyObject;
            9   16    10  internalAsString  Lorg/jruby/RubyString;
           29   36     9               tmp  Lorg/jruby/runtime/builtin/IRubyObject;
           37   45     9           fmode_p  [I
    MethodParameters:
         Name  Flags
      context  
      v1       
      v2       
      opt      

  public static org.jruby.runtime.builtin.IRubyObject open(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=4, locals=5, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 1158
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            aload 0 /* context */
            aload 2 /* args */
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokevirtual org.jruby.RubyClass.newInstance:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* io */
        start local 4 // org.jruby.runtime.builtin.IRubyObject io
         1: .line 1160
            aload 0 /* context */
            aload 4 /* io */
            aload 3 /* block */
            invokestatic org.jruby.RubyIO.ensureYieldClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject io
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3    block  Lorg/jruby/runtime/Block;
            1    2     4       io  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, rest = true, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  public static org.jruby.runtime.builtin.IRubyObject ensureYieldClose(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 port
        start local 2 // org.jruby.runtime.Block block
         0: .line 1164
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 7
         1: .line 1166
            aload 2 /* block */
            aload 0 /* context */
            aload 1 /* port */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4
         2: .line 1168
            aload 0 /* context */
            aload 1 /* port */
            invokestatic org.jruby.RubyIO.ioClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         3: .line 1166
            aload 4
            areturn
         4: .line 1167
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 1168
            aload 0 /* context */
            aload 1 /* port */
            invokestatic org.jruby.RubyIO.ioClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         6: .line 1169
            aload 3
            athrow
         7: .line 1171
      StackMap locals:
      StackMap stack:
            aload 1 /* port */
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject port
        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     port  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     2    block  Lorg/jruby/runtime/Block;
      Exception table:
        from    to  target  type
           1     2       4  any
    MethodParameters:
         Name  Flags
      context  
      port     
      block    

  public static org.jruby.runtime.builtin.IRubyObject sysopen(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (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=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.runtime.Block block
         0: .line 1176
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 0 /* recv */
            aload 1 /* args */
            aload 2 /* block */
            invokestatic org.jruby.RubyIO.sysopen:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1   args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      recv   
      args   
      block  

  public static org.jruby.runtime.builtin.IRubyObject sysopen19(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=4, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        start local 3 // org.jruby.runtime.Block block
         0: .line 1181
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* argv */
            aload 3 /* block */
            invokestatic org.jruby.RubyIO.sysopen:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      recv     
      argv     
      block    

  public static org.jruby.runtime.builtin.IRubyObject sysopen(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=4, locals=12, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        start local 3 // org.jruby.runtime.Block block
         0: .line 1187
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 1189
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 7 /* vperm */
        start local 7 // org.jruby.runtime.builtin.IRubyObject vperm
         2: dup
            astore 6 /* vmode */
        start local 6 // org.jruby.runtime.builtin.IRubyObject vmode
         3: astore 5 /* fname */
        start local 5 // org.jruby.runtime.builtin.IRubyObject fname
         4: .line 1194
            aload 2 /* argv */
            arraylength
            tableswitch { // 1 - 3
                    1: 7
                    2: 6
                    3: 5
              default: 8
          }
         5: .line 1196
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* argv */
            iconst_2
            aaload
            astore 7 /* vperm */
         6: .line 1198
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_1
            aaload
            astore 6 /* vmode */
         7: .line 1200
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_0
            aaload
            astore 5 /* fname */
         8: .line 1202
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 0 /* context */
            aload 5 /* fname */
            invokestatic org.jruby.RubyFile.get_path:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            invokestatic org.jruby.util.StringSupport.checkEmbeddedNulls:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            astore 5 /* fname */
         9: .line 1204
            aload 6 /* vmode */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 12
        10: .line 1205
            getstatic jnr.constants.platform.OpenFlags.O_RDONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            istore 9 /* oflags */
        start local 9 // int oflags
        11: goto 18
        end local 9 // int oflags
        12: .line 1206
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 6 /* vmode */
            invokestatic org.jruby.util.TypeConverter.checkIntegerType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 8 /* intmode */
        start local 8 // org.jruby.runtime.builtin.IRubyObject intmode
        13: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 16
        14: .line 1207
            aload 8 /* intmode */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 9 /* oflags */
        start local 9 // int oflags
        15: goto 18
        end local 9 // int oflags
        16: .line 1209
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 6 /* vmode */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 6 /* vmode */
        17: .line 1210
            aload 4 /* runtime */
            aload 6 /* vmode */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic org.jruby.util.io.OpenFile.ioModestrOflags:(Lorg/jruby/Ruby;Ljava/lang/String;)I
            istore 9 /* oflags */
        end local 8 // org.jruby.runtime.builtin.IRubyObject intmode
        start local 9 // int oflags
        18: .line 1212
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top int
      StackMap stack:
            aload 7 /* vperm */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 19
            sipush 438
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 7 /* vperm */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
      StackMap locals:
      StackMap stack: int
        20: istore 11 /* perm */
        start local 11 // int perm
        21: .line 1214
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* fname */
            invokestatic org.jruby.util.StringSupport.checkStringSafety:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)V
        22: .line 1215
            aload 5 /* fname */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.dupFrozen:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* fname */
        23: .line 1216
            aload 4 /* runtime */
            aload 5 /* fname */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            iload 9 /* oflags */
            iload 11 /* perm */
            invokestatic org.jruby.RubyIO.sysopen:(Lorg/jruby/Ruby;Ljava/lang/String;II)Lorg/jruby/util/io/ChannelFD;
            astore 10 /* fd */
        start local 10 // org.jruby.util.io.ChannelFD fd
        24: .line 1217
            aload 4 /* runtime */
            aload 10 /* fd */
            iconst_1
            invokevirtual org.jruby.util.io.ChannelFD.bestFileno:(Z)I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 11 // int perm
        end local 10 // org.jruby.util.io.ChannelFD fd
        end local 9 // int oflags
        end local 7 // org.jruby.runtime.builtin.IRubyObject vperm
        end local 6 // org.jruby.runtime.builtin.IRubyObject vmode
        end local 5 // org.jruby.runtime.builtin.IRubyObject fname
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0  context  Lorg/jruby/runtime/ThreadContext;
            0   25     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   25     2     argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   25     3    block  Lorg/jruby/runtime/Block;
            1   25     4  runtime  Lorg/jruby/Ruby;
            4   25     5    fname  Lorg/jruby/runtime/builtin/IRubyObject;
            3   25     6    vmode  Lorg/jruby/runtime/builtin/IRubyObject;
            2   25     7    vperm  Lorg/jruby/runtime/builtin/IRubyObject;
           13   18     8  intmode  Lorg/jruby/runtime/builtin/IRubyObject;
           11   12     9   oflags  I
           15   16     9   oflags  I
           18   25     9   oflags  I
           24   25    10       fd  Lorg/jruby/util/io/ChannelFD;
           21   25    11     perm  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"sysopen"}, required = 1, optional = 2, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      argv     
      block    

  protected static org.jruby.util.io.ChannelFD sysopen(org.jruby.Ruby, java.lang.String, int, int);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;II)Lorg/jruby/util/io/ChannelFD;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String fname
        start local 2 // int oflags
        start local 3 // int perm
         0: .line 1230
            new org.jruby.RubyIO$Sysopen
            dup
            invokespecial org.jruby.RubyIO$Sysopen.<init>:()V
            astore 5 /* data */
        start local 5 // org.jruby.RubyIO$Sysopen data
         1: .line 1232
            aload 5 /* data */
            aload 1 /* fname */
            putfield org.jruby.RubyIO$Sysopen.fname:Ljava/lang/String;
         2: .line 1233
            aload 5 /* data */
            iload 2 /* oflags */
            putfield org.jruby.RubyIO$Sysopen.oflags:I
         3: .line 1234
            aload 5 /* data */
            iload 3 /* perm */
            putfield org.jruby.RubyIO$Sysopen.perm:I
         4: .line 1236
            aload 0 /* runtime */
            aload 5 /* data */
            invokestatic org.jruby.RubyIO.sysopenInternal:(Lorg/jruby/Ruby;Lorg/jruby/RubyIO$Sysopen;)Lorg/jruby/util/io/ChannelFD;
            astore 4 /* fd */
        start local 4 // org.jruby.util.io.ChannelFD fd
         5: .line 1237
            aload 4 /* fd */
            ifnonnull 9
         6: .line 1238
            aload 5 /* data */
            getfield org.jruby.RubyIO$Sysopen.errno:Ljnr/constants/platform/Errno;
            ifnull 8
         7: .line 1239
            aload 0 /* runtime */
            aload 5 /* data */
            getfield org.jruby.RubyIO$Sysopen.errno:Ljnr/constants/platform/Errno;
            aload 1 /* fname */
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 1241
      StackMap locals: org.jruby.util.io.ChannelFD org.jruby.RubyIO$Sysopen
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* fname */
            invokevirtual org.jruby.Ruby.newSystemCallError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         9: .line 1244
      StackMap locals:
      StackMap stack:
            aload 4 /* fd */
            areturn
        end local 5 // org.jruby.RubyIO$Sysopen data
        end local 4 // org.jruby.util.io.ChannelFD fd
        end local 3 // int perm
        end local 2 // int oflags
        end local 1 // java.lang.String fname
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  runtime  Lorg/jruby/Ruby;
            0   10     1    fname  Ljava/lang/String;
            0   10     2   oflags  I
            0   10     3     perm  I
            5   10     4       fd  Lorg/jruby/util/io/ChannelFD;
            1   10     5     data  Lorg/jruby/RubyIO$Sysopen;
    MethodParameters:
         Name  Flags
      runtime  
      fname    
      oflags   
      perm     

  private static org.jruby.util.io.ChannelFD sysopenInternal(org.jruby.Ruby, org.jruby.RubyIO$Sysopen);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyIO$Sysopen;)Lorg/jruby/util/io/ChannelFD;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyIO$Sysopen data
         0: .line 1251
            aload 0 /* runtime */
            aload 1 /* data */
            invokestatic org.jruby.RubyIO.sysopenFunc:(Lorg/jruby/Ruby;Lorg/jruby/RubyIO$Sysopen;)Lorg/jruby/util/io/ChannelFD;
            astore 2 /* fd */
        start local 2 // org.jruby.util.io.ChannelFD fd
         1: .line 1254
            aload 2 /* fd */
            areturn
        end local 2 // org.jruby.util.io.ChannelFD fd
        end local 1 // org.jruby.RubyIO$Sysopen data
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
            0    2     1     data  Lorg/jruby/RubyIO$Sysopen;
            1    2     2       fd  Lorg/jruby/util/io/ChannelFD;
    MethodParameters:
         Name  Flags
      runtime  
      data     

  private static org.jruby.util.io.ChannelFD sysopenFunc(org.jruby.Ruby, org.jruby.RubyIO$Sysopen);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyIO$Sysopen;)Lorg/jruby/util/io/ChannelFD;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyIO$Sysopen data
         0: .line 1259
            aload 0 /* runtime */
            aload 1 /* data */
            invokestatic org.jruby.RubyIO.cloexecOpen:(Lorg/jruby/Ruby;Lorg/jruby/RubyIO$Sysopen;)Lorg/jruby/util/io/ChannelFD;
            areturn
        end local 1 // org.jruby.RubyIO$Sysopen data
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1     data  Lorg/jruby/RubyIO$Sysopen;
    MethodParameters:
         Name  Flags
      runtime  
      data     

  public static org.jruby.util.io.ChannelFD cloexecOpen(org.jruby.Ruby, org.jruby.RubyIO$Sysopen);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyIO$Sysopen;)Lorg/jruby/util/io/ChannelFD;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyIO$Sysopen data
         0: .line 1264
            aconst_null
            astore 2 /* ret */
        start local 2 // java.nio.channels.Channel ret
         1: .line 1265
            getstatic jnr.constants.platform.OpenFlags.O_CLOEXEC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.defined:()Z
            ifeq 3
         2: .line 1266
            aload 1 /* data */
            dup
            getfield org.jruby.RubyIO$Sysopen.oflags:I
            getstatic jnr.constants.platform.OpenFlags.O_CLOEXEC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            putfield org.jruby.RubyIO$Sysopen.oflags:I
         3: .line 1270
      StackMap locals: java.nio.channels.Channel
      StackMap stack:
            new org.jruby.util.io.PosixShim
            dup
            aload 0 /* runtime */
            invokespecial org.jruby.util.io.PosixShim.<init>:(Lorg/jruby/Ruby;)V
            astore 3 /* shim */
        start local 3 // org.jruby.util.io.PosixShim shim
         4: .line 1271
            aload 3 /* shim */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentDirectory:()Ljava/lang/String;
            aload 1 /* data */
            getfield org.jruby.RubyIO$Sysopen.fname:Ljava/lang/String;
            aload 1 /* data */
            getfield org.jruby.RubyIO$Sysopen.oflags:I
            aload 1 /* data */
            getfield org.jruby.RubyIO$Sysopen.perm:I
            invokevirtual org.jruby.util.io.PosixShim.open:(Ljava/lang/String;Ljava/lang/String;II)Ljava/nio/channels/Channel;
            astore 2 /* ret */
         5: .line 1272
            aload 2 /* ret */
            ifnonnull 8
         6: .line 1273
            aload 1 /* data */
            aload 3 /* shim */
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            putfield org.jruby.RubyIO$Sysopen.errno:Ljnr/constants/platform/Errno;
         7: .line 1274
            aconst_null
            areturn
         8: .line 1276
      StackMap locals: org.jruby.util.io.PosixShim
      StackMap stack:
            new org.jruby.util.io.ChannelFD
            dup
            aload 2 /* ret */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            aload 1 /* data */
            getfield org.jruby.RubyIO$Sysopen.oflags:I
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;I)V
            astore 4 /* fd */
        start local 4 // org.jruby.util.io.ChannelFD fd
         9: .line 1277
            aload 4 /* fd */
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            ifle 11
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            invokeinterface jnr.posix.POSIX.isNative:()Z
            ifeq 11
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifne 11
        10: .line 1278
            aload 3 /* shim */
            aload 4 /* fd */
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            invokestatic org.jruby.util.io.OpenFile.fdFixCloexec:(Lorg/jruby/util/io/PosixShim;I)V
        11: .line 1281
      StackMap locals: org.jruby.util.io.ChannelFD
      StackMap stack:
            aload 4 /* fd */
            areturn
        end local 4 // org.jruby.util.io.ChannelFD fd
        end local 3 // org.jruby.util.io.PosixShim shim
        end local 2 // java.nio.channels.Channel ret
        end local 1 // org.jruby.RubyIO$Sysopen data
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0  runtime  Lorg/jruby/Ruby;
            0   12     1     data  Lorg/jruby/RubyIO$Sysopen;
            1   12     2      ret  Ljava/nio/channels/Channel;
            4   12     3     shim  Lorg/jruby/util/io/PosixShim;
            9   12     4       fd  Lorg/jruby/util/io/ChannelFD;
    MethodParameters:
         Name  Flags
      runtime  
      data     

  public boolean isAutoclose();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 1287
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 1 /* fptr */
        start local 1 // org.jruby.util.io.OpenFile fptr
         1: .line 1288
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isAutoclose:()Z
            ireturn
        end local 1 // org.jruby.util.io.OpenFile fptr
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/RubyIO;
            1    2     1  fptr  Lorg/jruby/util/io/OpenFile;

  public void setAutoclose(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // boolean autoclose
         0: .line 1294
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 2 /* fptr */
        start local 2 // org.jruby.util.io.OpenFile fptr
         1: .line 1295
            aload 2 /* fptr */
            iload 1 /* autoclose */
            invokevirtual org.jruby.util.io.OpenFile.setAutoclose:(Z)V
         2: .line 1296
            return
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // boolean autoclose
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/jruby/RubyIO;
            0    3     1  autoclose  Z
            1    3     2       fptr  Lorg/jruby/util/io/OpenFile;
    MethodParameters:
           Name  Flags
      autoclose  

  public org.jruby.runtime.builtin.IRubyObject autoclose(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1300
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.isAutoclose:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"autoclose?"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject autoclose_set(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: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject autoclose
         0: .line 1305
            aload 0 /* this */
            aload 2 /* autoclose */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            invokevirtual org.jruby.RubyIO.setAutoclose:(Z)V
         1: .line 1306
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject autoclose
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/jruby/RubyIO;
            0    2     1    context  Lorg/jruby/runtime/ThreadContext;
            0    2     2  autoclose  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"autoclose="})
    MethodParameters:
           Name  Flags
      context    
      autoclose  

  public org.jruby.runtime.builtin.IRubyObject binmode();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 1312
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.setAscii8bitBinmode:()Lorg/jruby/RubyIO;
            pop
         1: .line 1314
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 1 /* write_io */
        start local 1 // org.jruby.RubyIO write_io
         2: .line 1315
            aload 1 /* write_io */
            aload 0 /* this */
            if_acmpeq 4
         3: .line 1316
            aload 1 /* write_io */
            invokevirtual org.jruby.RubyIO.setAscii8bitBinmode:()Lorg/jruby/RubyIO;
            pop
         4: .line 1318
      StackMap locals: org.jruby.RubyIO
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // org.jruby.RubyIO write_io
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/jruby/RubyIO;
            2    5     1  write_io  Lorg/jruby/RubyIO;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"binmode"})

  public org.jruby.runtime.builtin.IRubyObject op_binmode(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1324
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isBinmode:()Z
            invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/Ruby;Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"binmode?"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject syswrite(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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
         0: .line 1330
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1334
            aload 2 /* str */
            instanceof org.jruby.RubyString
            ifne 3
         2: .line 1335
            aload 2 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asString:()Lorg/jruby/RubyString;
            astore 2 /* str */
         3: .line 1337
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 7 /* io */
        start local 7 // org.jruby.RubyIO io
         4: .line 1338
            aload 7 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         5: .line 1340
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 8 /* locked */
        start local 8 // boolean locked
         6: .line 1342
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkWritable:(Lorg/jruby/runtime/ThreadContext;)V
         7: .line 1344
            aload 2 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.newFrozen:()Lorg/jruby/RubyString;
            astore 2 /* str */
         8: .line 1346
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 10
         9: .line 1347
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "syswrite for buffered IO"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
        10: .line 1350
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile top top org.jruby.RubyIO int
      StackMap stack:
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 9 /* strByteList */
        start local 9 // org.jruby.util.ByteList strByteList
        11: .line 1351
            aload 1 /* context */
            aload 4 /* fptr */
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            aload 9 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 9 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 9 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            invokestatic org.jruby.util.io.OpenFile.writeInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
            i2l
            lstore 5 /* n */
        start local 5 // long n
        12: .line 1353
            lload 5 /* n */
            ldc -1
            lcmp
            ifne 16
            aload 3 /* runtime */
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 9 // org.jruby.util.ByteList strByteList
        end local 5 // long n
        13: .line 1354
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        14: .line 1355
            iload 8 /* locked */
            ifeq 15
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        15: .line 1356
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile top top org.jruby.RubyIO int top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        start local 5 // long n
        16: .line 1355
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile long org.jruby.RubyIO int
      StackMap stack:
            iload 8 /* locked */
            ifeq 17
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 1358
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            lload 5 /* n */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            areturn
        end local 8 // boolean locked
        end local 7 // org.jruby.RubyIO io
        end local 5 // long n
        end local 4 // org.jruby.util.io.OpenFile fptr
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/jruby/RubyIO;
            0   18     1      context  Lorg/jruby/runtime/ThreadContext;
            0   18     2          str  Lorg/jruby/runtime/builtin/IRubyObject;
            1   18     3      runtime  Lorg/jruby/Ruby;
            5   18     4         fptr  Lorg/jruby/util/io/OpenFile;
           12   13     5            n  J
           16   18     5            n  J
            4   18     7           io  Lorg/jruby/RubyIO;
            6   18     8       locked  Z
           11   13     9  strByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           6    13      13  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"syswrite"}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      str      

  public org.jruby.runtime.builtin.IRubyObject write_nonblock(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
         0: .line 1364
            aload 1 /* context */
            ldc "exception"
            aload 2 /* argv */
            invokestatic org.jruby.ast.util.ArgsUtil.extractKeywordArg:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* exception */
        start local 3 // boolean exception
         3: .line 1366
            aload 2 /* argv */
            iconst_0
            aaload
            astore 4 /* str */
        start local 4 // org.jruby.runtime.builtin.IRubyObject str
         4: .line 1368
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* str */
            iload 3 /* exception */
            ifeq 5
            iconst_0
            goto 6
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
         5: iconst_1
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int
         6: invokevirtual org.jruby.RubyIO.ioWriteNonblock:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject str
        end local 3 // boolean exception
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/jruby/RubyIO;
            0    7     1    context  Lorg/jruby/runtime/ThreadContext;
            0    7     2       argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            3    7     3  exception  Z
            4    7     4        str  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"write_nonblock"}, required = 1, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      argv     

  private org.jruby.runtime.builtin.IRubyObject ioWriteNonblock(org.jruby.runtime.ThreadContext, org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.Ruby runtime
        start local 3 // org.jruby.runtime.builtin.IRubyObject str
        start local 4 // boolean no_exception
         0: .line 1376
            aload 3 /* str */
            instanceof org.jruby.RubyString
            ifne 2
         1: .line 1377
            aload 3 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asString:()Lorg/jruby/RubyString;
            astore 3 /* str */
         2: .line 1379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 8 /* io */
        start local 8 // org.jruby.RubyIO io
         3: .line 1380
            aload 8 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        start local 5 // org.jruby.util.io.OpenFile fptr
         4: .line 1382
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 9 /* locked */
        start local 9 // boolean locked
         5: .line 1384
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkWritable:(Lorg/jruby/runtime/ThreadContext;)V
         6: .line 1386
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 8
         7: .line 1387
            aload 2 /* runtime */
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 1389
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int org.jruby.util.io.OpenFile top top org.jruby.RubyIO int
      StackMap stack:
            aload 5 /* fptr */
            aload 2 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.setNonblock:(Lorg/jruby/Ruby;)V
         9: .line 1391
            aload 3 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 10 /* strByteList */
        start local 10 // org.jruby.util.ByteList strByteList
        10: .line 1392
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            aload 10 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 10 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 10 /* strByteList */
            invokevirtual org.jruby.util.ByteList.getRealSize:()I
            iconst_1
            invokevirtual org.jruby.util.io.PosixShim.write:(Lorg/jruby/util/io/ChannelFD;[BIIZ)I
            i2l
            lstore 6 /* n */
        start local 6 // long n
        11: .line 1394
            lload 6 /* n */
            ldc -1
            lcmp
            ifne 22
        12: .line 1395
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            getstatic jnr.constants.platform.Errno.EWOULDBLOCK:Ljnr/constants/platform/Errno;
            if_acmpeq 13
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            getstatic jnr.constants.platform.Errno.EAGAIN:Ljnr/constants/platform/Errno;
            if_acmpne 18
        13: .line 1396
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int org.jruby.util.io.OpenFile long org.jruby.RubyIO int org.jruby.util.ByteList
      StackMap stack:
            iload 4 /* no_exception */
            ifeq 17
        14: .line 1397
            aload 2 /* runtime */
            ldc "wait_writable"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            astore 12
        15: .line 1405
            iload 9 /* locked */
            ifeq 16
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        16: .line 1397
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int org.jruby.util.io.OpenFile long org.jruby.RubyIO int org.jruby.util.ByteList top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 12
            areturn
        17: .line 1399
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int org.jruby.util.io.OpenFile long org.jruby.RubyIO int org.jruby.util.ByteList
      StackMap stack:
            aload 2 /* runtime */
            ldc "write would block"
            invokevirtual org.jruby.Ruby.newErrnoEAGAINWritableError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 1402
      StackMap locals:
      StackMap stack:
            aload 2 /* runtime */
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 10 // org.jruby.util.ByteList strByteList
        end local 6 // long n
        19: .line 1404
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int org.jruby.util.io.OpenFile top top org.jruby.RubyIO int
      StackMap stack: java.lang.Throwable
            astore 11
        20: .line 1405
            iload 9 /* locked */
            ifeq 21
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        21: .line 1406
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int org.jruby.util.io.OpenFile top top org.jruby.RubyIO int top java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        start local 6 // long n
        22: .line 1405
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int org.jruby.util.io.OpenFile long org.jruby.RubyIO int
      StackMap stack:
            iload 9 /* locked */
            ifeq 23
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        23: .line 1408
      StackMap locals:
      StackMap stack:
            aload 2 /* runtime */
            lload 6 /* n */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            areturn
        end local 9 // boolean locked
        end local 8 // org.jruby.RubyIO io
        end local 6 // long n
        end local 5 // org.jruby.util.io.OpenFile fptr
        end local 4 // boolean no_exception
        end local 3 // org.jruby.runtime.builtin.IRubyObject str
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   24     0          this  Lorg/jruby/RubyIO;
            0   24     1       context  Lorg/jruby/runtime/ThreadContext;
            0   24     2       runtime  Lorg/jruby/Ruby;
            0   24     3           str  Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     4  no_exception  Z
            4   24     5          fptr  Lorg/jruby/util/io/OpenFile;
           11   19     6             n  J
           22   24     6             n  J
            3   24     8            io  Lorg/jruby/RubyIO;
            5   24     9        locked  Z
           10   19    10   strByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           5    15      19  any
          17    19      19  any
    MethodParameters:
              Name  Flags
      context       
      runtime       
      str           
      no_exception  

  public org.jruby.RubyIO GetWriteIO();
    descriptor: ()Lorg/jruby/RubyIO;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 1413
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.checkInitialized:()V
         1: .line 1414
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.tiedIOForWriting:Lorg/jruby/RubyIO;
            astore 1 /* writeIO */
        start local 1 // org.jruby.RubyIO writeIO
         2: .line 1415
            aload 1 /* writeIO */
            ifnull 4
         3: .line 1416
            aload 1 /* writeIO */
            areturn
         4: .line 1418
      StackMap locals: org.jruby.RubyIO
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // org.jruby.RubyIO writeIO
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/RubyIO;
            2    5     1  writeIO  Lorg/jruby/RubyIO;

  private void checkInitialized();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 1422
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            ifnonnull 2
         1: .line 1423
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            ldc "uninitialized stream"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1425
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/RubyIO;

  public org.jruby.runtime.builtin.IRubyObject write(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
         0: .line 1432
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* str */
            iconst_0
            invokevirtual org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      str  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"write"}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      str      

  public org.jruby.runtime.builtin.IRubyObject write(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1437
            lconst_0
            lstore 3 /* acc */
        start local 3 // long acc
         1: .line 1438
            aload 2 /* args */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 7
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] long top int int org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack:
         2: aload 8
            iload 6
            aaload
            astore 5 /* s */
        start local 5 // org.jruby.runtime.builtin.IRubyObject s
         3: .line 1439
            aload 0 /* this */
            aload 1 /* context */
            aload 5 /* s */
            iconst_0
            invokevirtual org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* write */
        start local 9 // org.jruby.runtime.builtin.IRubyObject write
         4: .line 1440
            aload 9 /* write */
            invokestatic org.jruby.RubyNumeric.num2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            lstore 10 /* num2long */
        start local 10 // long num2long
         5: .line 1441
            lload 3 /* acc */
            lload 10 /* num2long */
            ladd
            lstore 3 /* acc */
        end local 10 // long num2long
        end local 9 // org.jruby.runtime.builtin.IRubyObject write
        end local 5 // org.jruby.runtime.builtin.IRubyObject s
         6: .line 1438
            iinc 6 1
      StackMap locals:
      StackMap stack:
         7: iload 6
            iload 7
            if_icmplt 2
         8: .line 1443
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 3 /* acc */
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            areturn
        end local 3 // long acc
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/jruby/RubyIO;
            0    9     1   context  Lorg/jruby/runtime/ThreadContext;
            0    9     2      args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    9     3       acc  J
            3    6     5         s  Lorg/jruby/runtime/builtin/IRubyObject;
            4    6     9     write  Lorg/jruby/runtime/builtin/IRubyObject;
            5    6    10  num2long  J
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"write"}, rest = true)
    MethodParameters:
         Name  Flags
      context  
      args     

  final org.jruby.runtime.builtin.IRubyObject write(org.jruby.runtime.ThreadContext, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;I)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int ch
         0: .line 1447
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 2 /* ch */
            i2b
            invokestatic org.jruby.RubyInteger.singleCharByteList:(B)Lorg/jruby/util/ByteList;
            invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 3 /* str */
        start local 3 // org.jruby.RubyString str
         1: .line 1448
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* str */
            iconst_0
            invokevirtual org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.RubyString str
        end local 2 // int ch
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2       ch  I
            1    2     3      str  Lorg/jruby/RubyString;
    MethodParameters:
         Name  Flags
      context  
      ch       

  public org.jruby.runtime.builtin.IRubyObject write(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
        start local 3 // boolean nosync
         0: .line 1453
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 1458
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 9 /* io */
        start local 9 // org.jruby.RubyIO io
         2: .line 1460
            aload 2 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asString:()Lorg/jruby/RubyString;
            astore 2 /* str */
         3: .line 1461
            aload 4 /* runtime */
            aload 9 /* io */
            invokestatic org.jruby.util.TypeConverter.ioCheckIO:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* tmp */
        start local 8 // org.jruby.runtime.builtin.IRubyObject tmp
         4: .line 1462
            aload 8 /* tmp */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 6
         5: .line 1464
            aload 1 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            getfield org.jruby.runtime.JavaSites$IOSites.write:Lorg/jruby/runtime/callsite/CachingCallSite;
            aload 1 /* context */
            aload 9 /* io */
            aload 9 /* io */
            aload 2 /* str */
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         6: .line 1466
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby top top top org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO
      StackMap stack:
            aload 8 /* tmp */
            checkcast org.jruby.RubyIO
            astore 9 /* io */
         7: .line 1467
            aload 2 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.size:()I
            ifne 8
            aload 4 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            areturn
         8: .line 1469
      StackMap locals:
      StackMap stack:
            aload 9 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        start local 5 // org.jruby.util.io.OpenFile fptr
         9: .line 1471
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 10 /* locked */
        start local 10 // boolean locked
        10: .line 1473
            aload 9 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        11: .line 1474
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkWritable:(Lorg/jruby/runtime/ThreadContext;)V
        12: .line 1476
            aload 5 /* fptr */
            aload 1 /* context */
            aload 2 /* str */
            iload 3 /* nosync */
            invokevirtual org.jruby.util.io.OpenFile.fwrite:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)J
            lstore 6 /* n */
        start local 6 // long n
        13: .line 1477
            lload 6 /* n */
            ldc -1
            lcmp
            ifne 17
            aload 4 /* runtime */
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // long n
        14: .line 1478
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby org.jruby.util.io.OpenFile top top org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO int
      StackMap stack: java.lang.Throwable
            astore 11
        15: .line 1479
            iload 10 /* locked */
            ifeq 16
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        16: .line 1480
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        start local 6 // long n
        17: .line 1479
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby org.jruby.util.io.OpenFile long org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO int
      StackMap stack:
            iload 10 /* locked */
            ifeq 18
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        18: .line 1482
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            lload 6 /* n */
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            areturn
        end local 10 // boolean locked
        end local 9 // org.jruby.RubyIO io
        end local 8 // org.jruby.runtime.builtin.IRubyObject tmp
        end local 6 // long n
        end local 5 // org.jruby.util.io.OpenFile fptr
        end local 4 // org.jruby.Ruby runtime
        end local 3 // boolean nosync
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lorg/jruby/RubyIO;
            0   19     1  context  Lorg/jruby/runtime/ThreadContext;
            0   19     2      str  Lorg/jruby/runtime/builtin/IRubyObject;
            0   19     3   nosync  Z
            1   19     4  runtime  Lorg/jruby/Ruby;
            9   19     5     fptr  Lorg/jruby/util/io/OpenFile;
           13   14     6        n  J
           17   19     6        n  J
            4   19     8      tmp  Lorg/jruby/runtime/builtin/IRubyObject;
            2   19     9       io  Lorg/jruby/RubyIO;
           10   19    10   locked  Z
      Exception table:
        from    to  target  type
          10    14      14  any
    MethodParameters:
         Name  Flags
      context  
      str      
      nosync   

  public org.jruby.runtime.builtin.IRubyObject op_append(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject anObject
         0: .line 1491
            aload 1 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            getfield org.jruby.runtime.JavaSites$IOSites.write:Lorg/jruby/runtime/callsite/CachingCallSite;
            aload 1 /* context */
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* anObject */
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         1: .line 1493
            aload 0 /* this */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject anObject
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jruby/RubyIO;
            0    2     1   context  Lorg/jruby/runtime/ThreadContext;
            0    2     2  anObject  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"<<"}, required = 1)
    MethodParameters:
          Name  Flags
      context   
      anObject  

  public org.jruby.RubyFixnum fileno(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1498
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.getFileno:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"fileno"}, alias = {"to_i"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyFixnum lineno(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1507
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.getLineNumber:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"lineno"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyFixnum lineno_set(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject newLineNumber
         0: .line 1516
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            aload 2 /* newLineNumber */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokevirtual org.jruby.util.io.OpenFile.setLineNumber:(I)V
         1: .line 1518
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.getLineNumber:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject newLineNumber
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/jruby/RubyIO;
            0    2     1        context  Lorg/jruby/runtime/ThreadContext;
            0    2     2  newLineNumber  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"lineno="}, required = 1)
    MethodParameters:
               Name  Flags
      context        
      newLineNumber  

  public org.jruby.RubyBoolean sync(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1529
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1532
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 4 /* io */
        start local 4 // org.jruby.RubyIO io
         2: .line 1533
            aload 4 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         3: .line 1534
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
         4: .line 1536
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            bipush 8
            iand
            ifeq 5
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            goto 6
      StackMap locals: org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO
      StackMap stack:
         5: aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
      StackMap locals:
      StackMap stack: org.jruby.RubyBoolean
         6: astore 6
         7: .line 1538
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 1536
            aload 6
            areturn
         9: .line 1537
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        10: .line 1538
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 1539
            aload 5
            athrow
        end local 4 // org.jruby.RubyIO io
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/jruby/RubyIO;
            0   12     1  context  Lorg/jruby/runtime/ThreadContext;
            1   12     2  runtime  Lorg/jruby/Ruby;
            3   12     3     fptr  Lorg/jruby/util/io/OpenFile;
            2   12     4       io  Lorg/jruby/RubyIO;
      Exception table:
        from    to  target  type
           4     7       9  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject pid(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1552
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 2 /* myOpenFile */
        start local 2 // org.jruby.util.io.OpenFile myOpenFile
         1: .line 1554
            aload 2 /* myOpenFile */
            invokevirtual org.jruby.util.io.OpenFile.getProcess:()Ljava/lang/Process;
            ifnonnull 3
         2: .line 1555
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 1559
      StackMap locals: org.jruby.util.io.OpenFile
      StackMap stack:
            aload 2 /* myOpenFile */
            invokevirtual org.jruby.util.io.OpenFile.getPid:()J
            lstore 3 /* pid */
        start local 3 // long pid
         4: .line 1561
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 3 /* pid */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            areturn
        end local 3 // long pid
        end local 2 // org.jruby.util.io.OpenFile myOpenFile
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/jruby/RubyIO;
            0    5     1     context  Lorg/jruby/runtime/ThreadContext;
            1    5     2  myOpenFile  Lorg/jruby/util/io/OpenFile;
            4    5     3         pid  J
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyFixnum pos(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1567
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 2 /* fptr */
        start local 2 // org.jruby.util.io.OpenFile fptr
         1: .line 1569
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 3 /* locked */
        start local 3 // boolean locked
         2: .line 1571
            aload 2 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.tell:(Lorg/jruby/runtime/ThreadContext;)J
            lstore 4 /* pos */
        start local 4 // long pos
         3: .line 1572
            lload 4 /* pos */
            ldc -1
            lcmp
            ifne 4
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            ifnull 4
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 1573
      StackMap locals: org.jruby.util.io.OpenFile int long
      StackMap stack:
            lload 4 /* pos */
            aload 2 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            i2l
            lsub
            lstore 4 /* pos */
         5: .line 1574
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 4 /* pos */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            astore 7
         6: .line 1576
            iload 3 /* locked */
            ifeq 7
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 1574
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile int long top org.jruby.RubyFixnum
      StackMap stack:
            aload 7
            areturn
        end local 4 // long pos
         8: .line 1575
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
            astore 6
         9: .line 1576
            iload 3 /* locked */
            ifeq 10
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        10: .line 1577
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile int top top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 3 // boolean locked
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/jruby/RubyIO;
            0   11     1  context  Lorg/jruby/runtime/ThreadContext;
            1   11     2     fptr  Lorg/jruby/util/io/OpenFile;
            2   11     3   locked  Z
            3    8     4      pos  J
      Exception table:
        from    to  target  type
           2     6       8  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pos", "tell"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyFixnum pos_set(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject offset
         0: .line 1586
            aload 2 /* offset */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            lstore 4 /* pos */
        start local 4 // long pos
         1: .line 1587
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         2: .line 1589
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 6 /* locked */
        start local 6 // boolean locked
         3: .line 1591
            aload 3 /* fptr */
            aload 1 /* context */
            lload 4 /* pos */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            lstore 4 /* pos */
         4: .line 1592
            lload 4 /* pos */
            ldc -1
            lcmp
            ifne 8
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            ifnull 8
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 1593
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile long int
      StackMap stack: java.lang.Throwable
            astore 7
         6: .line 1594
            iload 6 /* locked */
            ifeq 7
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 1595
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
         8: .line 1594
      StackMap locals:
      StackMap stack:
            iload 6 /* locked */
            ifeq 9
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 1597
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 4 /* pos */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            areturn
        end local 6 // boolean locked
        end local 4 // long pos
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.runtime.builtin.IRubyObject offset
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/jruby/RubyIO;
            0   10     1  context  Lorg/jruby/runtime/ThreadContext;
            0   10     2   offset  Lorg/jruby/runtime/builtin/IRubyObject;
            2   10     3     fptr  Lorg/jruby/util/io/OpenFile;
            1   10     4      pos  J
            3   10     6   locked  Z
      Exception table:
        from    to  target  type
           3     5       5  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pos="}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      offset   

  public org.jruby.runtime.builtin.IRubyObject print(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1605
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* args */
            invokestatic org.jruby.RubyIO.print:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(rest = true, reads = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  
      args     

  public static org.jruby.runtime.builtin.IRubyObject print(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 out
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1614
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1617
            aload 2 /* args */
            arraylength
            istore 6 /* argc */
        start local 6 // int argc
         2: .line 1620
            iload 6 /* argc */
            ifne 6
         3: .line 1621
            iconst_1
            istore 6 /* argc */
         4: .line 1622
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getLastLine:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* line */
        start local 5 // org.jruby.runtime.builtin.IRubyObject line
         5: .line 1623
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* line */
            aastore
            astore 2 /* args */
        end local 5 // org.jruby.runtime.builtin.IRubyObject line
         6: .line 1625
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby top top int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 13
         8: .line 1626
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int top int
      StackMap stack:
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$,"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.get:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* outputFS */
        start local 7 // org.jruby.runtime.builtin.IRubyObject outputFS
         9: .line 1627
            aload 7 /* outputFS */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 11
            iload 4 /* i */
            ifle 11
        10: .line 1628
            aload 0 /* context */
            aload 1 /* out */
            aload 7 /* outputFS */
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        11: .line 1630
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* context */
            aload 1 /* out */
            aload 2 /* args */
            iload 4 /* i */
            aaload
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 7 // org.jruby.runtime.builtin.IRubyObject outputFS
        12: .line 1625
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            iload 6 /* argc */
            if_icmplt 8
        14: .line 1632
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$\\"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.get:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* outputRS */
        start local 7 // org.jruby.runtime.builtin.IRubyObject outputRS
        15: .line 1633
            iload 6 /* argc */
            ifle 17
            aload 7 /* outputRS */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 17
        16: .line 1634
            aload 0 /* context */
            aload 1 /* out */
            aload 7 /* outputRS */
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        17: .line 1637
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 7 // org.jruby.runtime.builtin.IRubyObject outputRS
        end local 6 // int argc
        end local 4 // int i
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject out
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0   context  Lorg/jruby/runtime/ThreadContext;
            0   18     1       out  Lorg/jruby/runtime/builtin/IRubyObject;
            0   18     2      args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   18     3   runtime  Lorg/jruby/Ruby;
            7   18     4         i  I
            5    6     5      line  Lorg/jruby/runtime/builtin/IRubyObject;
            2   18     6      argc  I
            9   12     7  outputFS  Lorg/jruby/runtime/builtin/IRubyObject;
           15   18     7  outputRS  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      out      
      args     

  public org.jruby.runtime.builtin.IRubyObject printf(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1642
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* args */
            invokestatic org.jruby.RubyKernel.sprintf:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         1: .line 1643
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, rest = true)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject putc(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject ch
         0: .line 1649
            aload 2 /* ch */
            instanceof org.jruby.RubyString
            ifeq 3
         1: .line 1650
            aload 2 /* ch */
            checkcast org.jruby.RubyString
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_0
            iconst_1
            invokevirtual org.jruby.RubyString.substr:(Lorg/jruby/Ruby;II)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* str */
        start local 3 // org.jruby.runtime.builtin.IRubyObject str
         2: .line 1651
            goto 4
        end local 3 // org.jruby.runtime.builtin.IRubyObject str
         3: .line 1652
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* ch */
            invokestatic org.jruby.RubyNumeric.num2chr:(Lorg/jruby/runtime/builtin/IRubyObject;)B
            invokestatic org.jruby.RubyInteger.singleCharByteList:(B)Lorg/jruby/util/ByteList;
            invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 3 /* str */
        start local 3 // org.jruby.runtime.builtin.IRubyObject str
         4: .line 1655
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            getfield org.jruby.runtime.JavaSites$IOSites.write:Lorg/jruby/runtime/callsite/CachingCallSite;
            aload 1 /* context */
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* str */
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         5: .line 1657
            aload 2 /* ch */
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject str
        end local 2 // org.jruby.runtime.builtin.IRubyObject ch
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/RubyIO;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
            0    6     2       ch  Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     3      str  Lorg/jruby/runtime/builtin/IRubyObject;
            4    6     3      str  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1)
    MethodParameters:
         Name  Flags
      context  
      ch       

  public static org.jruby.runtime.builtin.IRubyObject putc(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=5, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.runtime.builtin.IRubyObject object
         0: .line 1661
            aload 1 /* maybeIO */
            instanceof org.jruby.RubyIO
            ifeq 3
         1: .line 1662
            aload 1 /* maybeIO */
            checkcast org.jruby.RubyIO
            aload 0 /* context */
            aload 2 /* object */
            invokevirtual org.jruby.RubyIO.putc:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         2: .line 1663
            goto 6
         3: .line 1664
      StackMap locals:
      StackMap stack:
            aload 2 /* object */
            invokestatic org.jruby.RubyNumeric.num2chr:(Lorg/jruby/runtime/builtin/IRubyObject;)B
            istore 3 /* c */
        start local 3 // byte c
         4: .line 1665
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 3 /* c */
            invokestatic org.jruby.RubyInteger.singleCharByteList:(B)Lorg/jruby/util/ByteList;
            invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 4 /* str */
        start local 4 // org.jruby.runtime.builtin.IRubyObject str
         5: .line 1666
            aload 0 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            getfield org.jruby.runtime.JavaSites$IOSites.write:Lorg/jruby/runtime/callsite/CachingCallSite;
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 1 /* maybeIO */
            aload 4 /* str */
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 4 // org.jruby.runtime.builtin.IRubyObject str
        end local 3 // byte c
         6: .line 1669
      StackMap locals:
      StackMap stack:
            aload 2 /* object */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject object
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Lorg/jruby/runtime/ThreadContext;
            0    7     1  maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2   object  Lorg/jruby/runtime/builtin/IRubyObject;
            4    6     3        c  B
            5    6     4      str  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      maybeIO  
      object   

  public org.jruby.RubyFixnum seek(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1673
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmple 2
         1: .line 1674
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            invokevirtual org.jruby.RubyIO.seek:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
            areturn
         2: .line 1676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokevirtual org.jruby.RubyIO.seek:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/RubyIO;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.RubyFixnum seek(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject off
         0: .line 1681
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* off */
            invokestatic org.jruby.RubyNumeric.num2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            iconst_0
            invokevirtual org.jruby.RubyIO.doSeek:(Lorg/jruby/runtime/ThreadContext;JI)J
            lstore 3 /* ret */
        start local 3 // long ret
         1: .line 1682
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 3 /* ret */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            areturn
        end local 3 // long ret
        end local 2 // org.jruby.runtime.builtin.IRubyObject off
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2      off  Lorg/jruby/runtime/builtin/IRubyObject;
            1    2     3      ret  J
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      off      

  public org.jruby.RubyFixnum seek(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/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject off
        start local 3 // org.jruby.runtime.builtin.IRubyObject whence
         0: .line 1687
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* off */
            invokestatic org.jruby.RubyNumeric.num2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            aload 3 /* whence */
            invokestatic org.jruby.RubyIO.interpretSeekWhence:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokevirtual org.jruby.RubyIO.doSeek:(Lorg/jruby/runtime/ThreadContext;JI)J
            lstore 4 /* ret */
        start local 4 // long ret
         1: .line 1688
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 4 /* ret */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            areturn
        end local 4 // long ret
        end local 3 // org.jruby.runtime.builtin.IRubyObject whence
        end local 2 // org.jruby.runtime.builtin.IRubyObject off
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2      off  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3   whence  Lorg/jruby/runtime/builtin/IRubyObject;
            1    2     4      ret  J
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      off      
      whence   

  private long doSeek(org.jruby.runtime.ThreadContext, long, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;JI)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // long pos
        start local 4 // int whence
         0: .line 1695
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        start local 5 // org.jruby.util.io.OpenFile fptr
         1: .line 1697
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 6 /* locked */
        start local 6 // boolean locked
         2: .line 1699
            aload 5 /* fptr */
            aload 1 /* context */
            lload 2 /* pos */
            iload 4 /* whence */
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            lstore 2 /* pos */
         3: .line 1700
            lload 2 /* pos */
            lconst_0
            lcmp
            ifge 8
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            ifnull 8
         4: .line 1701
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 1703
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext long int org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
            astore 7
         6: .line 1704
            iload 6 /* locked */
            ifeq 7
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         7: .line 1705
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
         8: .line 1704
      StackMap locals:
      StackMap stack:
            iload 6 /* locked */
            ifeq 9
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 1707
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
        end local 6 // boolean locked
        end local 5 // org.jruby.util.io.OpenFile fptr
        end local 4 // int whence
        end local 2 // long pos
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/jruby/RubyIO;
            0   10     1  context  Lorg/jruby/runtime/ThreadContext;
            0   10     2      pos  J
            0   10     4   whence  I
            1   10     5     fptr  Lorg/jruby/util/io/OpenFile;
            2   10     6   locked  Z
      Exception table:
        from    to  target  type
           2     5       5  any
    MethodParameters:
         Name  Flags
      context  
      pos      
      whence   

  public org.jruby.RubyFixnum sysseek(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1714
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1715
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* offset */
        start local 4 // org.jruby.runtime.builtin.IRubyObject offset
         2: .line 1716
            iconst_0
            istore 5 /* whence */
        start local 5 // int whence
         3: .line 1720
            aload 2 /* args */
            arraylength
            tableswitch { // 1 - 2
                    1: 6
                    2: 4
              default: 7
          }
         4: .line 1722
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aaload
            astore 9 /* ptrname */
        start local 9 // org.jruby.runtime.builtin.IRubyObject ptrname
         5: .line 1723
            aload 9 /* ptrname */
            invokestatic org.jruby.RubyIO.interpretSeekWhence:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 5 /* whence */
        end local 9 // org.jruby.runtime.builtin.IRubyObject ptrname
         6: .line 1725
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            astore 4 /* offset */
         7: .line 1727
      StackMap locals:
      StackMap stack:
            aload 4 /* offset */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            lstore 7 /* pos */
        start local 7 // long pos
         8: .line 1728
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 6 /* fptr */
        start local 6 // org.jruby.util.io.OpenFile fptr
         9: .line 1730
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 9 /* locked */
        start local 9 // boolean locked
        10: .line 1732
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isReadable:()Z
            ifeq 13
        11: .line 1733
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_BUFFERED:()Z
            ifne 12
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING:()Z
            ifeq 13
        12: .line 1734
      StackMap locals: org.jruby.util.io.OpenFile long int
      StackMap stack:
            aload 3 /* runtime */
            ldc "sysseek for buffered IO"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        13: .line 1736
      StackMap locals:
      StackMap stack:
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifeq 15
            aload 6 /* fptr */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 15
        14: .line 1737
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "sysseek for buffered IO"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
        15: .line 1739
      StackMap locals:
      StackMap stack:
            aload 6 /* fptr */
            aconst_null
            invokevirtual org.jruby.util.io.OpenFile.errno:(Ljnr/constants/platform/Errno;)V
        16: .line 1740
            aload 6 /* fptr */
            getfield org.jruby.util.io.OpenFile.posix:Lorg/jruby/util/io/PosixShim;
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            lload 7 /* pos */
            iload 5 /* whence */
            invokevirtual org.jruby.util.io.PosixShim.lseek:(Lorg/jruby/util/io/ChannelFD;JI)J
            lstore 7 /* pos */
        17: .line 1741
            lload 7 /* pos */
            ldc -1
            lcmp
            ifne 21
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            ifnull 21
            aload 3 /* runtime */
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 1742
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        19: .line 1743
            iload 9 /* locked */
            ifeq 20
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        20: .line 1744
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        21: .line 1743
      StackMap locals:
      StackMap stack:
            iload 9 /* locked */
            ifeq 22
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        22: .line 1746
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            lload 7 /* pos */
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            areturn
        end local 9 // boolean locked
        end local 7 // long pos
        end local 6 // org.jruby.util.io.OpenFile fptr
        end local 5 // int whence
        end local 4 // org.jruby.runtime.builtin.IRubyObject offset
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lorg/jruby/RubyIO;
            0   23     1  context  Lorg/jruby/runtime/ThreadContext;
            0   23     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   23     3  runtime  Lorg/jruby/Ruby;
            2   23     4   offset  Lorg/jruby/runtime/builtin/IRubyObject;
            3   23     5   whence  I
            9   23     6     fptr  Lorg/jruby/util/io/OpenFile;
            8   23     7      pos  J
            5    6     9  ptrname  Lorg/jruby/runtime/builtin/IRubyObject;
           10   23     9   locked  Z
      Exception table:
        from    to  target  type
          10    18      18  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      args     

  private static int interpretSeekWhence(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject whence
         0: .line 1750
            aload 0 /* whence */
            instanceof org.jruby.RubySymbol
            ifeq 5
         1: .line 1751
            aload 0 /* whence */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 1 /* string */
        start local 1 // java.lang.String string
         2: .line 1753
            ldc "SET"
            aload 1 /* string */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
            iconst_0
            ireturn
         3: .line 1754
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "CUR"
            aload 1 /* string */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
            iconst_1
            ireturn
         4: .line 1755
      StackMap locals:
      StackMap stack:
            ldc "END"
            aload 1 /* string */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
            iconst_2
            ireturn
        end local 1 // java.lang.String string
         5: .line 1757
      StackMap locals:
      StackMap stack:
            aload 0 /* whence */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            l2i
            ireturn
        end local 0 // org.jruby.runtime.builtin.IRubyObject whence
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  whence  Lorg/jruby/runtime/builtin/IRubyObject;
            2    5     1  string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      whence  

  public org.jruby.RubyFixnum rewind(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1763
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1766
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         2: .line 1767
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         3: .line 1769
            aload 3 /* fptr */
            aload 1 /* context */
            lconst_0
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            ldc -1
            lcmp
            ifne 5
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            ifnull 5
         4: .line 1770
            aload 2 /* runtime */
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 1773
      StackMap locals: org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 2 /* runtime */
            invokestatic org.jruby.RubyArgsFile$ArgsFileData.getArgsFileData:(Lorg/jruby/Ruby;)Lorg/jruby/RubyArgsFile$ArgsFileData;
            aload 0 /* this */
            invokevirtual org.jruby.RubyArgsFile$ArgsFileData.isCurrentFile:(Lorg/jruby/RubyIO;)Z
            ifeq 7
         6: .line 1774
            aload 2 /* runtime */
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentLine:()I
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getLineNumber:()I
            isub
            invokevirtual org.jruby.Ruby.setCurrentLine:(I)V
         7: .line 1776
      StackMap locals:
      StackMap stack:
            aload 3 /* fptr */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.setLineNumber:(I)V
         8: .line 1777
            aload 3 /* fptr */
            getfield org.jruby.util.io.OpenFile.readconv:Lorg/jcodings/transcode/EConv;
            ifnull 14
         9: .line 1778
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.clearReadConversion:()V
        10: .line 1780
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 5
        12: .line 1781
            iload 4 /* locked */
            ifeq 13
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        13: .line 1782
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        14: .line 1781
      StackMap locals:
      StackMap stack:
            iload 4 /* locked */
            ifeq 15
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        15: .line 1784
      StackMap locals:
      StackMap stack:
            aload 2 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            areturn
        end local 4 // boolean locked
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/jruby/RubyIO;
            0   16     1  context  Lorg/jruby/runtime/ThreadContext;
            1   16     2  runtime  Lorg/jruby/Ruby;
            2   16     3     fptr  Lorg/jruby/util/io/OpenFile;
            3   16     4   locked  Z
      Exception table:
        from    to  target  type
           3    11      11  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyFixnum fsync(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1790
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1793
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 4 /* io */
        start local 4 // org.jruby.RubyIO io
         2: .line 1794
            aload 4 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         3: .line 1796
            aload 3 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 5
         4: .line 1797
            aload 2 /* runtime */
            ldc ""
            invokevirtual org.jruby.Ruby.newSystemCallError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 1799
      StackMap locals: org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO
      StackMap stack:
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifne 12
         6: .line 1801
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fileChannel:()Ljava/nio/channels/FileChannel;
            ifnull 7
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fileChannel:()Ljava/nio/channels/FileChannel;
            iconst_1
            invokevirtual java.nio.channels.FileChannel.force:(Z)V
         7: .line 1802
      StackMap locals:
      StackMap stack:
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chNative:Ljnr/enxio/channels/NativeSelectableChannel;
            ifnull 12
         8: .line 1803
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.chNative:Ljnr/enxio/channels/NativeSelectableChannel;
            invokeinterface jnr.enxio.channels.NativeSelectableChannel.getFD:()I
            invokeinterface jnr.posix.POSIX.fsync:(I)I
            istore 5 /* ret */
        start local 5 // int ret
         9: .line 1804
            iload 5 /* ret */
            ifge 12
            aload 2 /* runtime */
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            invokeinterface jnr.posix.POSIX.errno:()I
            invokevirtual org.jruby.Ruby.newErrnoFromInt:(I)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // int ret
        10: .line 1806
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        11: .line 1807
            aload 2 /* runtime */
            aload 5 /* ioe */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.io.IOException ioe
        12: .line 1811
      StackMap locals:
      StackMap stack:
            aload 2 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            areturn
        end local 4 // org.jruby.RubyIO io
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lorg/jruby/RubyIO;
            0   13     1  context  Lorg/jruby/runtime/ThreadContext;
            1   13     2  runtime  Lorg/jruby/Ruby;
            3   13     3     fptr  Lorg/jruby/util/io/OpenFile;
            2   13     4       io  Lorg/jruby/RubyIO;
            9   10     5      ret  I
           11   12     5      ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    10      10  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject sync_set(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject sync
         0: .line 1822
            aload 0 /* this */
            aload 1 /* sync */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            invokevirtual org.jruby.RubyIO.setSync:(Z)V
         1: .line 1824
            aload 1 /* sync */
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject sync
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/RubyIO;
            0    2     1  sync  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"sync="}, required = 1)
    MethodParameters:
      Name  Flags
      sync  

  public void setSync(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // boolean sync
         0: .line 1828
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 2 /* io */
        start local 2 // org.jruby.RubyIO io
         1: .line 1829
            aload 2 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         2: .line 1830
            aload 3 /* fptr */
            iload 1 /* sync */
            invokevirtual org.jruby.util.io.OpenFile.setSync:(Z)V
         3: .line 1831
            return
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.RubyIO io
        end local 1 // boolean sync
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/RubyIO;
            0    4     1  sync  Z
            1    4     2    io  Lorg/jruby/RubyIO;
            2    4     3  fptr  Lorg/jruby/util/io/OpenFile;
    MethodParameters:
      Name  Flags
      sync  

  public boolean getSync();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 1834
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 1 /* io */
        start local 1 // org.jruby.RubyIO io
         1: .line 1835
            aload 1 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 2 /* fptr */
        start local 2 // org.jruby.util.io.OpenFile fptr
         2: .line 1836
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isSync:()Z
            ireturn
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // org.jruby.RubyIO io
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/RubyIO;
            1    3     1    io  Lorg/jruby/RubyIO;
            2    3     2  fptr  Lorg/jruby/util/io/OpenFile;

  public org.jruby.RubyBoolean eof_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1842
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1845
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         2: .line 1847
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         3: .line 1849
            aload 3 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkCharReadable:(Lorg/jruby/runtime/ThreadContext;)V
         4: .line 1851
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHAR_PENDING:()Z
            ifeq 7
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
            astore 6
         5: .line 1863
            iload 4 /* locked */
            ifeq 6
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int top org.jruby.RubyBoolean
      StackMap stack:
         6: aload 6
            areturn
         7: .line 1852
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_PENDING:()Z
            ifeq 10
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
            astore 6
         8: .line 1863
            iload 4 /* locked */
            ifeq 9
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int top org.jruby.RubyBoolean
      StackMap stack:
         9: aload 6
            areturn
        10: .line 1853
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 3 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
        11: .line 1859
            aload 3 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 18
        12: .line 1860
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            astore 6
        13: .line 1863
            iload 4 /* locked */
            ifeq 14
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        14: .line 1860
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int top org.jruby.RubyBoolean
      StackMap stack:
            aload 6
            areturn
        15: .line 1862
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
            astore 5
        16: .line 1863
            iload 4 /* locked */
            ifeq 17
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 1864
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        18: .line 1863
      StackMap locals:
      StackMap stack:
            iload 4 /* locked */
            ifeq 19
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        19: .line 1866
      StackMap locals:
      StackMap stack:
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
            areturn
        end local 4 // boolean locked
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/jruby/RubyIO;
            0   20     1  context  Lorg/jruby/runtime/ThreadContext;
            1   20     2  runtime  Lorg/jruby/Ruby;
            2   20     3     fptr  Lorg/jruby/util/io/OpenFile;
            3   20     4   locked  Z
      Exception table:
        from    to  target  type
           3     5      15  any
           7     8      15  any
          10    13      15  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"eof?", "eof"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyBoolean tty_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1871
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1872
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            astore 3 /* posix */
        start local 3 // jnr.posix.POSIX posix
         2: .line 1875
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         3: .line 1877
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
         4: .line 1879
            aload 3 /* posix */
            invokeinterface jnr.posix.POSIX.isNative:()Z
            ifeq 10
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            iconst_m1
            if_icmpeq 10
         5: .line 1880
            aload 3 /* posix */
            invokeinterface jnr.posix.POSIX.libc:()Ljnr/posix/LibC;
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getFileno:()I
            invokeinterface jnr.posix.LibC.isatty:(I)I
            ifne 6
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
            goto 7
      StackMap locals: org.jruby.Ruby jnr.posix.POSIX org.jruby.util.io.OpenFile
      StackMap stack:
         6: aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
      StackMap locals:
      StackMap stack: org.jruby.RubyBoolean
         7: astore 6
         8: .line 1886
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 1880
            aload 6
            areturn
        10: .line 1881
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isStdio:()Z
            ifeq 17
        11: .line 1883
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            astore 6
        12: .line 1886
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        13: .line 1883
            aload 6
            areturn
        14: .line 1885
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        15: .line 1886
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        16: .line 1887
            aload 5
            athrow
        17: .line 1886
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        18: .line 1889
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
            areturn
        end local 4 // org.jruby.util.io.OpenFile fptr
        end local 3 // jnr.posix.POSIX posix
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lorg/jruby/RubyIO;
            0   19     1  context  Lorg/jruby/runtime/ThreadContext;
            1   19     2  runtime  Lorg/jruby/Ruby;
            2   19     3    posix  Ljnr/posix/POSIX;
            3   19     4     fptr  Lorg/jruby/util/io/OpenFile;
      Exception table:
        from    to  target  type
           4     8      14  any
          10    12      14  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"tty?", "isatty"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject initialize_copy(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=15, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject _io
         0: .line 1896
            aload 0 /* this */
            astore 2 /* dest */
        start local 2 // org.jruby.RubyIO dest
         1: .line 1897
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         2: .line 1898
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 4 /* context */
        start local 4 // org.jruby.runtime.ThreadContext context
         3: .line 1905
            aload 3 /* runtime */
            aload 1 /* _io */
            invokestatic org.jruby.util.TypeConverter.ioGetIO:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            astore 11 /* io */
        start local 11 // org.jruby.RubyIO io
         4: .line 1906
            aload 2 /* dest */
            aload 11 /* io */
            invokestatic org.jruby.RubyIO.OBJ_INIT_COPY:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifne 5
            aload 2 /* dest */
            areturn
         5: .line 1907
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.Ruby org.jruby.runtime.ThreadContext top top top top top top org.jruby.RubyIO
      StackMap stack:
            aload 11 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 6 /* orig */
        start local 6 // org.jruby.util.io.OpenFile orig
         6: .line 1908
            aload 2 /* dest */
            invokevirtual org.jruby.RubyIO.MakeOpenFile:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        start local 5 // org.jruby.util.io.OpenFile fptr
         7: .line 1911
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 12 /* locked1 */
        start local 12 // boolean locked1
         8: .line 1912
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 13 /* locked2 */
        start local 13 // boolean locked2
         9: .line 1914
            aload 11 /* io */
            aload 4 /* context */
            invokevirtual org.jruby.RubyIO.flush:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyIO;
            pop
        10: .line 1917
            aload 5 /* fptr */
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            ldc -65537
            iand
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        11: .line 1918
            aload 5 /* fptr */
            aload 6 /* orig */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            putfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
        12: .line 1919
            aload 5 /* fptr */
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getProcess:()Ljava/lang/Process;
            invokevirtual org.jruby.util.io.OpenFile.setProcess:(Ljava/lang/Process;)V
        13: .line 1920
            aload 5 /* fptr */
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getLineNumber:()I
            invokevirtual org.jruby.util.io.OpenFile.setLineNumber:(I)V
        14: .line 1921
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            ifnull 15
            aload 5 /* fptr */
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.util.io.OpenFile.setPath:(Ljava/lang/String;)V
        15: .line 1922
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.Ruby org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.util.io.OpenFile top top top top org.jruby.RubyIO int int
      StackMap stack:
            aload 5 /* fptr */
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.getFinalizer:()Lorg/jruby/util/io/OpenFile$Finalizer;
            invokevirtual org.jruby.util.io.OpenFile.setFinalizer:(Lorg/jruby/util/io/OpenFile$Finalizer;)V
        16: .line 1929
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.util.io.ChannelFD.dup:()Lorg/jruby/util/io/ChannelFD;
            astore 7 /* fd */
        start local 7 // org.jruby.util.io.ChannelFD fd
        17: .line 1930
            aload 5 /* fptr */
            aload 7 /* fd */
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        18: .line 1931
            aload 6 /* orig */
            aload 4 /* context */
            invokevirtual org.jruby.util.io.OpenFile.tell:(Lorg/jruby/runtime/ThreadContext;)J
            lstore 9 /* pos */
        start local 9 // long pos
        19: .line 1932
            lload 9 /* pos */
            ldc -1
            lcmp
            ifne 26
        20: .line 1933
            aload 5 /* fptr */
            aload 4 /* context */
            lload 9 /* pos */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            pop2
        21: .line 1934
            goto 26
        end local 9 // long pos
        end local 7 // org.jruby.util.io.ChannelFD fd
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 14
        23: .line 1935
            iload 13 /* locked2 */
            ifeq 24
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        24: .line 1936
      StackMap locals: java.lang.Throwable
      StackMap stack:
            iload 12 /* locked1 */
            ifeq 25
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        25: .line 1937
      StackMap locals:
      StackMap stack:
            aload 14
            athrow
        start local 7 // org.jruby.util.io.ChannelFD fd
        start local 9 // long pos
        26: .line 1935
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.Ruby org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.util.io.OpenFile org.jruby.util.io.ChannelFD top long org.jruby.RubyIO int int
      StackMap stack:
            iload 13 /* locked2 */
            ifeq 27
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        27: .line 1936
      StackMap locals:
      StackMap stack:
            iload 12 /* locked1 */
            ifeq 28
            aload 6 /* orig */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        28: .line 1939
      StackMap locals:
      StackMap stack:
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isBinmode:()Z
            ifeq 30
        29: .line 1940
            aload 2 /* dest */
            invokevirtual org.jruby.RubyIO.setBinmode:()V
        30: .line 1943
      StackMap locals:
      StackMap stack:
            aload 11 /* io */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 8 /* write_io */
        start local 8 // org.jruby.RubyIO write_io
        31: .line 1944
            aload 11 /* io */
            aload 8 /* write_io */
            if_acmpeq 35
        32: .line 1945
            aload 8 /* write_io */
            invokevirtual org.jruby.RubyIO.dup:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyIO
            astore 8 /* write_io */
        33: .line 1946
            aload 5 /* fptr */
            aload 8 /* write_io */
            putfield org.jruby.util.io.OpenFile.tiedIOForWriting:Lorg/jruby/RubyIO;
        34: .line 1947
            aload 2 /* dest */
            invokevirtual org.jruby.RubyIO.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
            ldc "@tied_io_for_writing"
            aload 8 /* write_io */
            invokeinterface org.jruby.runtime.builtin.InstanceVariables.setInstanceVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        35: .line 1950
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO org.jruby.Ruby org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.util.io.OpenFile org.jruby.util.io.ChannelFD org.jruby.RubyIO long org.jruby.RubyIO int int
      StackMap stack:
            aload 2 /* dest */
            areturn
        end local 13 // boolean locked2
        end local 12 // boolean locked1
        end local 11 // org.jruby.RubyIO io
        end local 9 // long pos
        end local 8 // org.jruby.RubyIO write_io
        end local 7 // org.jruby.util.io.ChannelFD fd
        end local 6 // org.jruby.util.io.OpenFile orig
        end local 5 // org.jruby.util.io.OpenFile fptr
        end local 4 // org.jruby.runtime.ThreadContext context
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.RubyIO dest
        end local 1 // org.jruby.runtime.builtin.IRubyObject _io
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   36     0      this  Lorg/jruby/RubyIO;
            0   36     1       _io  Lorg/jruby/runtime/builtin/IRubyObject;
            1   36     2      dest  Lorg/jruby/RubyIO;
            2   36     3   runtime  Lorg/jruby/Ruby;
            3   36     4   context  Lorg/jruby/runtime/ThreadContext;
            7   36     5      fptr  Lorg/jruby/util/io/OpenFile;
            6   36     6      orig  Lorg/jruby/util/io/OpenFile;
           17   22     7        fd  Lorg/jruby/util/io/ChannelFD;
           26   36     7        fd  Lorg/jruby/util/io/ChannelFD;
           31   36     8  write_io  Lorg/jruby/RubyIO;
           19   22     9       pos  J
           26   36     9       pos  J
            4   36    11        io  Lorg/jruby/RubyIO;
            8   36    12   locked1  Z
            9   36    13   locked2  Z
      Exception table:
        from    to  target  type
           9    22      22  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
      Name  Flags
      _io   

  public org.jruby.RubyBoolean closed_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1955
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.isClosed:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"closed?"})
    MethodParameters:
         Name  Flags
      context  

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 1970
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 2 /* write_io */
        start local 2 // org.jruby.RubyIO write_io
         1: .line 1971
            aload 0 /* this */
            aload 2 /* write_io */
            if_acmpeq 5
         2: .line 1972
            aload 2 /* write_io */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            astore 3 /* write_fptr */
        start local 3 // org.jruby.util.io.OpenFile write_fptr
         3: .line 1973
            aload 3 /* write_fptr */
            ifnull 5
            aload 3 /* write_fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            ifnull 5
         4: .line 1974
            iconst_0
            ireturn
        end local 3 // org.jruby.util.io.OpenFile write_fptr
         5: .line 1978
      StackMap locals: org.jruby.RubyIO top org.jruby.RubyIO
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            astore 1 /* fptr */
        start local 1 // org.jruby.util.io.OpenFile fptr
         6: .line 1979
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.checkInitialized:()V
         7: .line 1980
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            ifnonnull 8
            iconst_1
            ireturn
      StackMap locals: org.jruby.RubyIO org.jruby.util.io.OpenFile org.jruby.RubyIO
      StackMap stack:
         8: iconst_0
            ireturn
        end local 2 // org.jruby.RubyIO write_io
        end local 1 // org.jruby.util.io.OpenFile fptr
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/jruby/RubyIO;
            6    9     1        fptr  Lorg/jruby/util/io/OpenFile;
            1    9     2    write_io  Lorg/jruby/RubyIO;
            3    5     3  write_fptr  Lorg/jruby/util/io/OpenFile;

  public org.jruby.runtime.builtin.IRubyObject close(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1993
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.isClosed:()Z
            ifeq 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 1994
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.rbIoClose:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final

  public final void close();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 1997
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.RubyIO.close:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
            return
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  protected static org.jruby.runtime.builtin.IRubyObject ioClose(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: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject io
         0: .line 2001
            aload 0 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            astore 2 /* sites */
        start local 2 // org.jruby.runtime.JavaSites$IOSites sites
         1: .line 2002
            aload 1 /* io */
            aload 0 /* context */
            aload 2 /* sites */
            getfield org.jruby.runtime.JavaSites$IOSites.closed_checked:Lorg/jruby/runtime/JavaSites$CheckedSites;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.checkCallMethod:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/JavaSites$CheckedSites;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* closed */
        start local 3 // org.jruby.runtime.builtin.IRubyObject closed
         2: .line 2003
            aload 3 /* closed */
            ifnull 3
            aload 3 /* closed */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 3
            aload 1 /* io */
            areturn
         3: .line 2004
      StackMap locals: org.jruby.runtime.JavaSites$IOSites org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         4: .line 2005
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$!"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.get:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* oldExc */
        start local 5 // org.jruby.runtime.builtin.IRubyObject oldExc
         5: .line 2007
            aload 1 /* io */
            aload 0 /* context */
            aload 2 /* sites */
            getfield org.jruby.runtime.JavaSites$IOSites.close_checked:Lorg/jruby/runtime/JavaSites$CheckedSites;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.checkCallMethod:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/JavaSites$CheckedSites;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* closed */
         6: .line 2008
            aload 4 /* runtime */
            aload 3 /* closed */
            ifnull 7
            aload 3 /* closed */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.JavaSites$IOSites org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby
         7: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.JavaSites$IOSites org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby int
         8: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
         9: areturn
        10: .line 2009
      StackMap locals:
      StackMap stack: org.jruby.exceptions.RaiseException
            astore 6 /* re */
        start local 6 // org.jruby.exceptions.RaiseException re
        11: .line 2010
            aload 6 /* re */
            invokevirtual org.jruby.exceptions.RaiseException.getMessage:()Ljava/lang/String;
            ldc "closed stream"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 14
        12: .line 2012
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$!"
            aload 5 /* oldExc */
            invokevirtual org.jruby.internal.runtime.GlobalVariables.set:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        13: .line 2013
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        14: .line 2015
      StackMap locals: org.jruby.exceptions.RaiseException
      StackMap stack:
            aload 6 /* re */
            athrow
        end local 6 // org.jruby.exceptions.RaiseException re
        end local 5 // org.jruby.runtime.builtin.IRubyObject oldExc
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject closed
        end local 2 // org.jruby.runtime.JavaSites$IOSites sites
        end local 1 // org.jruby.runtime.builtin.IRubyObject io
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0  context  Lorg/jruby/runtime/ThreadContext;
            0   15     1       io  Lorg/jruby/runtime/builtin/IRubyObject;
            1   15     2    sites  Lorg/jruby/runtime/JavaSites$IOSites;
            2   15     3   closed  Lorg/jruby/runtime/builtin/IRubyObject;
            4   15     4  runtime  Lorg/jruby/Ruby;
            5   15     5   oldExc  Lorg/jruby/runtime/builtin/IRubyObject;
           11   15     6       re  Lorg/jruby/exceptions/RaiseException;
      Exception table:
        from    to  target  type
           5     9      10  Class org.jruby.exceptions.RaiseException
    MethodParameters:
         Name  Flags
      context  
      io       

  protected org.jruby.runtime.builtin.IRubyObject rbIoClose(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2026
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 3 /* write_io */
        start local 3 // org.jruby.RubyIO write_io
         1: .line 2027
            aload 0 /* this */
            aload 3 /* write_io */
            if_acmpeq 11
         2: .line 2028
            aload 3 /* write_io */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            astore 4 /* write_fptr */
        start local 4 // org.jruby.util.io.OpenFile write_fptr
         3: .line 2030
            aload 4 /* write_fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
         4: .line 2032
            aload 4 /* write_fptr */
            ifnull 10
            aload 4 /* write_fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            ifnull 10
         5: .line 2033
            aload 4 /* write_fptr */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_1
            invokevirtual org.jruby.util.io.OpenFile.cleanup:(Lorg/jruby/Ruby;Z)V
         6: .line 2035
            goto 10
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext top org.jruby.RubyIO org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
         7: astore 6
         8: .line 2036
            iload 5 /* locked */
            ifeq 9
            aload 4 /* write_fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 2037
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        10: .line 2036
      StackMap locals:
      StackMap stack:
            iload 5 /* locked */
            ifeq 11
            aload 4 /* write_fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        end local 5 // boolean locked
        end local 4 // org.jruby.util.io.OpenFile write_fptr
        11: .line 2040
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            astore 2 /* fptr */
        start local 2 // org.jruby.util.io.OpenFile fptr
        12: .line 2042
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
        13: .line 2044
            aload 2 /* fptr */
            ifnonnull 16
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9
        14: .line 2081
            iload 5 /* locked */
            ifeq 15
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyIO top int top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        15: aload 9
            areturn
        16: .line 2045
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyIO top int
      StackMap stack:
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            ifnonnull 19
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9
        17: .line 2081
            iload 5 /* locked */
            ifeq 18
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyIO top int top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        18: aload 9
            areturn
        19: .line 2046
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyIO top int
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 6 /* runtime */
        start local 6 // org.jruby.Ruby runtime
        20: .line 2048
            aload 2 /* fptr */
            aload 1 /* context */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.finalizeFlush:(Lorg/jruby/runtime/ThreadContext;Z)V
        21: .line 2051
            aload 2 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.interruptBlockingThreads:(Lorg/jruby/runtime/ThreadContext;)V
        22: .line 2053
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        23: .line 2054
            aload 2 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.waitForBlockingThreads:(Lorg/jruby/runtime/ThreadContext;)V
        24: .line 2055
            goto 28
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyIO top int org.jruby.Ruby
      StackMap stack: java.lang.Throwable
        25: astore 7
        26: .line 2056
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        27: .line 2057
            aload 7
            athrow
        28: .line 2056
      StackMap locals:
      StackMap stack:
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            pop
        29: .line 2059
            aload 2 /* fptr */
            aload 6 /* runtime */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.cleanup:(Lorg/jruby/Ruby;Z)V
        30: .line 2061
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getProcess:()Ljava/lang/Process;
            ifnull 45
        31: .line 2062
            aload 1 /* context */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.runtime.ThreadContext.setLastExitStatus:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        32: .line 2064
            aload 6 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            invokeinterface jnr.posix.POSIX.isNative:()Z
            ifeq 36
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getProcess:()Ljava/lang/Process;
            instanceof org.jruby.util.io.POSIXProcess
            ifeq 36
        33: .line 2067
            aload 6 /* runtime */
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getProcess:()Ljava/lang/Process;
            checkcast org.jruby.util.io.POSIXProcess
            invokevirtual org.jruby.util.io.POSIXProcess.status:()I
            i2l
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPid:()J
            invokestatic org.jruby.RubyProcess$RubyStatus.newProcessStatus:(Lorg/jruby/Ruby;JJ)Lorg/jruby/RubyProcess$RubyStatus;
            astore 7 /* processResult */
        start local 7 // org.jruby.runtime.builtin.IRubyObject processResult
        34: .line 2068
            aload 1 /* context */
            aload 7 /* processResult */
            invokevirtual org.jruby.runtime.ThreadContext.setLastExitStatus:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        end local 7 // org.jruby.runtime.builtin.IRubyObject processResult
        35: .line 2069
            goto 40
        36: .line 2071
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.popenSpecial:Z
            ifne 40
        37: .line 2072
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getProcess:()Ljava/lang/Process;
            invokestatic org.jruby.RubyIO.obliterateProcess:(Ljava/lang/Process;)V
        38: .line 2074
            aload 6 /* runtime */
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getProcess:()Ljava/lang/Process;
            invokevirtual java.lang.Process.exitValue:()I
            bipush 8
            ishl
            i2l
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPid:()J
            invokestatic org.jruby.RubyProcess$RubyStatus.newProcessStatus:(Lorg/jruby/Ruby;JJ)Lorg/jruby/RubyProcess$RubyStatus;
            astore 7 /* processResult */
        start local 7 // org.jruby.runtime.builtin.IRubyObject processResult
        39: .line 2075
            aload 1 /* context */
            aload 7 /* processResult */
            invokevirtual org.jruby.runtime.ThreadContext.setLastExitStatus:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        end local 7 // org.jruby.runtime.builtin.IRubyObject processResult
        40: .line 2078
      StackMap locals:
      StackMap stack:
            aload 2 /* fptr */
            aconst_null
            invokevirtual org.jruby.util.io.OpenFile.setProcess:(Ljava/lang/Process;)V
        end local 6 // org.jruby.Ruby runtime
        41: .line 2080
            goto 45
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyIO top int
      StackMap stack: java.lang.Throwable
        42: astore 8
        43: .line 2081
            iload 5 /* locked */
            ifeq 44
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        44: .line 2082
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyIO top int top top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        45: .line 2081
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile org.jruby.RubyIO top int
      StackMap stack:
            iload 5 /* locked */
            ifeq 46
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        46: .line 2084
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // boolean locked
        end local 3 // org.jruby.RubyIO write_io
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   47     0           this  Lorg/jruby/RubyIO;
            0   47     1        context  Lorg/jruby/runtime/ThreadContext;
           12   47     2           fptr  Lorg/jruby/util/io/OpenFile;
            1   47     3       write_io  Lorg/jruby/RubyIO;
            3   11     4     write_fptr  Lorg/jruby/util/io/OpenFile;
            4   11     5         locked  Z
           13   47     5         locked  Z
           20   41     6        runtime  Lorg/jruby/Ruby;
           34   35     7  processResult  Lorg/jruby/runtime/builtin/IRubyObject;
           39   40     7  processResult  Lorg/jruby/runtime/builtin/IRubyObject;
      Exception table:
        from    to  target  type
           4     7       7  any
          22    25      25  any
          13    14      42  any
          16    17      42  any
          19    42      42  any
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject close_write(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2090
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 2094
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 4 /* write_io */
        start local 4 // org.jruby.RubyIO write_io
         2: .line 2095
            aload 4 /* write_io */
            invokevirtual org.jruby.RubyIO.getOpenFileInitialized:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         3: .line 2096
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isOpen:()Z
            ifne 4
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 2098
      StackMap locals: org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO
      StackMap stack:
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
         5: .line 2100
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.socketChannel:()Ljava/nio/channels/SocketChannel;
            ifnull 17
         6: .line 2102
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.socketChannel:()Ljava/nio/channels/SocketChannel;
            invokevirtual java.nio.channels.SocketChannel.shutdownOutput:()Ljava/nio/channels/SocketChannel;
            pop
         7: .line 2103
            goto 10
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int
      StackMap stack: java.io.IOException
         8: astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
         9: .line 2104
            aload 2 /* runtime */
            aload 6 /* ioe */
            invokestatic org.jruby.runtime.Helpers.errnoFromException:(Ljava/lang/Throwable;)Ljnr/constants/platform/Errno;
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // java.io.IOException ioe
        10: .line 2106
      StackMap locals:
      StackMap stack:
            aload 3 /* fptr */
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            bipush -3
            iand
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        11: .line 2107
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isReadable:()Z
            ifne 14
            aload 4 /* write_io */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.rbIoClose:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8
        12: .line 2115
            iload 5 /* locked */
            ifeq 13
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        13: aload 8
            areturn
        14: .line 2108
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8
        15: .line 2115
            iload 5 /* locked */
            ifeq 16
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        16: .line 2108
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 8
            areturn
        17: .line 2111
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int
      StackMap stack:
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isReadable:()Z
            ifeq 22
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isDuplex:()Z
            ifne 22
        18: .line 2112
            aload 2 /* runtime */
            ldc "closing non-duplex IO for writing"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        19: .line 2114
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        20: .line 2115
            iload 5 /* locked */
            ifeq 21
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        21: .line 2116
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int top java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        22: .line 2115
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int
      StackMap stack:
            iload 5 /* locked */
            ifeq 23
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        23: .line 2119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* write_io */
            if_acmpeq 32
        24: .line 2120
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileInitialized:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        25: .line 2122
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        26: .line 2124
            aload 3 /* fptr */
            aconst_null
            putfield org.jruby.util.io.OpenFile.tiedIOForWriting:Lorg/jruby/RubyIO;
        27: .line 2125
            goto 31
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 6
        29: .line 2126
            iload 5 /* locked */
            ifeq 30
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        30: .line 2127
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        31: .line 2126
      StackMap locals:
      StackMap stack:
            iload 5 /* locked */
            ifeq 32
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        32: .line 2130
      StackMap locals:
      StackMap stack:
            aload 4 /* write_io */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.rbIoClose:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        33: .line 2131
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // boolean locked
        end local 4 // org.jruby.RubyIO write_io
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   34     0      this  Lorg/jruby/RubyIO;
            0   34     1   context  Lorg/jruby/runtime/ThreadContext;
            1   34     2   runtime  Lorg/jruby/Ruby;
            3   34     3      fptr  Lorg/jruby/util/io/OpenFile;
            2   34     4  write_io  Lorg/jruby/RubyIO;
            5   34     5    locked  Z
            9   10     6       ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6     7       8  Class java.io.IOException
           5    12      19  any
          14    15      19  any
          17    19      19  any
          26    28      28  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject close_read(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=12, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2136
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 2140
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileInitialized:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         2: .line 2141
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isOpen:()Z
            ifne 3
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 2143
      StackMap locals: org.jruby.Ruby org.jruby.util.io.OpenFile
      StackMap stack:
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
         4: .line 2145
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.socketChannel:()Ljava/nio/channels/SocketChannel;
            ifnull 16
         5: .line 2147
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.socketChannel:()Ljava/nio/channels/SocketChannel;
            invokevirtual java.nio.channels.SocketChannel.socket:()Ljava/net/Socket;
            invokevirtual java.net.Socket.shutdownInput:()V
         6: .line 2148
            goto 9
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile top int
      StackMap stack: java.io.IOException
         7: astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
         8: .line 2149
            aload 2 /* runtime */
            aload 6 /* ioe */
            invokestatic org.jruby.runtime.Helpers.errnoFromException:(Ljava/lang/Throwable;)Ljnr/constants/platform/Errno;
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // java.io.IOException ioe
         9: .line 2151
      StackMap locals:
      StackMap stack:
            aload 3 /* fptr */
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            bipush -2
            iand
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        10: .line 2152
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifne 13
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.rbIoClose:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11
        11: .line 2183
            iload 5 /* locked */
            ifeq 12
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile top int top top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        12: aload 11
            areturn
        13: .line 2153
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile top int
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11
        14: .line 2183
            iload 5 /* locked */
            ifeq 15
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        15: .line 2153
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile top int top top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 11
            areturn
        16: .line 2156
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile top int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 4 /* write_io */
        start local 4 // org.jruby.RubyIO write_io
        17: .line 2157
            aload 0 /* this */
            aload 4 /* write_io */
            if_acmpeq 35
        18: .line 2159
            aload 4 /* write_io */
            invokevirtual org.jruby.RubyIO.getOpenFileInitialized:()Lorg/jruby/util/io/OpenFile;
            astore 6 /* wfptr */
        start local 6 // org.jruby.util.io.OpenFile wfptr
        19: .line 2161
            aload 6 /* wfptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 7 /* locked2 */
        start local 7 // boolean locked2
        20: .line 2163
            aload 6 /* wfptr */
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getProcess:()Ljava/lang/Process;
            invokevirtual org.jruby.util.io.OpenFile.setProcess:(Ljava/lang/Process;)V
        21: .line 2164
            aload 6 /* wfptr */
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPid:()J
            invokevirtual org.jruby.util.io.OpenFile.setPid:(J)V
        22: .line 2165
            aload 3 /* fptr */
            aconst_null
            invokevirtual org.jruby.util.io.OpenFile.setProcess:(Ljava/lang/Process;)V
        23: .line 2166
            aload 3 /* fptr */
            ldc -1
            invokevirtual org.jruby.util.io.OpenFile.setPid:(J)V
        24: .line 2167
            aload 0 /* this */
            aload 6 /* wfptr */
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
        25: .line 2169
            aload 3 /* fptr */
            aconst_null
            putfield org.jruby.util.io.OpenFile.tiedIOForWriting:Lorg/jruby/RubyIO;
        26: .line 2170
            aload 4 /* write_io */
            aload 3 /* fptr */
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
        27: .line 2171
            aload 3 /* fptr */
            aload 2 /* runtime */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.cleanup:(Lorg/jruby/Ruby;Z)V
        28: .line 2173
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9
        29: .line 2175
            iload 7 /* locked2 */
            ifeq 30
            aload 6 /* wfptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        30: .line 2183
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int org.jruby.util.io.OpenFile int top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            iload 5 /* locked */
            ifeq 31
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        31: .line 2173
      StackMap locals:
      StackMap stack:
            aload 9
            areturn
        32: .line 2174
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
            astore 8
        33: .line 2175
            iload 7 /* locked2 */
            ifeq 34
            aload 6 /* wfptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        34: .line 2176
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        end local 7 // boolean locked2
        end local 6 // org.jruby.util.io.OpenFile wfptr
        35: .line 2179
      StackMap locals:
      StackMap stack:
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifeq 40
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isDuplex:()Z
            ifne 40
        36: .line 2180
            aload 2 /* runtime */
            ldc "closing non-duplex IO for reading"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // org.jruby.RubyIO write_io
        37: .line 2182
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile top int
      StackMap stack: java.lang.Throwable
            astore 10
        38: .line 2183
            iload 5 /* locked */
            ifeq 39
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        39: .line 2184
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile top int top top top top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        start local 4 // org.jruby.RubyIO write_io
        40: .line 2183
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.RubyIO int
      StackMap stack:
            iload 5 /* locked */
            ifeq 41
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        41: .line 2186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.rbIoClose:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // boolean locked
        end local 4 // org.jruby.RubyIO write_io
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   42     0      this  Lorg/jruby/RubyIO;
            0   42     1   context  Lorg/jruby/runtime/ThreadContext;
            1   42     2   runtime  Lorg/jruby/Ruby;
            2   42     3      fptr  Lorg/jruby/util/io/OpenFile;
           17   37     4  write_io  Lorg/jruby/RubyIO;
           40   42     4  write_io  Lorg/jruby/RubyIO;
            4   42     5    locked  Z
            8    9     6       ioe  Ljava/io/IOException;
           19   35     6     wfptr  Lorg/jruby/util/io/OpenFile;
           20   35     7   locked2  Z
      Exception table:
        from    to  target  type
           5     6       7  Class java.io.IOException
          20    29      32  any
           4    11      37  any
          13    14      37  any
          16    30      37  any
          32    37      37  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject close_on_exec_set(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 2193
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 2194
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            astore 4 /* posix */
        start local 4 // jnr.posix.POSIX posix
         2: .line 2195
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        start local 5 // org.jruby.util.io.OpenFile fptr
         3: .line 2197
            iconst_m1
            istore 7 /* fd */
        start local 7 // int fd
         4: .line 2199
            aload 5 /* fptr */
            ifnull 6
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            dup
            istore 7 /* fd */
            iconst_m1
            if_icmpeq 6
         5: .line 2200
            aload 4 /* posix */
            invokeinterface jnr.posix.POSIX.isNative:()Z
            ifeq 6
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 8
         6: .line 2201
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby jnr.posix.POSIX org.jruby.util.io.OpenFile top int
      StackMap stack:
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            new java.lang.StringBuilder
            dup
            ldc "close_on_exec is not implemented on this platform for this stream type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.ch:Ljava/nio/channels/Channel;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.common.RubyWarnings.warning:(Ljava/lang/String;)V
         7: .line 2202
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         8: .line 2205
      StackMap locals:
      StackMap stack:
            aload 2 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 8 /* flag */
        start local 8 // int flag
        11: .line 2208
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 6 /* write_io */
        start local 6 // org.jruby.RubyIO write_io
        12: .line 2209
            aload 0 /* this */
            aload 6 /* write_io */
            if_acmpeq 21
        13: .line 2210
            aload 6 /* write_io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        14: .line 2211
            aload 5 /* fptr */
            ifnull 21
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            dup
            istore 7 /* fd */
            iflt 21
        15: .line 2212
            aload 4 /* posix */
            iload 7 /* fd */
            getstatic jnr.constants.platform.Fcntl.F_GETFD:Ljnr/constants/platform/Fcntl;
            invokeinterface jnr.posix.POSIX.fcntl:(ILjnr/constants/platform/Fcntl;)I
            dup
            istore 9 /* ret */
        start local 9 // int ret
        16: iconst_m1
            if_icmpne 17
            aload 3 /* runtime */
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokestatic org.jruby.api.API.rb_sys_fail_path:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        17: .line 2213
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby jnr.posix.POSIX org.jruby.util.io.OpenFile org.jruby.RubyIO int int int
      StackMap stack:
            iload 9 /* ret */
            iconst_1
            iand
            iload 8 /* flag */
            if_icmpeq 21
        18: .line 2214
            iload 9 /* ret */
            bipush -2
            iand
            iload 8 /* flag */
            ior
            istore 9 /* ret */
        19: .line 2215
            aload 4 /* posix */
            iload 7 /* fd */
            getstatic jnr.constants.platform.Fcntl.F_SETFD:Ljnr/constants/platform/Fcntl;
            iload 9 /* ret */
            invokeinterface jnr.posix.POSIX.fcntlInt:(ILjnr/constants/platform/Fcntl;I)I
            istore 9 /* ret */
        20: .line 2216
            iload 9 /* ret */
            iconst_m1
            if_icmpne 21
            aload 3 /* runtime */
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokestatic org.jruby.api.API.rb_sys_fail_path:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 9 // int ret
        21: .line 2222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        22: .line 2223
            aload 5 /* fptr */
            ifnull 29
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            dup
            istore 7 /* fd */
            iflt 29
        23: .line 2224
            aload 4 /* posix */
            iload 7 /* fd */
            getstatic jnr.constants.platform.Fcntl.F_GETFD:Ljnr/constants/platform/Fcntl;
            invokeinterface jnr.posix.POSIX.fcntl:(ILjnr/constants/platform/Fcntl;)I
            dup
            istore 9 /* ret */
        start local 9 // int ret
        24: iconst_m1
            if_icmpne 25
            aload 3 /* runtime */
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokestatic org.jruby.api.API.rb_sys_fail_path:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        25: .line 2225
      StackMap locals: int
      StackMap stack:
            iload 9 /* ret */
            iconst_1
            iand
            iload 8 /* flag */
            if_icmpeq 29
        26: .line 2226
            iload 9 /* ret */
            bipush -2
            iand
            iload 8 /* flag */
            ior
            istore 9 /* ret */
        27: .line 2227
            aload 4 /* posix */
            iload 7 /* fd */
            getstatic jnr.constants.platform.Fcntl.F_SETFD:Ljnr/constants/platform/Fcntl;
            iload 9 /* ret */
            invokeinterface jnr.posix.POSIX.fcntlInt:(ILjnr/constants/platform/Fcntl;I)I
            istore 9 /* ret */
        28: .line 2228
            iload 9 /* ret */
            iconst_m1
            if_icmpne 29
            aload 3 /* runtime */
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokestatic org.jruby.api.API.rb_sys_fail_path:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 9 // int ret
        29: .line 2232
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 8 // int flag
        end local 7 // int fd
        end local 6 // org.jruby.RubyIO write_io
        end local 5 // org.jruby.util.io.OpenFile fptr
        end local 4 // jnr.posix.POSIX posix
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0      this  Lorg/jruby/RubyIO;
            0   30     1   context  Lorg/jruby/runtime/ThreadContext;
            0   30     2       arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1   30     3   runtime  Lorg/jruby/Ruby;
            2   30     4     posix  Ljnr/posix/POSIX;
            3   30     5      fptr  Lorg/jruby/util/io/OpenFile;
           12   30     6  write_io  Lorg/jruby/RubyIO;
            4   30     7        fd  I
           11   30     8      flag  I
           16   21     9       ret  I
           24   29     9       ret  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"close_on_exec="})
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject close_on_exec_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2237
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 2238
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            astore 3 /* posix */
        start local 3 // jnr.posix.POSIX posix
         2: .line 2239
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         3: .line 2240
            iconst_m1
            istore 5 /* fd */
        start local 5 // int fd
         4: .line 2242
            aload 4 /* fptr */
            ifnull 6
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            dup
            istore 5 /* fd */
            iconst_m1
            if_icmpeq 6
         5: .line 2243
            aload 3 /* posix */
            invokeinterface jnr.posix.POSIX.isNative:()Z
            ifne 7
         6: .line 2244
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby jnr.posix.POSIX org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            areturn
         7: .line 2250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 6 /* write_io */
        start local 6 // org.jruby.RubyIO write_io
         8: .line 2251
            aload 0 /* this */
            aload 6 /* write_io */
            if_acmpeq 14
         9: .line 2252
            aload 6 /* write_io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        10: .line 2253
            aload 4 /* fptr */
            ifnull 14
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            dup
            istore 5 /* fd */
            iflt 14
        11: .line 2254
            aload 3 /* posix */
            iload 5 /* fd */
            getstatic jnr.constants.platform.Fcntl.F_GETFD:Ljnr/constants/platform/Fcntl;
            invokeinterface jnr.posix.POSIX.fcntl:(ILjnr/constants/platform/Fcntl;)I
            dup
            istore 7 /* ret */
        start local 7 // int ret
        12: iconst_m1
            if_icmpne 13
            aload 2 /* runtime */
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokestatic org.jruby.api.API.rb_sys_fail_path:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        13: .line 2255
      StackMap locals: org.jruby.RubyIO int
      StackMap stack:
            iload 7 /* ret */
            iconst_1
            iand
            ifne 14
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            areturn
        end local 7 // int ret
        14: .line 2259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        15: .line 2260
            aload 4 /* fptr */
            ifnull 19
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            dup
            istore 5 /* fd */
            iflt 19
        16: .line 2261
            aload 3 /* posix */
            iload 5 /* fd */
            getstatic jnr.constants.platform.Fcntl.F_GETFD:Ljnr/constants/platform/Fcntl;
            invokeinterface jnr.posix.POSIX.fcntl:(ILjnr/constants/platform/Fcntl;)I
            dup
            istore 7 /* ret */
        start local 7 // int ret
        17: iconst_m1
            if_icmpne 18
            aload 2 /* runtime */
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokestatic org.jruby.api.API.rb_sys_fail_path:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        18: .line 2262
      StackMap locals: int
      StackMap stack:
            iload 7 /* ret */
            iconst_1
            iand
            ifne 19
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            areturn
        end local 7 // int ret
        19: .line 2264
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            areturn
        end local 6 // org.jruby.RubyIO write_io
        end local 5 // int fd
        end local 4 // org.jruby.util.io.OpenFile fptr
        end local 3 // jnr.posix.POSIX posix
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lorg/jruby/RubyIO;
            0   20     1   context  Lorg/jruby/runtime/ThreadContext;
            1   20     2   runtime  Lorg/jruby/Ruby;
            2   20     3     posix  Ljnr/posix/POSIX;
            3   20     4      fptr  Lorg/jruby/util/io/OpenFile;
            4   20     5        fd  I
            8   20     6  write_io  Lorg/jruby/RubyIO;
           12   14     7       ret  I
           17   19     7       ret  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"close_on_exec?", "close_on_exec"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyIO flush(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyIO;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2275
            aload 0 /* this */
            aload 1 /* context */
            iconst_1
            invokevirtual org.jruby.RubyIO.flushRaw:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyIO;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 2278
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.RubyIO.flush:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyIO;
            pop
            return
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  protected org.jruby.RubyIO flushRaw(org.jruby.runtime.ThreadContext, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyIO;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // boolean sync
         0: .line 2289
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 4 /* io */
        start local 4 // org.jruby.RubyIO io
         1: .line 2290
            aload 4 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         2: .line 2292
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
         3: .line 2294
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            iconst_2
            iand
            ifeq 6
         4: .line 2295
            aload 3 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.io_fflush:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 6
         5: .line 2296
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            ldc ""
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 2303
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.RubyIO int
      StackMap stack:
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            iconst_1
            iand
            ifeq 12
         7: .line 2304
            aload 3 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.unread:(Lorg/jruby/runtime/ThreadContext;)V
         8: .line 2306
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 6
        10: .line 2307
            iload 5 /* locked */
            ifeq 11
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 2308
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        12: .line 2307
      StackMap locals:
      StackMap stack:
            iload 5 /* locked */
            ifeq 13
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        13: .line 2310
      StackMap locals:
      StackMap stack:
            aload 4 /* io */
            areturn
        end local 5 // boolean locked
        end local 4 // org.jruby.RubyIO io
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // boolean sync
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/jruby/RubyIO;
            0   14     1  context  Lorg/jruby/runtime/ThreadContext;
            0   14     2     sync  Z
            2   14     3     fptr  Lorg/jruby/util/io/OpenFile;
            1   14     4       io  Lorg/jruby/RubyIO;
            3   14     5   locked  Z
      Exception table:
        from    to  target  type
           3     9       9  any
    MethodParameters:
         Name  Flags
      context  
      sync     

  public org.jruby.runtime.builtin.IRubyObject gets(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2320
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"gets"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject gets(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 2326
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"gets"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject gets(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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject rs
        start local 3 // org.jruby.runtime.builtin.IRubyObject limit_arg
         0: .line 2332
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* rs */
            aload 3 /* limit_arg */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject limit_arg
        end local 2 // org.jruby.runtime.builtin.IRubyObject rs
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/RubyIO;
            0    1     1    context  Lorg/jruby/runtime/ThreadContext;
            0    1     2         rs  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  limit_arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"gets"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
           Name  Flags
      context    
      rs         
      limit_arg  

  public org.jruby.runtime.builtin.IRubyObject gets(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: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject rs
        start local 3 // org.jruby.runtime.builtin.IRubyObject limit_arg
        start local 4 // org.jruby.runtime.builtin.IRubyObject opt
         0: .line 2338
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* rs */
            aload 3 /* limit_arg */
            aload 4 /* opt */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject opt
        end local 3 // org.jruby.runtime.builtin.IRubyObject limit_arg
        end local 2 // org.jruby.runtime.builtin.IRubyObject rs
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/RubyIO;
            0    1     1    context  Lorg/jruby/runtime/ThreadContext;
            0    1     2         rs  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  limit_arg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4        opt  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"gets"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
           Name  Flags
      context    
      rs         
      limit_arg  
      opt        

  public boolean getBlocking();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 2381
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isBlocking:()Z
            ireturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public void setBlocking(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // boolean blocking
         0: .line 2385
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            iload 1 /* blocking */
            invokevirtual org.jruby.util.io.OpenFile.setBlocking:(Lorg/jruby/Ruby;Z)V
         1: .line 2386
            return
        end local 1 // boolean blocking
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jruby/RubyIO;
            0    2     1  blocking  Z
    MethodParameters:
          Name  Flags
      blocking  

  public org.jruby.runtime.builtin.IRubyObject fcntl(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject cmd
         0: .line 2390
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* cmd */
            aconst_null
            invokevirtual org.jruby.RubyIO.ctl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject cmd
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      cmd  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"fcntl"})
    MethodParameters:
         Name  Flags
      context  
      cmd      

  public org.jruby.runtime.builtin.IRubyObject fcntl(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject cmd
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 2395
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* cmd */
            aload 3 /* arg */
            invokevirtual org.jruby.RubyIO.ctl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg
        end local 2 // org.jruby.runtime.builtin.IRubyObject cmd
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      cmd  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"fcntl"})
    MethodParameters:
         Name  Flags
      context  
      cmd      
      arg      

  public org.jruby.runtime.builtin.IRubyObject ioctl(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2400
            aload 2 /* args */
            iconst_0
            aaload
            astore 3 /* cmd */
        start local 3 // org.jruby.runtime.builtin.IRubyObject cmd
         1: .line 2403
            aload 2 /* args */
            arraylength
            iconst_2
            if_icmpne 4
         2: .line 2404
            aload 2 /* args */
            iconst_1
            aaload
            astore 4 /* arg */
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg
         3: .line 2405
            goto 5
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg
         4: .line 2406
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* arg */
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg
         5: .line 2409
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* cmd */
            aload 4 /* arg */
            invokevirtual org.jruby.RubyIO.ctl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg
        end local 3 // org.jruby.runtime.builtin.IRubyObject cmd
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/RubyIO;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
            0    6     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     3      cmd  Lorg/jruby/runtime/builtin/IRubyObject;
            3    4     4      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            5    6     4      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"ioctl"}, required = 1, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      args     

  private org.jruby.runtime.builtin.IRubyObject ctl(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: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject cmd
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 2413
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 2414
            aload 2 /* cmd */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            lstore 5 /* realCmd */
        start local 5 // long realCmd
         2: .line 2415
            lconst_0
            lstore 7 /* nArg */
        start local 7 // long nArg
         3: .line 2417
            lload 5 /* realCmd */
            getstatic jnr.constants.platform.Fcntl.F_GETFL:Ljnr/constants/platform/Fcntl;
            invokevirtual jnr.constants.platform.Fcntl.intValue:()I
            i2l
            lcmp
            ifne 6
         4: .line 2418
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 9 /* myOpenFile */
        start local 9 // org.jruby.util.io.OpenFile myOpenFile
         5: .line 2419
            aload 4 /* runtime */
            aload 9 /* myOpenFile */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            invokestatic org.jruby.util.io.OpenFile.ioFmodeOflags:(I)I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 9 // org.jruby.util.io.OpenFile myOpenFile
         6: .line 2424
      StackMap locals: org.jruby.Ruby long long
      StackMap stack:
            aload 3 /* arg */
            ifnull 7
            aload 3 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 7
            aload 3 /* arg */
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
            if_acmpne 9
         7: .line 2425
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 7 /* nArg */
         8: .line 2426
            goto 16
      StackMap locals:
      StackMap stack:
         9: aload 3 /* arg */
            instanceof org.jruby.RubyFixnum
            ifeq 12
        10: .line 2427
            aload 3 /* arg */
            invokestatic org.jruby.RubyFixnum.fix2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            lstore 7 /* nArg */
        11: .line 2428
            goto 16
      StackMap locals:
      StackMap stack:
        12: aload 3 /* arg */
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            if_acmpne 15
        13: .line 2429
            lconst_1
            lstore 7 /* nArg */
        14: .line 2430
            goto 16
        15: .line 2431
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            ldc "JRuby does not support string for second fcntl/ioctl argument yet"
            invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        16: .line 2434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 9 /* fptr */
        start local 9 // org.jruby.util.io.OpenFile fptr
        17: .line 2445
            lload 5 /* realCmd */
            lconst_1
            lcmp
            ifne 20
        18: .line 2446
            aload 0 /* this */
            aload 1 /* context */
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyIO.close_on_exec_set:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        19: .line 2447
            goto 48
      StackMap locals: org.jruby.util.io.OpenFile
      StackMap stack:
        20: lload 5 /* realCmd */
            getstatic jnr.constants.platform.Fcntl.F_SETFD:Ljnr/constants/platform/Fcntl;
            invokevirtual jnr.constants.platform.Fcntl.intValue:()I
            i2l
            lcmp
            ifne 25
        21: .line 2448
            aload 3 /* arg */
            ifnull 24
            lload 7 /* nArg */
            lconst_1
            land
            lconst_1
            lcmp
            ifne 24
        22: .line 2449
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* arg */
            invokevirtual org.jruby.RubyIO.close_on_exec_set:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        23: .line 2450
            goto 48
        24: .line 2451
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            ldc "F_SETFD only supports FD_CLOEXEC"
            invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        25: .line 2453
      StackMap locals:
      StackMap stack:
            lload 5 /* realCmd */
            getstatic jnr.constants.platform.Fcntl.F_GETFD:Ljnr/constants/platform/Fcntl;
            invokevirtual jnr.constants.platform.Fcntl.intValue:()I
            i2l
            lcmp
            ifne 29
        26: .line 2454
            aload 4 /* runtime */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.close_on_exec_p:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 27
            iconst_1
            goto 28
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        27: iconst_0
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby long long org.jruby.util.io.OpenFile
      StackMap stack: org.jruby.Ruby int
        28: invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        29: .line 2455
      StackMap locals:
      StackMap stack:
            lload 5 /* realCmd */
            getstatic jnr.constants.platform.Fcntl.F_SETFL:Ljnr/constants/platform/Fcntl;
            invokevirtual jnr.constants.platform.Fcntl.intValue:()I
            i2l
            lcmp
            ifne 39
        30: .line 2456
            lload 7 /* nArg */
            getstatic jnr.constants.platform.OpenFlags.O_NONBLOCK:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            i2l
            land
            lconst_0
            lcmp
            ifeq 33
        31: .line 2457
            aload 9 /* fptr */
            aload 4 /* runtime */
            iconst_1
            invokevirtual org.jruby.util.io.OpenFile.setBlocking:(Lorg/jruby/Ruby;Z)V
        32: .line 2458
            goto 34
        33: .line 2459
      StackMap locals:
      StackMap stack:
            aload 9 /* fptr */
            aload 4 /* runtime */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.setBlocking:(Lorg/jruby/Ruby;Z)V
        34: .line 2462
      StackMap locals:
      StackMap stack:
            lload 7 /* nArg */
            getstatic jnr.constants.platform.OpenFlags.O_CLOEXEC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            i2l
            land
            lconst_0
            lcmp
            ifeq 37
        35: .line 2463
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyIO.close_on_exec_set:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        36: .line 2464
            goto 48
        37: .line 2465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyIO.close_on_exec_set:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        38: .line 2467
            goto 48
      StackMap locals:
      StackMap stack:
        39: lload 5 /* realCmd */
            getstatic jnr.constants.platform.Fcntl.F_GETFL:Ljnr/constants/platform/Fcntl;
            invokevirtual jnr.constants.platform.Fcntl.intValue:()I
            i2l
            lcmp
            ifne 47
        40: .line 2468
            aload 4 /* runtime */
        41: .line 2469
            aload 9 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.isBlocking:()Z
            ifeq 42
            iconst_0
            goto 43
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        42: getstatic jnr.constants.platform.OpenFlags.O_NONBLOCK:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
        43: .line 2470
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby long long org.jruby.util.io.OpenFile
      StackMap stack: org.jruby.Ruby int
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.close_on_exec_p:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 44
            iconst_1
            goto 45
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby long long org.jruby.util.io.OpenFile
      StackMap stack: org.jruby.Ruby int
        44: iconst_0
        45: .line 2469
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby long long org.jruby.util.io.OpenFile
      StackMap stack: org.jruby.Ruby int int
            ior
        46: .line 2468
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        47: .line 2472
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            ldc "JRuby only supports F_SETFL and F_GETFL with NONBLOCK for fcntl/ioctl"
            invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        48: .line 2475
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            iconst_0
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 9 // org.jruby.util.io.OpenFile fptr
        end local 7 // long nArg
        end local 5 // long realCmd
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg
        end local 2 // org.jruby.runtime.builtin.IRubyObject cmd
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   49     0        this  Lorg/jruby/RubyIO;
            0   49     1     context  Lorg/jruby/runtime/ThreadContext;
            0   49     2         cmd  Lorg/jruby/runtime/builtin/IRubyObject;
            0   49     3         arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1   49     4     runtime  Lorg/jruby/Ruby;
            2   49     5     realCmd  J
            3   49     7        nArg  J
            5    6     9  myOpenFile  Lorg/jruby/util/io/OpenFile;
           17   49     9        fptr  Lorg/jruby/util/io/OpenFile;
    MethodParameters:
         Name  Flags
      context  
      cmd      
      arg      

  public org.jruby.runtime.builtin.IRubyObject puts(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2480
            aload 1 /* context */
            aload 0 /* this */
            invokestatic org.jruby.RubyIO.puts0:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"puts"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject puts(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 2485
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* arg0 */
            invokestatic org.jruby.RubyIO.puts1:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"puts"})
    MethodParameters:
         Name  Flags
      context  
      arg0     

  public org.jruby.runtime.builtin.IRubyObject puts(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
         0: .line 2490
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            invokestatic org.jruby.RubyIO.puts2:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"puts"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     

  public org.jruby.runtime.builtin.IRubyObject puts(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 2495
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* arg2 */
            invokestatic org.jruby.RubyIO.puts3:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"puts"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     
      arg2     

  public org.jruby.runtime.builtin.IRubyObject puts(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2500
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* args */
            invokestatic org.jruby.RubyIO.puts:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"puts"}, rest = true)
    MethodParameters:
         Name  Flags
      context  
      args     

  public static org.jruby.runtime.builtin.IRubyObject puts0(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=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
         0: .line 2504
            aload 0 /* context */
            aload 1 /* maybeIO */
            invokestatic org.jruby.RubyIO.writeSeparator:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1  maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      maybeIO  

  public static org.jruby.runtime.builtin.IRubyObject puts1(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=5, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 2508
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 2509
            getstatic org.jruby.RubyIO.$assertionsDisabled:Z
            ifne 2
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            instanceof org.jruby.RubyString
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2510
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 4 /* separator */
        start local 4 // org.jruby.RubyString separator
         3: .line 2512
            aload 0 /* context */
            aload 3 /* runtime */
            aload 1 /* maybeIO */
            aload 2 /* arg0 */
            aload 4 /* separator */
            invokestatic org.jruby.RubyIO.putsSingle:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;)V
         4: .line 2514
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.RubyString separator
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        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    maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     2       arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     3    runtime  Lorg/jruby/Ruby;
            3    5     4  separator  Lorg/jruby/RubyString;
    MethodParameters:
         Name  Flags
      context  
      maybeIO  
      arg0     

  public static org.jruby.runtime.builtin.IRubyObject puts2(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=5, locals=6, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
         0: .line 2518
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 2519
            getstatic org.jruby.RubyIO.$assertionsDisabled:Z
            ifne 2
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            instanceof org.jruby.RubyString
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2520
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 5 /* separator */
        start local 5 // org.jruby.RubyString separator
         3: .line 2522
            aload 0 /* context */
            aload 4 /* runtime */
            aload 1 /* maybeIO */
            aload 2 /* arg0 */
            aload 5 /* separator */
            invokestatic org.jruby.RubyIO.putsSingle:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;)V
         4: .line 2523
            aload 0 /* context */
            aload 4 /* runtime */
            aload 1 /* maybeIO */
            aload 3 /* arg1 */
            aload 5 /* separator */
            invokestatic org.jruby.RubyIO.putsSingle:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;)V
         5: .line 2525
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.RubyString separator
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        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    maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2       arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     3       arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     4    runtime  Lorg/jruby/Ruby;
            3    6     5  separator  Lorg/jruby/RubyString;
    MethodParameters:
         Name  Flags
      context  
      maybeIO  
      arg0     
      arg1     

  public static org.jruby.runtime.builtin.IRubyObject puts3(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, 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;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 2529
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 2530
            getstatic org.jruby.RubyIO.$assertionsDisabled:Z
            ifne 2
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            instanceof org.jruby.RubyString
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2531
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 6 /* separator */
        start local 6 // org.jruby.RubyString separator
         3: .line 2533
            aload 0 /* context */
            aload 5 /* runtime */
            aload 1 /* maybeIO */
            aload 2 /* arg0 */
            aload 6 /* separator */
            invokestatic org.jruby.RubyIO.putsSingle:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;)V
         4: .line 2534
            aload 0 /* context */
            aload 5 /* runtime */
            aload 1 /* maybeIO */
            aload 3 /* arg1 */
            aload 6 /* separator */
            invokestatic org.jruby.RubyIO.putsSingle:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;)V
         5: .line 2535
            aload 0 /* context */
            aload 5 /* runtime */
            aload 1 /* maybeIO */
            aload 4 /* arg2 */
            aload 6 /* separator */
            invokestatic org.jruby.RubyIO.putsSingle:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;)V
         6: .line 2537
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.RubyString separator
        end local 5 // org.jruby.Ruby runtime
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0    context  Lorg/jruby/runtime/ThreadContext;
            0    7     1    maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2       arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3       arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     4       arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     5    runtime  Lorg/jruby/Ruby;
            3    7     6  separator  Lorg/jruby/RubyString;
    MethodParameters:
         Name  Flags
      context  
      maybeIO  
      arg0     
      arg1     
      arg2     

  public static org.jruby.runtime.builtin.IRubyObject puts(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: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2541
            aload 2 /* args */
            arraylength
            ifne 2
         1: .line 2542
            aload 0 /* context */
            aload 1 /* maybeIO */
            invokestatic org.jruby.RubyIO.writeSeparator:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 2545
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 2 /* args */
            invokestatic org.jruby.RubyIO.putsArray:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        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  maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      maybeIO  
      args     

  private static org.jruby.runtime.builtin.IRubyObject writeSeparator(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: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
         0: .line 2549
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 2550
            getstatic org.jruby.RubyIO.$assertionsDisabled:Z
            ifne 2
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            instanceof org.jruby.RubyString
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2551
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 3 /* separator */
        start local 3 // org.jruby.RubyString separator
         3: .line 2553
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 3 /* separator */
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         4: .line 2554
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.RubyString separator
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        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    maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     2    runtime  Lorg/jruby/Ruby;
            3    5     3  separator  Lorg/jruby/RubyString;
    MethodParameters:
         Name  Flags
      context  
      maybeIO  

  private static org.jruby.runtime.builtin.IRubyObject putsArray(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: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2558
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 2559
            getstatic org.jruby.RubyIO.$assertionsDisabled:Z
            ifne 2
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            instanceof org.jruby.RubyString
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2560
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            invokevirtual org.jruby.internal.runtime.GlobalVariables.getDefaultSeparator:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 4 /* separator */
        start local 4 // org.jruby.RubyString separator
         3: .line 2562
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 7
         5: .line 2563
      StackMap locals: org.jruby.RubyString int
      StackMap stack:
            aload 0 /* context */
            aload 3 /* runtime */
            aload 1 /* maybeIO */
            aload 2 /* args */
            iload 5 /* i */
            aaload
            aload 4 /* separator */
            invokestatic org.jruby.RubyIO.putsSingle:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;)V
         6: .line 2562
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            aload 2 /* args */
            arraylength
            if_icmplt 5
        end local 5 // int i
         8: .line 2566
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.RubyString separator
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        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    maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     2       args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    9     3    runtime  Lorg/jruby/Ruby;
            3    9     4  separator  Lorg/jruby/RubyString;
            4    8     5          i  I
    MethodParameters:
         Name  Flags
      context  
      maybeIO  
      args     

  private static void putsSingle(org.jruby.runtime.ThreadContext, org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyString);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg
        start local 4 // org.jruby.RubyString separator
         0: .line 2575
            aload 3 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 4
         1: .line 2576
            getstatic org.jruby.util.ByteList.EMPTY_BYTELIST:Lorg/jruby/util/ByteList;
            astore 5 /* line */
        start local 5 // org.jruby.util.ByteList line
         2: .line 2577
            aconst_null
            astore 6 /* string */
        start local 6 // org.jruby.RubyString string
         3: .line 2578
            goto 13
        end local 6 // org.jruby.RubyString string
        end local 5 // org.jruby.util.ByteList line
      StackMap locals:
      StackMap stack:
         4: aload 1 /* runtime */
            aload 3 /* arg */
            invokevirtual org.jruby.Ruby.isInspecting:(Ljava/lang/Object;)Z
            ifeq 8
         5: .line 2579
            getstatic org.jruby.RubyIO.RECURSIVE_BYTELIST:Lorg/jruby/util/ByteList;
            astore 5 /* line */
        start local 5 // org.jruby.util.ByteList line
         6: .line 2580
            aconst_null
            astore 6 /* string */
        start local 6 // org.jruby.RubyString string
         7: .line 2581
            goto 13
        end local 6 // org.jruby.RubyString string
        end local 5 // org.jruby.util.ByteList line
      StackMap locals:
      StackMap stack:
         8: aload 3 /* arg */
            instanceof org.jruby.RubyArray
            ifeq 11
         9: .line 2582
            aload 0 /* context */
            aload 2 /* maybeIO */
            aload 3 /* arg */
            checkcast org.jruby.RubyArray
            invokestatic org.jruby.RubyIO.inspectPuts:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyArray;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        10: .line 2583
            return
        11: .line 2585
      StackMap locals:
      StackMap stack:
            aload 3 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asString:()Lorg/jruby/RubyString;
            astore 6 /* string */
        start local 6 // org.jruby.RubyString string
        12: .line 2586
            aload 6 /* string */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 5 /* line */
        start local 5 // org.jruby.util.ByteList line
        13: .line 2589
      StackMap locals: org.jruby.util.ByteList org.jruby.RubyString
      StackMap stack:
            aload 5 /* line */
            invokevirtual org.jruby.util.ByteList.length:()I
            ifeq 14
            aload 5 /* line */
            aload 4 /* separator */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.endsWith:(Lorg/jruby/util/ByteList;)Z
            ifeq 14
            iconst_0
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 7 /* writeSeparator */
        start local 7 // boolean writeSeparator
        16: .line 2591
            aload 6 /* string */
            ifnull 22
        17: .line 2592
            iload 7 /* writeSeparator */
            ifeq 20
        18: .line 2593
            aload 0 /* context */
            aload 2 /* maybeIO */
            aload 6 /* string */
            aload 4 /* separator */
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        19: .line 2594
            goto 26
        20: .line 2595
      StackMap locals: int
      StackMap stack:
            aload 0 /* context */
            aload 2 /* maybeIO */
            aload 6 /* string */
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        21: .line 2597
            goto 26
        22: .line 2598
      StackMap locals:
      StackMap stack:
            iload 7 /* writeSeparator */
            ifeq 25
        23: .line 2599
            aload 0 /* context */
            aload 2 /* maybeIO */
            aload 5 /* line */
            aload 4 /* separator */
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/ByteList;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        24: .line 2600
            goto 26
        25: .line 2601
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 2 /* maybeIO */
            aload 5 /* line */
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/ByteList;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        26: .line 2604
      StackMap locals:
      StackMap stack:
            return
        end local 7 // boolean writeSeparator
        end local 6 // org.jruby.RubyString string
        end local 5 // org.jruby.util.ByteList line
        end local 4 // org.jruby.RubyString separator
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg
        end local 2 // org.jruby.runtime.builtin.IRubyObject maybeIO
        end local 1 // org.jruby.Ruby runtime
        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         runtime  Lorg/jruby/Ruby;
            0   27     2         maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0   27     3             arg  Lorg/jruby/runtime/builtin/IRubyObject;
            0   27     4       separator  Lorg/jruby/RubyString;
            2    4     5            line  Lorg/jruby/util/ByteList;
            6    8     5            line  Lorg/jruby/util/ByteList;
           13   27     5            line  Lorg/jruby/util/ByteList;
            3    4     6          string  Lorg/jruby/RubyString;
            7    8     6          string  Lorg/jruby/RubyString;
           12   27     6          string  Lorg/jruby/RubyString;
           16   27     7  writeSeparator  Z
    MethodParameters:
           Name  Flags
      context    
      runtime    
      maybeIO    
      arg        
      separator  

  private static org.jruby.runtime.builtin.IRubyObject inspectPuts(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyArray);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyArray;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, 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 maybeIO
        start local 2 // org.jruby.RubyArray array
         0: .line 2608
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* array */
            invokevirtual org.jruby.Ruby.registerInspecting:(Ljava/lang/Object;)V
         1: .line 2609
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 2 /* array */
            invokevirtual org.jruby.RubyArray.toJavaArrayMaybeUnsafe:()[Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyIO.putsArray:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4
         2: .line 2611
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* array */
            invokevirtual org.jruby.Ruby.unregisterInspecting:(Ljava/lang/Object;)V
         3: .line 2609
            aload 4
            areturn
         4: .line 2610
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 2611
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* array */
            invokevirtual org.jruby.Ruby.unregisterInspecting:(Ljava/lang/Object;)V
         6: .line 2612
            aload 3
            athrow
        end local 2 // org.jruby.RubyArray array
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Lorg/jruby/runtime/ThreadContext;
            0    7     1  maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2    array  Lorg/jruby/RubyArray;
      Exception table:
        from    to  target  type
           0     2       4  any
    MethodParameters:
         Name  Flags
      context  
      maybeIO  
      array    

  protected static org.jruby.runtime.builtin.IRubyObject write(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/ByteList;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.util.ByteList byteList
         0: .line 2616
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* byteList */
            invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.util.ByteList byteList
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lorg/jruby/runtime/ThreadContext;
            0    1     1   maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  byteList  Lorg/jruby/util/ByteList;
    MethodParameters:
          Name  Flags
      context   
      maybeIO   
      byteList  

  protected static org.jruby.runtime.builtin.IRubyObject write(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.util.ByteList, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/ByteList;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.util.ByteList byteList
        start local 3 // org.jruby.runtime.builtin.IRubyObject sep
         0: .line 2621
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* byteList */
            invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            aload 3 /* sep */
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject sep
        end local 2 // org.jruby.util.ByteList byteList
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lorg/jruby/runtime/ThreadContext;
            0    1     1   maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  byteList  Lorg/jruby/util/ByteList;
            0    1     3       sep  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
          Name  Flags
      context   
      maybeIO   
      byteList  
      sep       

  public static org.jruby.runtime.builtin.IRubyObject write(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=5, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
         0: .line 2625
            aload 0 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            getfield org.jruby.runtime.JavaSites$IOSites.write:Lorg/jruby/runtime/callsite/CachingCallSite;
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 1 /* maybeIO */
            aload 2 /* str */
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1  maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2      str  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      maybeIO  
      str      

  public static org.jruby.runtime.builtin.IRubyObject write(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=6, locals=6, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
         0: .line 2630
            aload 0 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            getfield org.jruby.runtime.JavaSites$IOSites.write:Lorg/jruby/runtime/callsite/CachingCallSite;
            astore 4 /* write */
        start local 4 // org.jruby.runtime.callsite.CachingCallSite write
         1: .line 2633
            aload 4 /* write */
            aload 1 /* maybeIO */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.retrieveCache:(Lorg/jruby/RubyClass;)Lorg/jruby/runtime/callsite/CacheEntry;
            getfield org.jruby.runtime.callsite.CacheEntry.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
            invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getArity:()Lorg/jruby/runtime/Arity;
            getstatic org.jruby.runtime.Arity.ONE_ARGUMENT:Lorg/jruby/runtime/Arity;
            if_acmpne 8
         2: .line 2634
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         3: .line 2635
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.isVerbose:()Z
            ifeq 5
            aload 1 /* maybeIO */
            aload 5 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$stderr"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.get:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 5
         4: .line 2636
            aload 5 /* runtime */
            aload 1 /* maybeIO */
            invokestatic org.jruby.RubyIO.warnWrite:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)V
         5: .line 2638
      StackMap locals: org.jruby.runtime.callsite.CachingCallSite org.jruby.Ruby
      StackMap stack:
            aload 4 /* write */
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 1 /* maybeIO */
            aload 2 /* arg0 */
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         6: .line 2639
            aload 4 /* write */
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 1 /* maybeIO */
            aload 3 /* arg1 */
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         7: .line 2640
            aload 2 /* arg0 */
            areturn
        end local 5 // org.jruby.Ruby runtime
         8: .line 2642
      StackMap locals:
      StackMap stack:
            aload 4 /* write */
            aload 0 /* context */
            aload 1 /* maybeIO */
            aload 1 /* maybeIO */
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.callsite.CachingCallSite write
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        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  maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            1    9     4    write  Lorg/jruby/runtime/callsite/CachingCallSite;
            3    8     5  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      context  
      maybeIO  
      arg0     
      arg1     

  private static void warnWrite(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
         0: .line 2646
            aload 1 /* maybeIO */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            astore 2 /* klass */
        start local 2 // org.jruby.runtime.builtin.IRubyObject klass
         1: .line 2648
            aload 2 /* klass */
            checkcast org.jruby.RubyClass
            invokevirtual org.jruby.RubyClass.isSingleton:()Z
            ifeq 5
         2: .line 2649
            aload 1 /* maybeIO */
            astore 2 /* klass */
         3: .line 2650
            bipush 46
            istore 3 /* sep */
        start local 3 // char sep
         4: .line 2651
            goto 6
        end local 3 // char sep
         5: .line 2652
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            bipush 35
            istore 3 /* sep */
        start local 3 // char sep
         6: .line 2654
      StackMap locals: int
      StackMap stack:
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            new java.lang.StringBuilder
            dup
            aload 2 /* klass */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* sep */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc "write is outdated interface which accepts just one argument"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.common.RubyWarnings.warning:(Ljava/lang/String;)V
         7: .line 2655
            return
        end local 3 // char sep
        end local 2 // org.jruby.runtime.builtin.IRubyObject klass
        end local 1 // org.jruby.runtime.builtin.IRubyObject maybeIO
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  runtime  Lorg/jruby/Ruby;
            0    8     1  maybeIO  Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     2    klass  Lorg/jruby/runtime/builtin/IRubyObject;
            4    5     3      sep  C
            6    8     3      sep  C
    MethodParameters:
         Name  Flags
      runtime  final
      maybeIO  

  public org.jruby.runtime.builtin.IRubyObject inspect();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 2660
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            astore 1 /* openFile */
        start local 1 // org.jruby.util.io.OpenFile openFile
         1: .line 2661
            aload 1 /* openFile */
            ifnonnull 2
            aload 0 /* this */
            invokespecial org.jruby.RubyObject.inspect:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 2663
      StackMap locals: org.jruby.util.io.OpenFile
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getRealClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getName:()Ljava/lang/String;
            astore 2 /* className */
        start local 2 // java.lang.String className
         3: .line 2664
            aload 1 /* openFile */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 2665
            ldc ""
            astore 4 /* status */
        start local 4 // java.lang.String status
         5: .line 2667
            aload 3 /* path */
            ifnull 6
            aload 3 /* path */
            ldc ""
            if_acmpne 12
         6: .line 2668
      StackMap locals: java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* openFile */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            ifnonnull 10
         7: .line 2669
            ldc ""
            astore 3 /* path */
         8: .line 2670
            ldc "(closed)"
            astore 4 /* status */
         9: .line 2671
            goto 14
        10: .line 2672
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "fd "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* openFile */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.util.io.ChannelFD.bestFileno:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* path */
        11: .line 2674
            goto 14
      StackMap locals:
      StackMap stack:
        12: aload 1 /* openFile */
            invokevirtual org.jruby.util.io.OpenFile.isOpen:()Z
            ifne 14
        13: .line 2675
            ldc " (closed)"
            astore 4 /* status */
        14: .line 2678
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "#<"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* status */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 62
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 4 // java.lang.String status
        end local 3 // java.lang.String path
        end local 2 // java.lang.String className
        end local 1 // org.jruby.util.io.OpenFile openFile
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lorg/jruby/RubyIO;
            1   15     1   openFile  Lorg/jruby/util/io/OpenFile;
            3   15     2  className  Ljava/lang/String;
            4   15     3       path  Ljava/lang/String;
            5   15     4     status  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject readline(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2686
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.gets:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* line */
        start local 2 // org.jruby.runtime.builtin.IRubyObject line
         1: .line 2688
            aload 2 /* line */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newEOFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 2690
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* line */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject line
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/RubyIO;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            1    3     2     line  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readline"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject readline(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject separator
         0: .line 2695
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* separator */
            invokevirtual org.jruby.RubyIO.gets:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* line */
        start local 3 // org.jruby.runtime.builtin.IRubyObject line
         1: .line 2697
            aload 3 /* line */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newEOFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 2699
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* line */
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject line
        end local 2 // org.jruby.runtime.builtin.IRubyObject separator
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/jruby/RubyIO;
            0    3     1    context  Lorg/jruby/runtime/ThreadContext;
            0    3     2  separator  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     3       line  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readline"}, writes = {org.jruby.anno.FrameField.LASTLINE:Lorg/jruby/anno/FrameField;})
    MethodParameters:
           Name  Flags
      context    
      separator  

  public org.jruby.runtime.builtin.IRubyObject getc();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 2704
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.jruby.runtime.builtin.IRubyObject readchar(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2712
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getc:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* c */
        start local 2 // org.jruby.runtime.builtin.IRubyObject c
         1: .line 2714
            aload 2 /* c */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newEOFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 2716
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* c */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject c
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/RubyIO;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            1    3     2        c  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject getbyte(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2724
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getByte:(Lorg/jruby/runtime/ThreadContext;)I
            istore 2 /* c */
        start local 2 // int c
         1: .line 2726
            iload 2 /* c */
            iconst_m1
            if_icmpne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 2728
      StackMap locals: int
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 2 /* c */
            sipush 255
            iand
            i2l
            invokestatic org.jruby.RubyNumeric.int2fix:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyNumeric;
            areturn
        end local 2 // int c
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/RubyIO;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            1    3     2        c  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public int getByte(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2733
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 2 /* fptr */
        start local 2 // org.jruby.util.io.OpenFile fptr
         1: .line 2735
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 3 /* locked */
        start local 3 // boolean locked
         2: .line 2737
            aload 2 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkByteReadable:(Lorg/jruby/runtime/ThreadContext;)V
         3: .line 2738
            aload 2 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
         4: .line 2747
            aload 2 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 7
         5: .line 2754
            iload 3 /* locked */
            ifeq 6
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         6: .line 2748
      StackMap locals: org.jruby.util.io.OpenFile int
      StackMap stack:
            iconst_m1
            ireturn
         7: .line 2750
      StackMap locals:
      StackMap stack:
            aload 2 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iconst_1
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
         8: .line 2751
            aload 2 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iconst_1
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
         9: .line 2752
            aload 2 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 2 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iconst_1
            isub
            baload
            sipush 255
            iand
            istore 5
        10: .line 2754
            iload 3 /* locked */
            ifeq 11
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 2752
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile int top int
      StackMap stack:
            iload 5
            ireturn
        12: .line 2753
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
            astore 4
        13: .line 2754
            iload 3 /* locked */
            ifeq 14
            aload 2 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        14: .line 2755
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        end local 3 // boolean locked
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lorg/jruby/RubyIO;
            0   15     1  context  Lorg/jruby/runtime/ThreadContext;
            1   15     2     fptr  Lorg/jruby/util/io/OpenFile;
            2   15     3   locked  Z
      Exception table:
        from    to  target  type
           2     5      12  any
           7    10      12  any
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject readbyte(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2761
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getbyte:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* c */
        start local 2 // org.jruby.runtime.builtin.IRubyObject c
         1: .line 2763
            aload 2 /* c */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newEOFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 2765
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* c */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject c
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/RubyIO;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            1    3     2        c  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject getc(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2771
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 2774
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         2: .line 2776
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
         3: .line 2778
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkCharReadable:(Lorg/jruby/runtime/ThreadContext;)V
         4: .line 2780
            aload 4 /* fptr */
            aload 2 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.inputEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            astore 3 /* enc */
        start local 3 // org.jcodings.Encoding enc
         5: .line 2781
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
         6: .line 2782
            aload 4 /* fptr */
            aload 1 /* context */
            aload 3 /* enc */
            invokevirtual org.jruby.util.io.OpenFile.getc:(Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7
         7: .line 2784
            iload 5 /* locked */
            ifeq 8
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 2782
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jcodings.Encoding org.jruby.util.io.OpenFile int top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 7
            areturn
        end local 3 // org.jcodings.Encoding enc
         9: .line 2783
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby top org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
            astore 6
        10: .line 2784
            iload 5 /* locked */
            ifeq 11
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 2785
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 5 // boolean locked
        end local 4 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/jruby/RubyIO;
            0   12     1  context  Lorg/jruby/runtime/ThreadContext;
            1   12     2  runtime  Lorg/jruby/Ruby;
            5    9     3      enc  Lorg/jcodings/Encoding;
            2   12     4     fptr  Lorg/jruby/util/io/OpenFile;
            3   12     5   locked  Z
      Exception table:
        from    to  target  type
           3     7       9  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"getc"})
    MethodParameters:
         Name  Flags
      context  

  public final org.jruby.runtime.builtin.IRubyObject getc19(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2790
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getc:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject ungetbyte(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
         0: .line 2796
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         1: .line 2798
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         2: .line 2800
            aload 3 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkByteReadable:(Lorg/jruby/runtime/ThreadContext;)V
         3: .line 2801
            aload 2 /* b */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 6
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7
         4: .line 2810
            iload 4 /* locked */
            ifeq 5
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile int top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         5: aload 7
            areturn
         6: .line 2802
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 2 /* b */
            instanceof org.jruby.RubyFixnum
            ifeq 10
         7: .line 2803
            aload 2 /* b */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            i2b
            istore 5 /* cc */
        start local 5 // byte cc
         8: .line 2804
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_1
            newarray 8
            dup
            iconst_0
            iload 5 /* cc */
            bastore
            invokestatic org.jruby.RubyString.newStringNoCopy:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
            astore 2 /* b */
        end local 5 // byte cc
         9: .line 2805
            goto 11
        10: .line 2806
      StackMap locals:
      StackMap stack:
            aload 2 /* b */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 2 /* b */
        11: .line 2808
      StackMap locals:
      StackMap stack:
            aload 3 /* fptr */
            aload 1 /* context */
            aload 2 /* b */
            invokevirtual org.jruby.util.io.OpenFile.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
        12: .line 2809
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 6
        14: .line 2810
            iload 4 /* locked */
            ifeq 15
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        15: .line 2811
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile int top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        16: .line 2810
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile int
      StackMap stack:
            iload 4 /* locked */
            ifeq 17
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 2813
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // boolean locked
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/jruby/RubyIO;
            0   18     1  context  Lorg/jruby/runtime/ThreadContext;
            0   18     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
            1   18     3     fptr  Lorg/jruby/util/io/OpenFile;
            2   18     4   locked  Z
            8    9     5       cc  B
      Exception table:
        from    to  target  type
           2     4      13  any
           6    13      13  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      b        

  public org.jruby.runtime.builtin.IRubyObject ungetc(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject c
         0: .line 2819
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 2821
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         2: .line 2823
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
         3: .line 2825
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkCharReadable:(Lorg/jruby/runtime/ThreadContext;)V
         4: .line 2826
            aload 2 /* c */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 7
            aload 2 /* c */
            astore 9
         5: .line 2859
            iload 5 /* locked */
            ifeq 6
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile int top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         6: aload 9
            areturn
         7: .line 2827
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 2 /* c */
            instanceof org.jruby.RubyInteger
            ifeq 10
         8: .line 2828
            aload 1 /* context */
            aload 2 /* c */
            checkcast org.jruby.RubyInteger
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            l2i
            aload 4 /* fptr */
            aload 3 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.io.EncodingUtils.encUintChr:(Lorg/jruby/runtime/ThreadContext;ILorg/jcodings/Encoding;)Lorg/jruby/RubyString;
            astore 2 /* c */
         9: .line 2829
            goto 11
        10: .line 2830
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 2 /* c */
        11: .line 2832
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.needsReadConversion:()Z
            ifeq 28
        12: .line 2833
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.SET_BINARY_MODE:()V
        13: .line 2834
            aload 2 /* c */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.size:()I
            istore 6 /* len */
        start local 6 // int len
        14: .line 2839
            aload 4 /* fptr */
            aload 1 /* context */
            iload 6 /* len */
            invokevirtual org.jruby.util.io.OpenFile.makeReadConversion:(Lorg/jruby/runtime/ThreadContext;I)V
        15: .line 2840
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            isub
            iload 6 /* len */
            if_icmpge 17
        16: .line 2841
            aload 3 /* runtime */
            ldc "ungetc failed"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        17: .line 2843
      StackMap locals: int
      StackMap stack:
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 6 /* len */
            if_icmpge 23
        18: .line 2845
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
        19: .line 2846
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            isub
        20: .line 2847
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
        21: .line 2844
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        22: .line 2848
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        23: .line 2850
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 6 /* len */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        24: .line 2851
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 6 /* len */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        25: .line 2852
            aload 2 /* c */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* cByteList */
        start local 7 // org.jruby.util.ByteList cByteList
        26: .line 2853
            aload 7 /* cByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 7 /* cByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 6 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 7 // org.jruby.util.ByteList cByteList
        end local 6 // int len
        27: .line 2854
            goto 34
        28: .line 2855
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_READ_CHECK:()V
        29: .line 2856
            aload 4 /* fptr */
            aload 1 /* context */
            aload 2 /* c */
            invokevirtual org.jruby.util.io.OpenFile.ungetbyte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
        30: .line 2858
            goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 8
        32: .line 2859
            iload 5 /* locked */
            ifeq 33
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        33: .line 2860
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile int top top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        34: .line 2859
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack:
            iload 5 /* locked */
            ifeq 35
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        35: .line 2862
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // boolean locked
        end local 4 // org.jruby.util.io.OpenFile fptr
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject c
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   36     0       this  Lorg/jruby/RubyIO;
            0   36     1    context  Lorg/jruby/runtime/ThreadContext;
            0   36     2          c  Lorg/jruby/runtime/builtin/IRubyObject;
            1   36     3    runtime  Lorg/jruby/Ruby;
            2   36     4       fptr  Lorg/jruby/util/io/OpenFile;
            3   36     5     locked  Z
           14   27     6        len  I
           26   27     7  cByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
           3     5      31  any
           7    31      31  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      c        

  public org.jruby.runtime.builtin.IRubyObject read_nonblock(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2867
            aload 1 /* context */
            ldc "exception"
            aload 2 /* args */
            invokestatic org.jruby.ast.util.ArgsUtil.extractKeywordArg:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* exception */
        start local 3 // boolean exception
         3: .line 2868
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iload 3 /* exception */
            invokevirtual org.jruby.RubyIO.doReadNonblock:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // boolean exception
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/jruby/RubyIO;
            0    4     1    context  Lorg/jruby/runtime/ThreadContext;
            0    4     2       args  [Lorg/jruby/runtime/builtin/IRubyObject;
            3    4     3  exception  Z
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"read_nonblock"}, required = 1, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject doReadNonblock(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // boolean exception
         0: .line 2873
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_1
            iload 3 /* exception */
            ifeq 1
            iconst_0
            goto 2
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int
      StackMap stack: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int
         1: iconst_1
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int
      StackMap stack: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int
         2: invokevirtual org.jruby.RubyIO.getPartial:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;ZZ)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* ret */
        start local 4 // org.jruby.runtime.builtin.IRubyObject ret
         3: .line 2874
            aload 4 /* ret */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 6
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 3 /* exception */
            ifeq 4
            iconst_0
            goto 5
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby
         4: iconst_1
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby int
         5: invokestatic org.jruby.RubyIO.nonblockEOF:(Lorg/jruby/Ruby;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 4 /* ret */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         7: areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject ret
        end local 3 // boolean exception
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/jruby/RubyIO;
            0    8     1    context  Lorg/jruby/runtime/ThreadContext;
            0    8     2       args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     3  exception  Z
            3    8     4        ret  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
           Name  Flags
      context    
      args       
      exception  

  static org.jruby.runtime.builtin.IRubyObject nonblockEOF(org.jruby.Ruby, boolean);
    descriptor: (Lorg/jruby/Ruby;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // boolean noException
         0: .line 2879
            iload 1 /* noException */
            ifeq 1
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 2880
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.newEOFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 1 // boolean noException
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0      runtime  Lorg/jruby/Ruby;
            0    2     1  noException  Z
    MethodParameters:
             Name  Flags
      runtime      final
      noException  final

  public org.jruby.runtime.builtin.IRubyObject readpartial(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2886
            aload 2 /* args */
            arraylength
            iconst_2
            if_icmpne 2
         1: .line 2887
            aload 2 /* args */
            iconst_1
            aload 2 /* args */
            iconst_1
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            aastore
         2: .line 2890
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            iconst_0
            invokevirtual org.jruby.RubyIO.getPartial:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;ZZ)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* value */
        start local 3 // org.jruby.runtime.builtin.IRubyObject value
         3: .line 2892
            aload 3 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 5
         4: .line 2893
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newEOFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 2896
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* value */
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject value
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/RubyIO;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
            0    6     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            3    6     3    value  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readpartial"}, required = 1, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      args     

  org.jruby.runtime.builtin.IRubyObject getPartial(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], boolean, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;ZZ)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0000) 
    Code:
      stack=6, locals=16, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // boolean nonblock
        start local 4 // boolean noException
         0: .line 2901
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 2905
            aload 2 /* args */
            arraylength
            tableswitch { // 1 - 3
                    1: 12
                    2: 6
                    3: 2
              default: 15
          }
         2: .line 2907
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            astore 7 /* length */
        start local 7 // org.jruby.runtime.builtin.IRubyObject length
         3: .line 2908
            aload 2 /* args */
            iconst_1
            aaload
            astore 8 /* str */
        start local 8 // org.jruby.runtime.builtin.IRubyObject str
         4: .line 2909
            aload 2 /* args */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToHash:()Lorg/jruby/RubyHash;
            pop
         5: .line 2910
            goto 17
        end local 8 // org.jruby.runtime.builtin.IRubyObject str
        end local 7 // org.jruby.runtime.builtin.IRubyObject length
         6: .line 2912
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            astore 7 /* length */
        start local 7 // org.jruby.runtime.builtin.IRubyObject length
         7: .line 2913
            aload 5 /* runtime */
            aload 2 /* args */
            iconst_1
            aaload
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* str */
        start local 8 // org.jruby.runtime.builtin.IRubyObject str
         8: .line 2914
            aload 8 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 9
            aload 2 /* args */
            iconst_1
            aaload
            goto 10
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         9: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        10: astore 8 /* str */
        11: .line 2915
            goto 17
        end local 8 // org.jruby.runtime.builtin.IRubyObject str
        end local 7 // org.jruby.runtime.builtin.IRubyObject length
        12: .line 2917
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            astore 7 /* length */
        start local 7 // org.jruby.runtime.builtin.IRubyObject length
        13: .line 2918
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* str */
        start local 8 // org.jruby.runtime.builtin.IRubyObject str
        14: .line 2919
            goto 17
        end local 8 // org.jruby.runtime.builtin.IRubyObject str
        end local 7 // org.jruby.runtime.builtin.IRubyObject length
        15: .line 2921
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* length */
        start local 7 // org.jruby.runtime.builtin.IRubyObject length
        16: .line 2922
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* str */
        start local 8 // org.jruby.runtime.builtin.IRubyObject str
        17: .line 2926
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby top org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 7 /* length */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            dup
            istore 9 /* len */
        start local 9 // int len
        18: ifge 20
        19: .line 2927
            aload 5 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "negative length "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " given"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        20: .line 2930
      StackMap locals: int
      StackMap stack:
            aload 5 /* runtime */
            aload 8 /* str */
            iload 9 /* len */
            invokestatic org.jruby.util.io.EncodingUtils.setStrBuf:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/RubyString;
            astore 8 /* str */
        21: .line 2931
            aload 8 /* str */
            iconst_1
            invokeinterface org.jruby.runtime.builtin.IRubyObject.setTaint:(Z)V
        22: .line 2933
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 6 /* fptr */
        start local 6 // org.jruby.util.io.OpenFile fptr
        23: .line 2935
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 10 /* locked */
        start local 10 // boolean locked
        24: .line 2937
            aload 6 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkByteReadable:(Lorg/jruby/runtime/ThreadContext;)V
        25: .line 2939
            iload 9 /* len */
            ifne 28
            aload 8 /* str */
            astore 15
        26: .line 2974
            iload 10 /* locked */
            ifeq 27
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        27: aload 15
            areturn
        28: .line 2941
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int
      StackMap stack:
            iload 3 /* nonblock */
            ifne 29
            aload 6 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
        29: .line 2943
      StackMap locals:
      StackMap stack:
            aload 8 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 12 /* strByteList */
        start local 12 // org.jruby.util.ByteList strByteList
        30: .line 2944
            aload 6 /* fptr */
            aload 12 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 12 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            iload 9 /* len */
            invokevirtual org.jruby.util.io.OpenFile.readBufferedData:([BII)I
            istore 11 /* n */
        start local 11 // int n
        31: .line 2945
            iload 11 /* n */
            ifgt 52
        32: .line 2948
      StackMap locals: int org.jruby.util.ByteList
      StackMap stack:
            iload 3 /* nonblock */
            ifeq 34
        33: .line 2949
            aload 6 /* fptr */
            aload 5 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.setNonblock:(Lorg/jruby/Ruby;)V
        34: .line 2951
      StackMap locals:
      StackMap stack:
            aload 5 /* runtime */
            aload 8 /* str */
            iload 9 /* len */
            invokestatic org.jruby.util.io.EncodingUtils.setStrBuf:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/RubyString;
            astore 8 /* str */
        35: .line 2952
            aload 8 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 12 /* strByteList */
        36: .line 2958
            aload 1 /* context */
            aload 6 /* fptr */
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            aload 12 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 12 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            iload 9 /* len */
            invokestatic org.jruby.util.io.OpenFile.readInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
            istore 11 /* n */
        37: .line 2959
            iload 11 /* n */
            ifge 52
        38: .line 2960
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            astore 13 /* e */
        start local 13 // jnr.constants.platform.Errno e
        39: .line 2961
            iload 3 /* nonblock */
            ifne 41
            aload 6 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.waitReadable:(Lorg/jruby/runtime/ThreadContext;)Z
            ifeq 41
        40: .line 2962
            goto 32
        41: .line 2963
      StackMap locals: jnr.constants.platform.Errno
      StackMap stack:
            iload 3 /* nonblock */
            ifeq 46
            aload 13 /* e */
            getstatic jnr.constants.platform.Errno.EWOULDBLOCK:Ljnr/constants/platform/Errno;
            if_acmpeq 42
            aload 13 /* e */
            getstatic jnr.constants.platform.Errno.EAGAIN:Ljnr/constants/platform/Errno;
            if_acmpne 46
        42: .line 2964
      StackMap locals:
      StackMap stack:
            iload 4 /* noException */
            ifeq 45
            aload 5 /* runtime */
            ldc "wait_readable"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            astore 15
        43: .line 2974
            iload 10 /* locked */
            ifeq 44
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int int org.jruby.util.ByteList jnr.constants.platform.Errno top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        44: aload 15
            areturn
        45: .line 2965
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int int org.jruby.util.ByteList jnr.constants.platform.Errno
      StackMap stack:
            aload 5 /* runtime */
            ldc "read would block"
            invokevirtual org.jruby.Ruby.newErrnoEAGAINReadableError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        46: .line 2967
      StackMap locals:
      StackMap stack:
            aload 5 /* runtime */
            iload 4 /* noException */
            invokestatic org.jruby.RubyIO.nonblockEOF:(Lorg/jruby/Ruby;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 15
        47: .line 2974
            iload 10 /* locked */
            ifeq 48
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        48: .line 2967
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int int org.jruby.util.ByteList jnr.constants.platform.Errno top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 15
            areturn
        end local 13 // jnr.constants.platform.Errno e
        end local 12 // org.jruby.util.ByteList strByteList
        end local 11 // int n
        49: .line 2973
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int
      StackMap stack: java.lang.Throwable
            astore 14
        50: .line 2974
            iload 10 /* locked */
            ifeq 51
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        51: .line 2975
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int top top top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
        start local 11 // int n
        52: .line 2974
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] int int org.jruby.Ruby org.jruby.util.io.OpenFile org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int int
      StackMap stack:
            iload 10 /* locked */
            ifeq 53
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        53: .line 2977
      StackMap locals:
      StackMap stack:
            aload 8 /* str */
            checkcast org.jruby.RubyString
            iload 11 /* n */
            invokevirtual org.jruby.RubyString.setReadLength:(I)V
        54: .line 2979
            iload 11 /* n */
            ifne 55
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 56
      StackMap locals:
      StackMap stack:
        55: aload 8 /* str */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        56: areturn
        end local 11 // int n
        end local 10 // boolean locked
        end local 9 // int len
        end local 8 // org.jruby.runtime.builtin.IRubyObject str
        end local 7 // org.jruby.runtime.builtin.IRubyObject length
        end local 6 // org.jruby.util.io.OpenFile fptr
        end local 5 // org.jruby.Ruby runtime
        end local 4 // boolean noException
        end local 3 // boolean nonblock
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   57     0         this  Lorg/jruby/RubyIO;
            0   57     1      context  Lorg/jruby/runtime/ThreadContext;
            0   57     2         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   57     3     nonblock  Z
            0   57     4  noException  Z
            1   57     5      runtime  Lorg/jruby/Ruby;
           23   57     6         fptr  Lorg/jruby/util/io/OpenFile;
            3    6     7       length  Lorg/jruby/runtime/builtin/IRubyObject;
            7   12     7       length  Lorg/jruby/runtime/builtin/IRubyObject;
           13   15     7       length  Lorg/jruby/runtime/builtin/IRubyObject;
           16   57     7       length  Lorg/jruby/runtime/builtin/IRubyObject;
            4    6     8          str  Lorg/jruby/runtime/builtin/IRubyObject;
            8   12     8          str  Lorg/jruby/runtime/builtin/IRubyObject;
           14   15     8          str  Lorg/jruby/runtime/builtin/IRubyObject;
           17   57     8          str  Lorg/jruby/runtime/builtin/IRubyObject;
           18   57     9          len  I
           24   57    10       locked  Z
           31   49    11            n  I
           52   57    11            n  I
           30   49    12  strByteList  Lorg/jruby/util/ByteList;
           39   49    13            e  Ljnr/constants/platform/Errno;
      Exception table:
        from    to  target  type
          24    26      49  any
          28    43      49  any
          45    47      49  any
    MethodParameters:
             Name  Flags
      context      
      args         
      nonblock     
      noException  

  public org.jruby.runtime.builtin.IRubyObject sysread(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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2985
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 2987
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmplt 2
            aload 2 /* args */
            iconst_0
            aaload
            goto 3
      StackMap locals: org.jruby.Ruby
      StackMap stack:
         2: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         3: invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 4 /* length */
        start local 4 // int length
         4: .line 2988
            aload 3 /* runtime */
            aload 2 /* args */
            arraylength
            iconst_2
            if_icmplt 5
            aload 2 /* args */
            iconst_1
            aaload
            goto 6
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int
      StackMap stack: org.jruby.Ruby
         5: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int
      StackMap stack: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
         6: iload 4 /* length */
            invokestatic org.jruby.util.io.EncodingUtils.setStrBuf:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/RubyString;
            astore 5 /* str */
        start local 5 // org.jruby.RubyString str
         7: .line 2989
            iload 4 /* length */
            ifne 8
            aload 5 /* str */
            areturn
         8: .line 2991
      StackMap locals: org.jruby.RubyString
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 6 /* fptr */
        start local 6 // org.jruby.util.io.OpenFile fptr
         9: .line 2994
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 8 /* locked */
        start local 8 // boolean locked
        10: .line 2996
            aload 6 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkByteReadable:(Lorg/jruby/runtime/ThreadContext;)V
        11: .line 2998
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.READ_DATA_BUFFERED:()Z
            ifeq 13
        12: .line 2999
            aload 3 /* runtime */
            ldc "sysread for buffered IO"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        13: .line 3010
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.RubyString org.jruby.util.io.OpenFile top int
      StackMap stack:
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.channel:()Ljava/nio/channels/Channel;
            aload 6 /* fptr */
            iconst_1
            invokevirtual org.jruby.RubyThread.select:(Ljava/nio/channels/Channel;Lorg/jruby/util/io/OpenFile;I)Z
            pop
        14: .line 3012
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
        15: .line 3014
            aload 5 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 9 /* strByteList */
        start local 9 // org.jruby.util.ByteList strByteList
        16: .line 3015
            aload 1 /* context */
            aload 6 /* fptr */
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            aload 9 /* strByteList */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 9 /* strByteList */
            invokevirtual org.jruby.util.ByteList.begin:()I
            iload 4 /* length */
            invokestatic org.jruby.util.io.OpenFile.readInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/OpenFile;Lorg/jruby/util/io/ChannelFD;[BII)I
            istore 7 /* n */
        start local 7 // int n
        17: .line 3017
            iload 7 /* n */
            iconst_m1
            if_icmpne 22
        18: .line 3018
            aload 3 /* runtime */
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.errno:()Ljnr/constants/platform/Errno;
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 9 // org.jruby.util.ByteList strByteList
        end local 7 // int n
        19: .line 3021
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        20: .line 3022
            iload 8 /* locked */
            ifeq 21
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        21: .line 3023
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.RubyString org.jruby.util.io.OpenFile top int top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        start local 7 // int n
        22: .line 3022
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby int org.jruby.RubyString org.jruby.util.io.OpenFile int int
      StackMap stack:
            iload 8 /* locked */
            ifeq 23
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        23: .line 3025
      StackMap locals:
      StackMap stack:
            iload 7 /* n */
            ifne 24
            iload 4 /* length */
            ifle 24
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newEOFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        24: .line 3027
      StackMap locals:
      StackMap stack:
            aload 5 /* str */
            iload 7 /* n */
            invokevirtual org.jruby.RubyString.setReadLength:(I)V
        25: .line 3028
            aload 5 /* str */
            iconst_1
            invokevirtual org.jruby.RubyString.setTaint:(Z)V
        26: .line 3029
            aload 5 /* str */
            areturn
        end local 8 // boolean locked
        end local 7 // int n
        end local 6 // org.jruby.util.io.OpenFile fptr
        end local 5 // org.jruby.RubyString str
        end local 4 // int length
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0         this  Lorg/jruby/RubyIO;
            0   27     1      context  Lorg/jruby/runtime/ThreadContext;
            0   27     2         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   27     3      runtime  Lorg/jruby/Ruby;
            4   27     4       length  I
            7   27     5          str  Lorg/jruby/RubyString;
            9   27     6         fptr  Lorg/jruby/util/io/OpenFile;
           17   19     7            n  I
           22   27     7            n  I
           10   27     8       locked  Z
           16   19     9  strByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
          10    19      19  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"sysread"}, required = 1, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject read(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 3034
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 2 /* context */
        start local 2 // org.jruby.runtime.ThreadContext context
         1: .line 3036
            aload 1 /* args */
            arraylength
            tableswitch { // 0 - 2
                    0: 2
                    1: 3
                    2: 4
              default: 5
          }
         2: .line 3037
      StackMap locals: org.jruby.runtime.ThreadContext
      StackMap stack:
            aload 0 /* this */
            aload 2 /* context */
            invokevirtual org.jruby.RubyIO.read:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 3038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* context */
            aload 1 /* args */
            iconst_0
            aaload
            invokevirtual org.jruby.RubyIO.read:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 3039
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* context */
            aload 1 /* args */
            iconst_0
            aaload
            aload 1 /* args */
            iconst_1
            aaload
            invokevirtual org.jruby.RubyIO.read:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 3040
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* args */
            arraylength
            iconst_2
            invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // org.jruby.runtime.ThreadContext context
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/RubyIO;
            0    6     1     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     2  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
      Name  Flags
      args  

  public org.jruby.runtime.builtin.IRubyObject read(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 3047
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.read:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"read"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject read(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 3053
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg0 */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.read:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"read"})
    MethodParameters:
         Name  Flags
      context  
      arg0     

  public org.jruby.runtime.builtin.IRubyObject read(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject length
        start local 3 // org.jruby.runtime.builtin.IRubyObject str
         0: .line 3059
            aload 2 /* length */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 10
         1: .line 3060
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         2: .line 3062
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
         3: .line 3064
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkCharReadable:(Lorg/jruby/runtime/ThreadContext;)V
         4: .line 3065
            aload 4 /* fptr */
            aload 1 /* context */
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.remainSize:()I
            aload 3 /* str */
            invokevirtual org.jruby.util.io.OpenFile.readAll:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7
         5: .line 3067
            iload 5 /* locked */
            ifeq 6
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         6: .line 3065
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile int top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 7
            areturn
         7: .line 3066
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
            astore 6
         8: .line 3067
            iload 5 /* locked */
            ifeq 9
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         9: .line 3068
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 5 // boolean locked
        end local 4 // org.jruby.util.io.OpenFile fptr
        10: .line 3071
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* length */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            aload 3 /* str */
            invokevirtual org.jruby.RubyIO.doRead:(Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            astore 3 /* str */
        11: .line 3072
            aload 3 /* str */
            ifnonnull 12
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 3 /* str */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        13: areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject str
        end local 2 // org.jruby.runtime.builtin.IRubyObject length
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/jruby/RubyIO;
            0   14     1  context  Lorg/jruby/runtime/ThreadContext;
            0   14     2   length  Lorg/jruby/runtime/builtin/IRubyObject;
            0   14     3      str  Lorg/jruby/runtime/builtin/IRubyObject;
            2   10     4     fptr  Lorg/jruby/util/io/OpenFile;
            3   10     5   locked  Z
      Exception table:
        from    to  target  type
           3     5       7  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"read"})
    MethodParameters:
         Name  Flags
      context  
      length   
      str      

  private org.jruby.RubyString doRead(org.jruby.runtime.ThreadContext, int, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;ILorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int len
        start local 3 // org.jruby.runtime.builtin.IRubyObject str
         0: .line 3076
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 3078
            iload 2 /* len */
            ifge 3
         2: .line 3079
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "negative length "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " given"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 3082
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 4 /* runtime */
            aload 3 /* str */
            iload 2 /* len */
            invokestatic org.jruby.util.io.EncodingUtils.setStrBuf:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/RubyString;
            astore 3 /* str */
         4: .line 3084
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        start local 5 // org.jruby.util.io.OpenFile fptr
         5: .line 3086
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 7 /* locked */
        start local 7 // boolean locked
         6: .line 3088
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkByteReadable:(Lorg/jruby/runtime/ThreadContext;)V
         7: .line 3089
            iload 2 /* len */
            ifne 12
         8: .line 3090
            aload 3 /* str */
            checkcast org.jruby.RubyString
            iconst_0
            invokevirtual org.jruby.RubyString.setReadLength:(I)V
         9: .line 3091
            aload 3 /* str */
            checkcast org.jruby.RubyString
            astore 9
        10: .line 3100
            iload 7 /* locked */
            ifeq 11
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 3091
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile top int top org.jruby.RubyString
      StackMap stack:
            aload 9
            areturn
        12: .line 3094
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile top int
      StackMap stack:
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
        13: .line 3098
            aload 5 /* fptr */
            aload 1 /* context */
            aload 3 /* str */
            iconst_0
            iload 2 /* len */
            invokevirtual org.jruby.util.io.OpenFile.fread:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;II)I
            istore 6 /* n */
        start local 6 // int n
        14: .line 3099
            goto 18
        end local 6 // int n
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 8
        16: .line 3100
            iload 7 /* locked */
            ifeq 17
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 3101
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        start local 6 // int n
        18: .line 3100
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext int org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.util.io.OpenFile int int
      StackMap stack:
            iload 7 /* locked */
            ifeq 19
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        19: .line 3103
      StackMap locals:
      StackMap stack:
            aload 3 /* str */
            checkcast org.jruby.RubyString
            iload 6 /* n */
            invokevirtual org.jruby.RubyString.setReadLength:(I)V
        20: .line 3109
            iload 6 /* n */
            ifne 21
            aconst_null
            areturn
        21: .line 3110
      StackMap locals:
      StackMap stack:
            aload 3 /* str */
            iconst_1
            invokeinterface org.jruby.runtime.builtin.IRubyObject.setTaint:(Z)V
        22: .line 3112
            aload 3 /* str */
            checkcast org.jruby.RubyString
            areturn
        end local 7 // boolean locked
        end local 6 // int n
        end local 5 // org.jruby.util.io.OpenFile fptr
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject str
        end local 2 // int len
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lorg/jruby/RubyIO;
            0   23     1  context  Lorg/jruby/runtime/ThreadContext;
            0   23     2      len  I
            0   23     3      str  Lorg/jruby/runtime/builtin/IRubyObject;
            1   23     4  runtime  Lorg/jruby/Ruby;
            5   23     5     fptr  Lorg/jruby/util/io/OpenFile;
           14   15     6        n  I
           18   23     6        n  I
            6   23     7   locked  Z
      Exception table:
        from    to  target  type
           6    10      15  any
          12    15      15  any
    MethodParameters:
         Name  Flags
      context  
      len      
      str      

  public org.jruby.runtime.builtin.IRubyObject readchar();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 3117
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.RubyIO.readchar:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.jruby.runtime.builtin.IRubyObject stat(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 3122
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 3123
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 3 /* fptr */
        start local 3 // org.jruby.util.io.OpenFile fptr
         2: .line 3125
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 4 /* locked */
        start local 4 // boolean locked
         3: .line 3128
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         4: .line 3129
            aload 2 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            invokeinterface jnr.posix.POSIX.isNative:()Z
            ifeq 9
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            getfield org.jruby.util.io.ChannelFD.realFileno:I
            dup
            istore 5 /* realFileno */
        start local 5 // int realFileno
         5: iconst_m1
            if_icmpeq 9
         6: .line 3130
            aload 2 /* runtime */
            iload 5 /* realFileno */
            invokestatic org.jruby.RubyFileStat.newFileStat:(Lorg/jruby/Ruby;I)Lorg/jruby/RubyFileStat;
            astore 7
         7: .line 3136
            iload 4 /* locked */
            ifeq 8
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
         8: .line 3130
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int int top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 7
            areturn
        end local 5 // int realFileno
         9: .line 3133
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getPath:()Ljava/lang/String;
            iconst_0
            invokevirtual org.jruby.Ruby.newFileStat:(Ljava/lang/String;Z)Lorg/jruby/RubyFileStat;
            astore 7
        10: .line 3136
            iload 4 /* locked */
            ifeq 11
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        11: .line 3133
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 7
            areturn
        12: .line 3135
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack: java.lang.Throwable
            astore 6
        13: .line 3136
            iload 4 /* locked */
            ifeq 14
            aload 3 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        14: .line 3137
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.Ruby org.jruby.util.io.OpenFile int top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 4 // boolean locked
        end local 3 // org.jruby.util.io.OpenFile fptr
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/jruby/RubyIO;
            0   15     1     context  Lorg/jruby/runtime/ThreadContext;
            1   15     2     runtime  Lorg/jruby/Ruby;
            2   15     3        fptr  Lorg/jruby/util/io/OpenFile;
            3   15     4      locked  Z
            5    9     5  realFileno  I
      Exception table:
        from    to  target  type
           3     7      12  any
           9    10      12  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject each_byteInternal(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3146
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 3149
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_byte"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 3150
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         3: .line 3152
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 5 /* locked */
        start local 5 // boolean locked
         4: .line 3155
            goto 10
         5: .line 3156
      StackMap locals: org.jruby.util.io.OpenFile int
      StackMap stack:
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            astore 6 /* pBytes */
        start local 6 // byte[] pBytes
         6: .line 3157
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            dup_x1
            iconst_1
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
            istore 7 /* p */
        start local 7 // int p
         7: .line 3158
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iconst_1
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
         8: .line 3159
            aload 2 /* block */
            aload 1 /* context */
            aload 3 /* runtime */
            aload 6 /* pBytes */
            iload 7 /* p */
            baload
            sipush 255
            iand
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         9: .line 3160
            aload 4 /* fptr */
            aconst_null
            invokevirtual org.jruby.util.io.OpenFile.errno:(Ljnr/constants/platform/Errno;)V
        end local 7 // int p
        end local 6 // byte[] pBytes
        10: .line 3155
      StackMap locals:
      StackMap stack:
            aload 4 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifgt 5
        11: .line 3162
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkByteReadable:(Lorg/jruby/runtime/ThreadContext;)V
        12: .line 3163
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
        13: .line 3164
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
        14: .line 3154
            ifge 10
        15: .line 3165
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 8
        17: .line 3166
            iload 5 /* locked */
            ifeq 18
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        18: .line 3167
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.util.io.OpenFile int top top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        19: .line 3166
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.util.io.OpenFile int
      StackMap stack:
            iload 5 /* locked */
            ifeq 20
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        20: .line 3168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 5 // boolean locked
        end local 4 // org.jruby.util.io.OpenFile fptr
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lorg/jruby/RubyIO;
            0   21     1  context  Lorg/jruby/runtime/ThreadContext;
            0   21     2    block  Lorg/jruby/runtime/Block;
            1   21     3  runtime  Lorg/jruby/Ruby;
            3   21     4     fptr  Lorg/jruby/util/io/OpenFile;
            4   21     5   locked  Z
            6   10     6   pBytes  [B
            7   10     7        p  I
      Exception table:
        from    to  target  type
           4    16      16  any
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject each_byte(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3173
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.RubyIO.each_byteInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_byte"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         2: areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/RubyIO;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject bytes(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3179
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "IO#bytes is deprecated; use #each_byte instead"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
         1: .line 3180
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.RubyIO.each_byte:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"bytes"})
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject each_charInternal(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3185
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 3190
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_char"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 3191
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         3: .line 3193
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 7 /* locked */
        start local 7 // boolean locked
         4: .line 3195
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkCharReadable:(Lorg/jruby/runtime/ThreadContext;)V
         5: .line 3197
            aload 4 /* fptr */
            aload 3 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.inputEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            astore 5 /* enc */
        start local 5 // org.jcodings.Encoding enc
         6: .line 3198
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
         7: .line 3199
            goto 9
        start local 6 // org.jruby.runtime.builtin.IRubyObject c
         8: .line 3200
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.util.io.OpenFile org.jcodings.Encoding org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            aload 2 /* block */
            aload 1 /* context */
            aload 6 /* c */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 6 // org.jruby.runtime.builtin.IRubyObject c
         9: .line 3199
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.util.io.OpenFile org.jcodings.Encoding top int
      StackMap stack:
            aload 4 /* fptr */
            aload 1 /* context */
            aload 5 /* enc */
            invokevirtual org.jruby.util.io.OpenFile.getc:(Lorg/jruby/runtime/ThreadContext;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 6 /* c */
        start local 6 // org.jruby.runtime.builtin.IRubyObject c
        10: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 8
        11: .line 3202
            goto 15
        end local 6 // org.jruby.runtime.builtin.IRubyObject c
        end local 5 // org.jcodings.Encoding enc
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.util.io.OpenFile top top int
      StackMap stack: java.lang.Throwable
        12: astore 8
        13: .line 3203
            iload 7 /* locked */
            ifeq 14
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        14: .line 3204
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        start local 5 // org.jcodings.Encoding enc
        start local 6 // org.jruby.runtime.builtin.IRubyObject c
        15: .line 3203
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block org.jruby.Ruby org.jruby.util.io.OpenFile org.jcodings.Encoding org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            iload 7 /* locked */
            ifeq 16
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        16: .line 3206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 7 // boolean locked
        end local 6 // org.jruby.runtime.builtin.IRubyObject c
        end local 5 // org.jcodings.Encoding enc
        end local 4 // org.jruby.util.io.OpenFile fptr
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/jruby/RubyIO;
            0   17     1  context  Lorg/jruby/runtime/ThreadContext;
            0   17     2    block  Lorg/jruby/runtime/Block;
            1   17     3  runtime  Lorg/jruby/Ruby;
            3   17     4     fptr  Lorg/jruby/util/io/OpenFile;
            6   12     5      enc  Lorg/jcodings/Encoding;
           15   17     5      enc  Lorg/jcodings/Encoding;
            8    9     6        c  Lorg/jruby/runtime/builtin/IRubyObject;
           10   12     6        c  Lorg/jruby/runtime/builtin/IRubyObject;
           15   17     6        c  Lorg/jruby/runtime/builtin/IRubyObject;
            4   17     7   locked  Z
      Exception table:
        from    to  target  type
           4    12      12  any
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject each_char(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3211
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.RubyIO.each_charInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"each_char"})
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject chars(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3216
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "IO#chars is deprecated; use #each_char instead"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
         1: .line 3217
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.RubyIO.each_charInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"chars"})
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject codepoints(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3222
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "IO#codepoints is deprecated; use #each_codepoint instead"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
         1: .line 3223
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            ldc "each_codepoint"
            invokevirtual org.jruby.RubyIO.eachCodePointCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      block    

  public org.jruby.runtime.builtin.IRubyObject each_codepoint(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3228
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            ldc "each_codepoint"
            invokevirtual org.jruby.RubyIO.eachCodePointCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      block    

  private org.jruby.runtime.builtin.IRubyObject eachCodePointCommon(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block, java.lang.String);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=16, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
        start local 3 // java.lang.String methodName
         0: .line 3233
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 3239
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            aload 3 /* methodName */
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 3240
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 5 /* fptr */
        start local 5 // org.jruby.util.io.OpenFile fptr
         3: .line 3242
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 10 /* locked */
        start local 10 // boolean locked
         4: .line 3244
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkCharReadable:(Lorg/jruby/runtime/ThreadContext;)V
         5: .line 3246
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.READ_CHECK:(Lorg/jruby/runtime/ThreadContext;)V
         6: .line 3247
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.needsReadConversion:()Z
            ifeq 38
         7: .line 3248
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.SET_BINARY_MODE:()V
         8: .line 3249
            iconst_1
            istore 8 /* r */
        start local 8 // int r
         9: .line 3251
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile top top int top int
      StackMap stack:
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.makeReadConversion:(Lorg/jruby/runtime/ThreadContext;)V
        10: .line 3253
      StackMap locals:
      StackMap stack:
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            ifeq 18
        11: .line 3254
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            ifnull 13
        12: .line 3255
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 8 /* r */
            goto 14
        13: .line 3257
      StackMap locals:
      StackMap stack:
            iconst_1
            invokestatic org.jruby.util.StringSupport.CONSTRUCT_MBCLEN_CHARFOUND:(I)I
            istore 8 /* r */
        14: .line 3258
      StackMap locals:
      StackMap stack:
            iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE_P:(I)Z
            ifne 16
        15: .line 3259
            goto 26
        16: .line 3260
      StackMap locals:
      StackMap stack:
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.capa:I
            if_icmpne 18
        17: .line 3261
            aload 4 /* runtime */
            ldc "too long character"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 3264
      StackMap locals:
      StackMap stack:
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.moreChar:(Lorg/jruby/runtime/ThreadContext;)I
            iconst_1
            if_icmpne 10
        19: .line 3265
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.clearReadConversion:()V
        20: .line 3266
            iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 23
        21: .line 3267
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            astore 6 /* enc */
        start local 6 // org.jcodings.Encoding enc
        22: .line 3268
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid byte sequence in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // org.jcodings.Encoding enc
        23: .line 3270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 15
        24: .line 3324
            iload 10 /* locked */
            ifeq 25
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        25: .line 3270
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile top top int top int top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 15
            areturn
        26: .line 3273
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile top top int top int
      StackMap stack:
            iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_INVALID_P:(I)Z
            ifeq 29
        27: .line 3274
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            astore 6 /* enc */
        start local 6 // org.jcodings.Encoding enc
        28: .line 3275
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid byte sequence in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 6 // org.jcodings.Encoding enc
        29: .line 3277
      StackMap locals:
      StackMap stack:
            iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            istore 9 /* n */
        start local 9 // int n
        30: .line 3278
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            ifnull 33
        31: .line 3279
            aload 4 /* runtime */
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jruby/Ruby;Lorg/jcodings/Encoding;[BII)I
            istore 7 /* c */
        start local 7 // int c
        32: .line 3280
            goto 34
        end local 7 // int c
        33: .line 3282
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile top top int int int
      StackMap stack:
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            baload
            sipush 255
            iand
            istore 7 /* c */
        start local 7 // int c
        34: .line 3284
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile top int int int int
      StackMap stack:
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 9 /* n */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        35: .line 3285
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.cbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 9 /* n */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        36: .line 3286
            aload 2 /* block */
            aload 1 /* context */
            aload 4 /* runtime */
            iload 7 /* c */
            iconst_m1
            iand
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 9 // int n
        end local 7 // int c
        37: .line 3250
            goto 9
        end local 8 // int r
        38: .line 3289
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile top top top top int
      StackMap stack:
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.NEED_NEWLINE_DECORATOR_ON_READ_CHECK:()V
        39: .line 3290
            aload 5 /* fptr */
            aload 4 /* runtime */
            invokevirtual org.jruby.util.io.OpenFile.inputEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            astore 6 /* enc */
        start local 6 // org.jcodings.Encoding enc
        40: .line 3291
            goto 69
        41: .line 3292
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile org.jcodings.Encoding top top top int
      StackMap stack:
            aload 6 /* enc */
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            invokestatic org.jruby.util.StringSupport.preciseLength:(Lorg/jcodings/Encoding;[BII)I
            istore 8 /* r */
        start local 8 // int r
        42: .line 3293
            iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifeq 50
        43: .line 3294
            iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_LEN:(I)I
            dup
            istore 9 /* n */
        start local 9 // int n
        44: aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            if_icmpgt 50
        45: .line 3295
            aload 4 /* runtime */
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iadd
            invokestatic org.jruby.util.StringSupport.codePoint:(Lorg/jruby/Ruby;Lorg/jcodings/Encoding;[BII)I
            istore 7 /* c */
        start local 7 // int c
        46: .line 3296
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.off:I
            iload 9 /* n */
            iadd
            putfield org.jruby.util.io.OpenFile$Buffer.off:I
        47: .line 3297
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            dup
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            iload 9 /* n */
            isub
            putfield org.jruby.util.io.OpenFile$Buffer.len:I
        48: .line 3298
            aload 2 /* block */
            aload 1 /* context */
            aload 4 /* runtime */
            iload 7 /* c */
            iconst_m1
            iand
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        49: .line 3299
            goto 69
        end local 9 // int n
        end local 7 // int c
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile org.jcodings.Encoding top int top int
      StackMap stack:
        50: iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_INVALID_P:(I)Z
            ifeq 52
        51: .line 3300
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid byte sequence in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        52: .line 3301
      StackMap locals:
      StackMap stack:
            iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE_P:(I)Z
            ifeq 69
        53: .line 3302
            bipush 8
            newarray 8
            astore 11 /* cbuf */
        start local 11 // byte[] cbuf
        54: .line 3303
            iconst_0
            istore 12 /* p */
        start local 12 // int p
        55: .line 3304
            iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_NEEDMORE_LEN:(I)I
            istore 13 /* more */
        start local 13 // int more
        56: .line 3305
            iload 13 /* more */
            aload 11 /* cbuf */
            arraylength
            if_icmple 57
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid byte sequence in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        57: .line 3306
      StackMap locals: byte[] int int
      StackMap stack:
            iload 13 /* more */
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            dup
            istore 9 /* n */
        start local 9 // int n
        58: iadd
            istore 13 /* more */
        59: .line 3307
            iload 13 /* more */
            aload 11 /* cbuf */
            arraylength
            if_icmple 64
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid byte sequence in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        60: .line 3309
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile org.jcodings.Encoding top int int int byte[] int int
      StackMap stack:
            iload 12 /* p */
            iload 9 /* n */
            iadd
            istore 12 /* p */
        61: .line 3310
            iload 13 /* more */
            iload 9 /* n */
            isub
            dup
            istore 13 /* more */
            ifgt 62
            goto 65
        62: .line 3312
      StackMap locals:
      StackMap stack:
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 63
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid byte sequence in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        63: .line 3313
      StackMap locals:
      StackMap stack:
            aload 5 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.len:I
            dup
            istore 9 /* n */
            iload 13 /* more */
            if_icmple 64
            iload 13 /* more */
            istore 9 /* n */
        64: .line 3308
      StackMap locals:
      StackMap stack:
            aload 5 /* fptr */
            aload 11 /* cbuf */
            iload 12 /* p */
            iload 13 /* more */
            invokevirtual org.jruby.util.io.OpenFile.readBufferedData:([BII)I
            dup
            istore 9 /* n */
            ifgt 60
        65: .line 3315
      StackMap locals:
      StackMap stack:
            aload 6 /* enc */
            aload 11 /* cbuf */
            iconst_0
            iload 12 /* p */
            invokevirtual org.jcodings.Encoding.length:([BII)I
            istore 8 /* r */
        66: .line 3316
            iload 8 /* r */
            invokestatic org.jruby.util.StringSupport.MBCLEN_CHARFOUND_P:(I)Z
            ifne 67
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "invalid byte sequence in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* enc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        67: .line 3317
      StackMap locals:
      StackMap stack:
            aload 6 /* enc */
            aload 11 /* cbuf */
            iconst_0
            iload 12 /* p */
            invokevirtual org.jcodings.Encoding.mbcToCode:([BII)I
            istore 7 /* c */
        start local 7 // int c
        68: .line 3318
            aload 2 /* block */
            aload 1 /* context */
            aload 4 /* runtime */
            iload 7 /* c */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 13 // int more
        end local 12 // int p
        end local 11 // byte[] cbuf
        end local 9 // int n
        end local 8 // int r
        end local 7 // int c
        69: .line 3291
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile org.jcodings.Encoding top top top int
      StackMap stack:
            aload 5 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.fillbuf:(Lorg/jruby/runtime/ThreadContext;)I
            ifge 41
        70: .line 3323
            goto 74
        end local 6 // org.jcodings.Encoding enc
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile top top top top int
      StackMap stack: java.lang.Throwable
        71: astore 14
        72: .line 3324
            iload 10 /* locked */
            ifeq 73
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        73: .line 3325
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile top top top top int top top top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
        start local 6 // org.jcodings.Encoding enc
        74: .line 3324
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.String org.jruby.Ruby org.jruby.util.io.OpenFile org.jcodings.Encoding top top top int
      StackMap stack:
            iload 10 /* locked */
            ifeq 75
            aload 5 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        75: .line 3326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 10 // boolean locked
        end local 6 // org.jcodings.Encoding enc
        end local 5 // org.jruby.util.io.OpenFile fptr
        end local 4 // org.jruby.Ruby runtime
        end local 3 // java.lang.String methodName
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   76     0        this  Lorg/jruby/RubyIO;
            0   76     1     context  Lorg/jruby/runtime/ThreadContext;
            0   76     2       block  Lorg/jruby/runtime/Block;
            0   76     3  methodName  Ljava/lang/String;
            1   76     4     runtime  Lorg/jruby/Ruby;
            3   76     5        fptr  Lorg/jruby/util/io/OpenFile;
           22   23     6         enc  Lorg/jcodings/Encoding;
           28   29     6         enc  Lorg/jcodings/Encoding;
           40   71     6         enc  Lorg/jcodings/Encoding;
           74   76     6         enc  Lorg/jcodings/Encoding;
           32   33     7           c  I
           34   37     7           c  I
           46   50     7           c  I
           68   69     7           c  I
            9   38     8           r  I
           42   69     8           r  I
           30   37     9           n  I
           44   50     9           n  I
           58   69     9           n  I
            4   76    10      locked  Z
           54   69    11        cbuf  [B
           55   69    12           p  I
           56   69    13        more  I
      Exception table:
        from    to  target  type
           4    24      71  any
          26    71      71  any
    MethodParameters:
            Name  Flags
      context     
      block       
      methodName  

  public org.jruby.runtime.builtin.IRubyObject each(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3331
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 3333
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      block    final

  public org.jruby.runtime.builtin.IRubyObject each(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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.Block block
         0: .line 3338
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 3340
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      arg0     
      block    final

  public org.jruby.runtime.builtin.IRubyObject each(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: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.Block block
         0: .line 3345
            aload 4 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 3347
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.Block block
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      arg0     
      arg1     
      block    final

  public org.jruby.runtime.builtin.IRubyObject each(org.jruby.runtime.ThreadContext, 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/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=6, args_size=6
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        start local 5 // org.jruby.runtime.Block block
         0: .line 3352
            aload 5 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 3354
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* arg2 */
            aload 5 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.Block block
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     5    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      arg0     
      arg1     
      arg2     
      block    final

  public org.jruby.runtime.builtin.IRubyObject each(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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 3358
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 3
                    3: 4
              default: 5
          }
         1: .line 3360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* block */
            invokevirtual org.jruby.RubyIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 3362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.RubyIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 3364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.RubyIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 3366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.RubyIO.each:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 3368
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* args */
            arraylength
            iconst_0
            iconst_3
            invokestatic org.jruby.runtime.Arity.raiseArgumentError:(Lorg/jruby/runtime/ThreadContext;III)V
         6: .line 3369
            new java.lang.AssertionError
            dup
            ldc "BUG"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/RubyIO;
            0    7     1  context  Lorg/jruby/runtime/ThreadContext;
            0    7     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3    block  Lorg/jruby/runtime/Block;
    MethodParameters:
         Name  Flags
      context  final
      args     
      block    final

  public org.jruby.runtime.builtin.IRubyObject each_line(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3375
            aload 2 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 3377
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      block    final

  public org.jruby.runtime.builtin.IRubyObject each_line(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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.Block block
         0: .line 3382
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 3384
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      arg0     
      block    final

  public org.jruby.runtime.builtin.IRubyObject each_line(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: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.Block block
         0: .line 3389
            aload 4 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 3391
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.Block block
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      arg0     
      arg1     
      block    final

  public org.jruby.runtime.builtin.IRubyObject each_line(org.jruby.runtime.ThreadContext, 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/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=6, args_size=6
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        start local 5 // org.jruby.runtime.Block block
         0: .line 3396
            aload 5 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            ldc "each_line"
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 3398
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* arg2 */
            aload 5 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.Block block
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     4     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     5    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  final
      arg0     
      arg1     
      arg2     
      block    final

  public org.jruby.runtime.builtin.IRubyObject each_line(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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 3402
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 3
                    3: 4
              default: 5
          }
         1: .line 3404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* block */
            invokevirtual org.jruby.RubyIO.each_line:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 3406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.RubyIO.each_line:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 3408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.RubyIO.each_line:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 3410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            aload 3 /* block */
            invokevirtual org.jruby.RubyIO.each_line:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 3412
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* args */
            arraylength
            iconst_0
            iconst_3
            invokestatic org.jruby.runtime.Arity.raiseArgumentError:(Lorg/jruby/runtime/ThreadContext;III)V
         6: .line 3413
            new java.lang.AssertionError
            dup
            ldc "BUG"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/RubyIO;
            0    7     1  context  Lorg/jruby/runtime/ThreadContext;
            0    7     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3    block  Lorg/jruby/runtime/Block;
    MethodParameters:
         Name  Flags
      context  final
      args     
      block    final

  public org.jruby.runtime.builtin.IRubyObject lines(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 3419
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            ldc "IO#lines is deprecated; use #each_line instead"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
         1: .line 3420
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.RubyIO.each_line:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"lines"})
    MethodParameters:
         Name  Flags
      context  final
      block    

  public org.jruby.RubyArray readlines(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 3425
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyArray
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readlines"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyArray readlines(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
         0: .line 3430
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyArray
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readlines"})
    MethodParameters:
         Name  Flags
      context  
      arg0     

  public org.jruby.RubyArray readlines(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/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
         0: .line 3435
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyArray
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readlines"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     

  public org.jruby.RubyArray readlines(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/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 3440
            aload 1 /* context */
            getstatic org.jruby.RubyIO.GETLINE_ARY:Lorg/jruby/util/io/Getline$Callback;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* arg0 */
            aload 3 /* arg1 */
            aload 4 /* arg2 */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyArray
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg0
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     arg0  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readlines"})
    MethodParameters:
         Name  Flags
      context  
      arg0     
      arg1     
      arg2     

  private org.jcodings.Encoding getReadEncoding(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 3444
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.util.io.OpenFile.readEncoding:(Lorg/jruby/Ruby;)Lorg/jcodings/Encoding;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyArray readlines(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 3448
            aload 2 /* args */
            arraylength
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 3
                    3: 4
              default: 5
          }
         1: .line 3450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyArray;
            areturn
         2: .line 3452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
         3: .line 3454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
         4: .line 3456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
         5: .line 3458
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* args */
            arraylength
            iconst_0
            iconst_3
            invokestatic org.jruby.runtime.Arity.raiseArgumentError:(Lorg/jruby/runtime/ThreadContext;III)V
         6: .line 3459
            new java.lang.AssertionError
            dup
            ldc "BUG"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/RubyIO;
            0    7     1  context  Lorg/jruby/runtime/ThreadContext;
            0    7     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.RubyIO to_io();
    descriptor: ()Lorg/jruby/RubyIO;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 3465
            aload 0 /* this */
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"to_io"})

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 3470
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.inspect:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  private static org.jruby.runtime.builtin.IRubyObject foreachInternal(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: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 3477
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 3479
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* args */
            invokestatic org.jruby.ast.util.ArgsUtil.getOptionsArg:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* opt */
        start local 5 // org.jruby.runtime.builtin.IRubyObject opt
         2: .line 3480
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            aload 5 /* opt */
            invokestatic org.jruby.RubyIO.openKeyArgs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            astore 6 /* io */
        start local 6 // org.jruby.RubyIO io
         3: .line 3481
            aload 6 /* io */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 4
            aload 6 /* io */
            areturn
         4: .line 3484
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO
      StackMap stack:
            aload 5 /* opt */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 5
            aload 2 /* args */
            aload 2 /* args */
            arraylength
            iconst_1
            isub
            aload 5 /* opt */
            aastore
         5: .line 3488
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            arraylength
            tableswitch { // 1 - 4
                    1: 6
                    2: 8
                    3: 10
                    4: 12
              default: 13
          }
         6: .line 3490
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 6 /* io */
            aload 6 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 3 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         7: .line 3491
            goto 19
         8: .line 3493
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 6 /* io */
            aload 6 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* args */
            iconst_1
            aaload
            aload 3 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         9: .line 3494
            goto 19
        10: .line 3496
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 6 /* io */
            aload 6 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            aload 3 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        11: .line 3497
            goto 19
        12: .line 3499
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getstatic org.jruby.RubyIO.GETLINE_YIELD:Lorg/jruby/util/io/Getline$Callback;
            aload 6 /* io */
            aload 6 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.getReadEncoding:(Lorg/jruby/runtime/ThreadContext;)Lorg/jcodings/Encoding;
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            aload 2 /* args */
            iconst_3
            aaload
            aload 3 /* block */
            invokestatic org.jruby.util.io.Getline.getlineCall:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/Getline$Callback;Ljava/lang/Object;Lorg/jcodings/Encoding;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        13: .line 3502
      StackMap locals:
      StackMap stack:
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 7
        15: .line 3503
            aload 6 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
        16: .line 3504
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.runtime.ThreadContext.setLastLine:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        17: .line 3505
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$_"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.clear:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        18: .line 3506
            aload 7
            athrow
        19: .line 3503
      StackMap locals:
      StackMap stack:
            aload 6 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
        20: .line 3504
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.runtime.ThreadContext.setLastLine:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        21: .line 3505
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getGlobalVariables:()Lorg/jruby/internal/runtime/GlobalVariables;
            ldc "$_"
            invokevirtual org.jruby.internal.runtime.GlobalVariables.clear:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        22: .line 3508
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.RubyIO io
        end local 5 // org.jruby.runtime.builtin.IRubyObject opt
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0  context  Lorg/jruby/runtime/ThreadContext;
            0   23     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   23     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   23     3    block  Lorg/jruby/runtime/Block;
            1   23     4  runtime  Lorg/jruby/Ruby;
            2   23     5      opt  Lorg/jruby/runtime/builtin/IRubyObject;
            3   23     6       io  Lorg/jruby/RubyIO;
      Exception table:
        from    to  target  type
           5    14      14  any
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  public static org.jruby.runtime.builtin.IRubyObject foreach(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=4, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 3513
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 1
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            ldc "foreach"
            aload 2 /* args */
            invokestatic org.jruby.RubyEnumerator.enumeratorize:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 3515
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            aload 3 /* block */
            invokestatic org.jruby.RubyIO.foreachInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"foreach"}, required = 1, optional = 3, meta = true)
    MethodParameters:
         Name  Flags
      context  final
      recv     
      args     
      block    final

  public static org.jruby.RubyIO convertToIO(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 3519
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* obj */
            invokestatic org.jruby.util.TypeConverter.ioGetIO:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1      obj  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      obj      

  public static org.jruby.runtime.builtin.IRubyObject select(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=6, locals=10, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
         0: .line 3525
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 6 /* _timeout */
        start local 6 // org.jruby.runtime.builtin.IRubyObject _timeout
         1: dup
            astore 5 /* except */
        start local 5 // org.jruby.runtime.builtin.IRubyObject except
         2: dup
            astore 4 /* write */
        start local 4 // org.jruby.runtime.builtin.IRubyObject write
         3: astore 3 /* read */
        start local 3 // org.jruby.runtime.builtin.IRubyObject read
         4: .line 3527
            aload 2 /* argv */
            arraylength
            tableswitch { // 1 - 4
                    1: 8
                    2: 7
                    3: 6
                    4: 5
              default: 9
          }
         5: .line 3529
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* argv */
            iconst_3
            aaload
            astore 6 /* _timeout */
         6: .line 3531
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_2
            aaload
            astore 5 /* except */
         7: .line 3533
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_1
            aaload
            astore 4 /* write */
         8: .line 3535
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_0
            aaload
            astore 3 /* read */
         9: .line 3538
      StackMap locals:
      StackMap stack:
            aload 6 /* _timeout */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 12
        10: .line 3539
            aconst_null
            astore 7 /* timeout */
        start local 7 // java.lang.Long timeout
        11: .line 3540
            goto 20
        end local 7 // java.lang.Long timeout
        12: .line 3543
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            getfield org.jruby.runtime.JavaSites$IOSites.to_f:Lorg/jruby/runtime/CallSite;
            aload 0 /* context */
            aload 6 /* _timeout */
            aload 6 /* _timeout */
            invokevirtual org.jruby.runtime.CallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* _timeout */
        13: .line 3544
            goto 17
        14: .line 3545
      StackMap locals:
      StackMap stack: org.jruby.exceptions.RaiseException
            astore 8 /* e */
        start local 8 // org.jruby.exceptions.RaiseException e
        15: .line 3546
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 6 /* _timeout */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getFloat:()Lorg/jruby/RubyClass;
            iconst_1
            invokestatic org.jruby.util.TypeConverter.handleUncoercibleObject:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        16: .line 3547
            aload 8 /* e */
            athrow
        end local 8 // org.jruby.exceptions.RaiseException e
        17: .line 3549
      StackMap locals:
      StackMap stack:
            aload 6 /* _timeout */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToFloat:()Lorg/jruby/RubyFloat;
            invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
            dstore 8 /* t */
        start local 8 // double t
        18: .line 3550
            dload 8 /* t */
            dconst_0
            dcmpg
            ifge 19
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "negative timeout"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        19: .line 3551
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top double
      StackMap stack:
            dload 8 /* t */
            ldc 1000.0
            dmul
            d2l
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 7 /* timeout */
        end local 8 // double t
        start local 7 // java.lang.Long timeout
        20: .line 3554
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject java.lang.Long
      StackMap stack:
            new org.jruby.util.io.SelectExecutor
            dup
            aload 3 /* read */
            aload 4 /* write */
            aload 5 /* except */
            aload 7 /* timeout */
            invokespecial org.jruby.util.io.SelectExecutor.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/Long;)V
            astore 8 /* args */
        start local 8 // org.jruby.util.io.SelectExecutor args
        21: .line 3556
            aload 8 /* args */
            aload 0 /* context */
            invokevirtual org.jruby.util.io.SelectExecutor.go:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 8 // org.jruby.util.io.SelectExecutor args
        end local 7 // java.lang.Long timeout
        end local 6 // org.jruby.runtime.builtin.IRubyObject _timeout
        end local 5 // org.jruby.runtime.builtin.IRubyObject except
        end local 4 // org.jruby.runtime.builtin.IRubyObject write
        end local 3 // org.jruby.runtime.builtin.IRubyObject read
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   22     2      argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            4   22     3      read  Lorg/jruby/runtime/builtin/IRubyObject;
            3   22     4     write  Lorg/jruby/runtime/builtin/IRubyObject;
            2   22     5    except  Lorg/jruby/runtime/builtin/IRubyObject;
            1   22     6  _timeout  Lorg/jruby/runtime/builtin/IRubyObject;
           11   12     7   timeout  Ljava/lang/Long;
           20   22     7   timeout  Ljava/lang/Long;
           15   17     8         e  Lorg/jruby/exceptions/RaiseException;
           18   20     8         t  D
           21   22     8      args  Lorg/jruby/util/io/SelectExecutor;
      Exception table:
        from    to  target  type
          12    13      14  Class org.jruby.exceptions.RaiseException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"select"}, required = 1, optional = 3, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      argv     

  public org.jruby.runtime.builtin.IRubyObject advise(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: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=11, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
         0: .line 3563
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 5 /* len */
        start local 5 // org.jruby.runtime.builtin.IRubyObject len
         1: dup
            astore 4 /* offset */
        start local 4 // org.jruby.runtime.builtin.IRubyObject offset
         2: astore 3 /* advice */
        start local 3 // org.jruby.runtime.builtin.IRubyObject advice
         3: .line 3566
            aload 2 /* argv */
            arraylength
            tableswitch { // 1 - 3
                    1: 6
                    2: 5
                    3: 4
              default: 7
          }
         4: .line 3568
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* argv */
            iconst_2
            aaload
            astore 5 /* len */
         5: .line 3570
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_1
            aaload
            astore 4 /* offset */
         6: .line 3572
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_0
            aaload
            astore 3 /* advice */
         7: .line 3574
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 3 /* advice */
            invokestatic org.jruby.RubyIO.adviceArgCheck:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
         8: .line 3576
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 7 /* io */
        start local 7 // org.jruby.RubyIO io
         9: .line 3577
            aload 7 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 6 /* fptr */
        start local 6 // org.jruby.util.io.OpenFile fptr
        10: .line 3579
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 8 /* locked */
        start local 8 // boolean locked
        11: .line 3581
            aload 4 /* offset */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 12
            goto 13
      StackMap locals: org.jruby.util.io.OpenFile org.jruby.RubyIO int
      StackMap stack:
        12: aload 4 /* offset */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            pop
        13: .line 3582
      StackMap locals:
      StackMap stack:
            aload 5 /* len */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 14
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 5 /* len */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            pop
        15: .line 3589
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 10
        16: .line 3592
            iload 8 /* locked */
            ifeq 17
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        17: .line 3589
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile org.jruby.RubyIO int top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 10
            areturn
        18: .line 3591
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile org.jruby.RubyIO int
      StackMap stack: java.lang.Throwable
            astore 9
        19: .line 3592
            iload 8 /* locked */
            ifeq 20
            aload 6 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
        20: .line 3593
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        end local 8 // boolean locked
        end local 7 // org.jruby.RubyIO io
        end local 6 // org.jruby.util.io.OpenFile fptr
        end local 5 // org.jruby.runtime.builtin.IRubyObject len
        end local 4 // org.jruby.runtime.builtin.IRubyObject offset
        end local 3 // org.jruby.runtime.builtin.IRubyObject advice
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lorg/jruby/RubyIO;
            0   21     1  context  Lorg/jruby/runtime/ThreadContext;
            0   21     2     argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            3   21     3   advice  Lorg/jruby/runtime/builtin/IRubyObject;
            2   21     4   offset  Lorg/jruby/runtime/builtin/IRubyObject;
            1   21     5      len  Lorg/jruby/runtime/builtin/IRubyObject;
           10   21     6     fptr  Lorg/jruby/util/io/OpenFile;
            9   21     7       io  Lorg/jruby/RubyIO;
           11   21     8   locked  Z
      Exception table:
        from    to  target  type
          11    16      18  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      argv     

  static void adviceArgCheck(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject advice
         0: .line 3598
            aload 1 /* advice */
            instanceof org.jruby.RubySymbol
            ifne 2
         1: .line 3599
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "advise must be a symbol"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 3601
      StackMap locals:
      StackMap stack:
            aload 1 /* advice */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 2 /* adviceStr */
        start local 2 // java.lang.String adviceStr
         3: .line 3602
            aload 2 /* adviceStr */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 6
          -1165295768: 4
          -1039745817: 5
           -938285885: 6
           -164011777: 7
           1175747495: 8
           2127399251: 9
              default: 10
          }
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         4: aload 3
            ldc "willneed"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 10
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "normal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 10
      StackMap locals:
      StackMap stack:
         6: aload 3
            ldc "random"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 10
      StackMap locals:
      StackMap stack:
         7: aload 3
            ldc "sequential"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 10
      StackMap locals:
      StackMap stack:
         8: aload 3
            ldc "dontneed"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 3
            ldc "noreuse"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 3604
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* context */
            aload 1 /* advice */
            invokestatic org.jruby.RubyIO.rbInspect:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        11: .line 3614
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String adviceStr
        end local 1 // org.jruby.runtime.builtin.IRubyObject advice
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0    context  Lorg/jruby/runtime/ThreadContext;
            0   12     1     advice  Lorg/jruby/runtime/builtin/IRubyObject;
            3   12     2  adviceStr  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      context  
      advice   

  public static void failIfDirectory(org.jruby.Ruby, org.jruby.RubyString);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyString;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyString pathStr
         0: .line 3617
            aload 0 /* runtime */
            aload 1 /* pathStr */
            invokestatic org.jruby.RubyFileTest.directory_p:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 4
         1: .line 3618
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 3
         2: .line 3619
            aload 0 /* runtime */
            aload 1 /* pathStr */
            invokevirtual org.jruby.RubyString.asJavaString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoEACCESError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 3621
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* pathStr */
            invokevirtual org.jruby.RubyString.asJavaString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoEISDirError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 3624
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jruby.RubyString pathStr
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  runtime  Lorg/jruby/Ruby;
            0    5     1  pathStr  Lorg/jruby/RubyString;
    MethodParameters:
         Name  Flags
      runtime  
      pathStr  

  private static org.jruby.RubyIO openKeyArgs(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/RubyIO;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        start local 3 // org.jruby.runtime.builtin.IRubyObject opt
         0: .line 3628
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 3629
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* vmode */
        start local 5 // org.jruby.runtime.builtin.IRubyObject vmode
         2: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* vperm */
        start local 6 // org.jruby.runtime.builtin.IRubyObject vperm
         3: .line 3631
            aload 4 /* runtime */
            aload 0 /* context */
            aload 2 /* argv */
            iconst_0
            aaload
            invokestatic org.jruby.RubyFile.get_path:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            invokestatic org.jruby.util.StringSupport.checkEmbeddedNulls:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            astore 8 /* path */
        start local 8 // org.jruby.RubyString path
         4: .line 3632
            aload 4 /* runtime */
            aload 8 /* path */
            invokestatic org.jruby.RubyIO.failIfDirectory:(Lorg/jruby/Ruby;Lorg/jruby/RubyString;)V
         5: .line 3635
            aload 3 /* opt */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 9
         6: .line 3636
            aload 4 /* runtime */
            getstatic org.jruby.util.io.ModeFlags.RDONLY:I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            astore 5 /* vmode */
         7: .line 3637
            aload 4 /* runtime */
            sipush 438
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            astore 6 /* vperm */
         8: .line 3638
            goto 19
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top org.jruby.RubyString
      StackMap stack:
         9: aload 3 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            aload 4 /* runtime */
            ldc "open_args"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 7 /* v */
        start local 7 // org.jruby.runtime.builtin.IRubyObject v
        10: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 19
        11: .line 3639
            aload 7 /* v */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            astore 9 /* vAry */
        start local 9 // org.jruby.RubyArray vAry
        12: .line 3640
            aload 9 /* vAry */
            invokevirtual org.jruby.RubyArray.size:()I
            istore 10 /* n */
        start local 10 // int n
        13: .line 3642
            aload 4 /* runtime */
            iload 10 /* n */
            iconst_0
            iconst_3
            invokestatic org.jruby.runtime.Arity.checkArgumentCount:(Lorg/jruby/Ruby;III)I
            pop
        14: .line 3644
            aload 4 /* runtime */
            aload 9 /* vAry */
            invokevirtual org.jruby.RubyArray.toJavaArrayMaybeUnsafe:()[Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.ast.util.ArgsUtil.getOptionsArg:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* opt */
        15: .line 3646
            aload 3 /* opt */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 16
            iinc 10 /* n */ -1
        16: .line 3647
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString org.jruby.RubyArray int
      StackMap stack:
            iload 10 /* n */
            tableswitch { // 1 - 2
                    1: 18
                    2: 17
              default: 19
          }
        17: .line 3649
      StackMap locals:
      StackMap stack:
            aload 9 /* vAry */
            lconst_1
            invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* vperm */
        18: .line 3651
      StackMap locals:
      StackMap stack:
            aload 9 /* vAry */
            lconst_0
            invokevirtual org.jruby.RubyArray.eltOk:(J)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* vmode */
        end local 10 // int n
        end local 9 // org.jruby.RubyArray vAry
        end local 7 // org.jruby.runtime.builtin.IRubyObject v
        19: .line 3655
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top org.jruby.RubyString
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            aload 8 /* path */
            aload 5 /* vmode */
            aload 6 /* vperm */
            aload 3 /* opt */
            invokestatic org.jruby.RubyIO.ioOpen:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            areturn
        end local 8 // org.jruby.RubyString path
        end local 6 // org.jruby.runtime.builtin.IRubyObject vperm
        end local 5 // org.jruby.runtime.builtin.IRubyObject vmode
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject opt
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   20     2     argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   20     3      opt  Lorg/jruby/runtime/builtin/IRubyObject;
            1   20     4  runtime  Lorg/jruby/Ruby;
            2   20     5    vmode  Lorg/jruby/runtime/builtin/IRubyObject;
            3   20     6    vperm  Lorg/jruby/runtime/builtin/IRubyObject;
           10   19     7        v  Lorg/jruby/runtime/builtin/IRubyObject;
            4   20     8     path  Lorg/jruby/RubyString;
           12   19     9     vAry  Lorg/jruby/RubyArray;
           13   19    10        n  I
    MethodParameters:
         Name  Flags
      context  
      recv     
      argv     
      opt      

  public static org.jruby.runtime.builtin.IRubyObject ioOpen(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, 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;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject filename
        start local 3 // org.jruby.runtime.builtin.IRubyObject vmode
        start local 4 // org.jruby.runtime.builtin.IRubyObject vperm
        start local 5 // org.jruby.runtime.builtin.IRubyObject opt
         0: .line 3660
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* filename */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asString:()Lorg/jruby/RubyString;
            aload 3 /* vmode */
            aload 4 /* vperm */
            aload 5 /* opt */
            invokestatic org.jruby.RubyIO.ioOpen:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyString;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject opt
        end local 4 // org.jruby.runtime.builtin.IRubyObject vperm
        end local 3 // org.jruby.runtime.builtin.IRubyObject vmode
        end local 2 // org.jruby.runtime.builtin.IRubyObject filename
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lorg/jruby/runtime/ThreadContext;
            0    1     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  filename  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     vmode  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4     vperm  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     5       opt  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
          Name  Flags
      context   
      recv      
      filename  
      vmode     
      vperm     
      opt       

  static org.jruby.RubyIO ioOpen(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyString, 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/RubyString;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=11, args_size=6
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.RubyString filename
        start local 3 // org.jruby.runtime.builtin.IRubyObject vmode
        start local 4 // org.jruby.runtime.builtin.IRubyObject vperm
        start local 5 // org.jruby.runtime.builtin.IRubyObject opt
         0: .line 3664
            iconst_1
            newarray 10
            astore 6 /* oflags_p */
        start local 6 // int[] oflags_p
         1: iconst_1
            newarray 10
            astore 7 /* fmode_p */
        start local 7 // int[] fmode_p
         2: .line 3665
            new org.jruby.util.io.IOEncodable$ConvConfig
            dup
            invokespecial org.jruby.util.io.IOEncodable$ConvConfig.<init>:()V
            astore 8 /* convConfig */
        start local 8 // org.jruby.util.io.IOEncodable$ConvConfig convConfig
         3: .line 3667
            aload 3 /* vmode */
            aload 4 /* vperm */
            invokestatic org.jruby.util.io.EncodingUtils.vmodeVperm:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            astore 9 /* pm */
        start local 9 // java.lang.Object pm
         4: .line 3668
            aload 0 /* context */
            aload 8 /* convConfig */
            aload 9 /* pm */
            aload 5 /* opt */
            aload 6 /* oflags_p */
            aload 7 /* fmode_p */
            invokestatic org.jruby.util.io.EncodingUtils.extractModeEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;[I[I)V
         5: .line 3669
            aload 9 /* pm */
            invokestatic org.jruby.util.io.EncodingUtils.vperm:(Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* vperm */
         6: .line 3670
            aload 4 /* vperm */
            ifnull 7
            aload 4 /* vperm */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 8
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int[] int[] org.jruby.util.io.IOEncodable$ConvConfig java.lang.Object
      StackMap stack:
         7: sipush 438
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 4 /* vperm */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
      StackMap locals:
      StackMap stack: int
         9: istore 10 /* perm */
        start local 10 // int perm
        10: .line 3672
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* filename */
            aload 6 /* oflags_p */
            iconst_0
            iaload
            aload 7 /* fmode_p */
            iconst_0
            iaload
            aload 8 /* convConfig */
            iload 10 /* perm */
            invokestatic org.jruby.RubyIO.ioOpenGeneric:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/util/io/IOEncodable;I)Lorg/jruby/RubyIO;
            areturn
        end local 10 // int perm
        end local 9 // java.lang.Object pm
        end local 8 // org.jruby.util.io.IOEncodable$ConvConfig convConfig
        end local 7 // int[] fmode_p
        end local 6 // int[] oflags_p
        end local 5 // org.jruby.runtime.builtin.IRubyObject opt
        end local 4 // org.jruby.runtime.builtin.IRubyObject vperm
        end local 3 // org.jruby.runtime.builtin.IRubyObject vmode
        end local 2 // org.jruby.RubyString filename
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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        recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     2    filename  Lorg/jruby/RubyString;
            0   11     3       vmode  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     4       vperm  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     5         opt  Lorg/jruby/runtime/builtin/IRubyObject;
            1   11     6    oflags_p  [I
            2   11     7     fmode_p  [I
            3   11     8  convConfig  Lorg/jruby/util/io/IOEncodable$ConvConfig;
            4   11     9          pm  Ljava/lang/Object;
           10   11    10        perm  I
    MethodParameters:
          Name  Flags
      context   
      recv      
      filename  
      vmode     
      vperm     
      opt       

  private static org.jruby.RubyIO ioOpenGeneric(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, int, int, org.jruby.util.io.IOEncodable, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/util/io/IOEncodable;I)Lorg/jruby/RubyIO;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=11, args_size=7
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject filename
        start local 3 // int oflags
        start local 4 // int fmode
        start local 5 // org.jruby.util.io.IOEncodable convconfig
        start local 6 // int perm
         0: .line 3677
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 7 /* runtime */
        start local 7 // org.jruby.Ruby runtime
         1: .line 3680
            aload 2 /* filename */
            instanceof org.jruby.RubyString
            ifeq 3
            aload 2 /* filename */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.isEmpty:()Z
            ifeq 3
         2: .line 3681
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoENOENTError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 3684
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 1 /* recv */
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getFile:()Lorg/jruby/RubyClass;
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 9 /* warn */
        start local 9 // boolean warn
         6: .line 3685
            iload 9 /* warn */
            ifne 7
            aload 1 /* recv */
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            if_acmpne 16
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int org.jruby.util.io.IOEncodable int org.jruby.Ruby top int
      StackMap stack:
         7: aload 0 /* context */
            aload 2 /* filename */
            invokestatic org.jruby.util.io.PopenExecutor.checkPipeCommand:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 8 /* cmd */
        start local 8 // org.jruby.runtime.builtin.IRubyObject cmd
         8: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 16
         9: .line 3686
            aload 7 /* runtime */
            invokestatic org.jruby.util.io.PopenExecutor.nativePopenAvailable:(Lorg/jruby/Ruby;)Z
            ifeq 15
        10: .line 3687
            aload 1 /* recv */
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            if_acmpeq 14
        11: .line 3689
            new java.lang.StringBuilder
            dup
            ldc "IO.open called on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* recv */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " to invoke external command"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* message */
        start local 10 // java.lang.String message
        12: .line 3690
            iload 9 /* warn */
            ifeq 14
        13: .line 3691
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            aload 10 /* message */
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
        end local 10 // java.lang.String message
        14: .line 3695
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int org.jruby.util.io.IOEncodable int org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject int
      StackMap stack:
            aload 0 /* context */
            aload 8 /* cmd */
            aload 7 /* runtime */
            iload 3 /* oflags */
            invokestatic org.jruby.util.io.OpenFile.ioOflagsModestr:(Lorg/jruby/Ruby;I)Ljava/lang/String;
            iload 4 /* fmode */
            aload 5 /* convconfig */
            invokestatic org.jruby.util.io.PopenExecutor.pipeOpen:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;ILorg/jruby/util/io/IOEncodable;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyIO
            areturn
        15: .line 3697
      StackMap locals:
      StackMap stack:
            aload 7 /* runtime */
            ldc "pipe open is not supported without native subprocess logic"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 8 // org.jruby.runtime.builtin.IRubyObject cmd
        16: .line 3700
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int int org.jruby.util.io.IOEncodable int org.jruby.Ruby top int
      StackMap stack:
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getFile:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.allocate:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyFile
            aload 0 /* context */
            aload 2 /* filename */
            iload 3 /* oflags */
            iload 4 /* fmode */
            aload 5 /* convconfig */
            iload 6 /* perm */
            invokevirtual org.jruby.RubyFile.fileOpenGeneric:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/util/io/IOEncodable;I)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyIO
            areturn
        end local 9 // boolean warn
        end local 7 // org.jruby.Ruby runtime
        end local 6 // int perm
        end local 5 // org.jruby.util.io.IOEncodable convconfig
        end local 4 // int fmode
        end local 3 // int oflags
        end local 2 // org.jruby.runtime.builtin.IRubyObject filename
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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        recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   17     2    filename  Lorg/jruby/runtime/builtin/IRubyObject;
            0   17     3      oflags  I
            0   17     4       fmode  I
            0   17     5  convconfig  Lorg/jruby/util/io/IOEncodable;
            0   17     6        perm  I
            1   17     7     runtime  Lorg/jruby/Ruby;
            8   16     8         cmd  Lorg/jruby/runtime/builtin/IRubyObject;
            6   17     9        warn  Z
           12   14    10     message  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      context     
      recv        
      filename    
      oflags      
      fmode       
      convconfig  
      perm        

  public static org.jruby.runtime.builtin.IRubyObject binread(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=7, locals=14, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 3714
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 3715
            aload 3 /* runtime */
            aload 0 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.RubyFile.get_path:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            invokestatic org.jruby.util.StringSupport.checkEmbeddedNulls:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            astore 4 /* path */
        start local 4 // org.jruby.runtime.builtin.IRubyObject path
         2: .line 3717
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 6 /* offset */
        start local 6 // org.jruby.runtime.builtin.IRubyObject offset
         3: astore 5 /* length */
        start local 5 // org.jruby.runtime.builtin.IRubyObject length
         4: .line 3718
            new org.jruby.util.io.IOEncodable$ConvConfig
            dup
            invokespecial org.jruby.util.io.IOEncodable$ConvConfig.<init>:()V
            astore 7 /* convconfig */
        start local 7 // org.jruby.util.io.IOEncodable convconfig
         5: .line 3720
            iconst_5
            istore 8 /* fmode */
        start local 8 // int fmode
         6: .line 3721
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            astore 9 /* oBinary */
        start local 9 // jnr.constants.platform.OpenFlags oBinary
         7: .line 3722
            getstatic jnr.constants.platform.OpenFlags.O_RDONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            aload 9 /* oBinary */
            invokevirtual jnr.constants.platform.OpenFlags.defined:()Z
            ifeq 8
            aload 9 /* oBinary */
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            goto 9
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.IOEncodable int jnr.constants.platform.OpenFlags
      StackMap stack: int
         8: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.IOEncodable int jnr.constants.platform.OpenFlags
      StackMap stack: int int
         9: ior
            istore 10 /* oflags */
        start local 10 // int oflags
        10: .line 3724
            aload 2 /* args */
            arraylength
            iconst_2
            if_icmple 14
        11: .line 3725
            aload 2 /* args */
            iconst_2
            aaload
            astore 6 /* offset */
        12: .line 3726
            aload 2 /* args */
            iconst_1
            aaload
            astore 5 /* length */
        13: .line 3727
            goto 16
      StackMap locals: int
      StackMap stack:
        14: aload 2 /* args */
            arraylength
            iconst_1
            if_icmple 16
        15: .line 3728
            aload 2 /* args */
            iconst_1
            aaload
            astore 5 /* length */
        16: .line 3730
      StackMap locals:
      StackMap stack:
            aload 7 /* convconfig */
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            invokeinterface org.jruby.util.io.IOEncodable.setEnc:(Lorg/jcodings/Encoding;)V
        17: .line 3731
            aload 0 /* context */
            aload 1 /* recv */
            aload 4 /* path */
            iload 10 /* oflags */
            iload 8 /* fmode */
            aload 7 /* convconfig */
            iconst_0
            invokestatic org.jruby.RubyIO.ioOpenGeneric:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/util/io/IOEncodable;I)Lorg/jruby/RubyIO;
            astore 11 /* file */
        start local 11 // org.jruby.RubyIO file
        18: .line 3733
            aload 11 /* file */
            invokevirtual org.jruby.RubyIO.isNil:()Z
            ifeq 19
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        19: .line 3736
      StackMap locals: org.jruby.RubyIO
      StackMap stack:
            aload 6 /* offset */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 21
        20: .line 3737
            aload 11 /* file */
            aload 0 /* context */
            aload 6 /* offset */
            invokevirtual org.jruby.RubyIO.seek:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
            pop
        21: .line 3739
      StackMap locals:
      StackMap stack:
            aload 11 /* file */
            aload 0 /* context */
            aload 5 /* length */
            invokevirtual org.jruby.RubyIO.read:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 13
        22: .line 3741
            aload 11 /* file */
            invokevirtual org.jruby.RubyIO.close:()V
        23: .line 3739
            aload 13
            areturn
        24: .line 3740
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 12
        25: .line 3741
            aload 11 /* file */
            invokevirtual org.jruby.RubyIO.close:()V
        26: .line 3742
            aload 12
            athrow
        end local 11 // org.jruby.RubyIO file
        end local 10 // int oflags
        end local 9 // jnr.constants.platform.OpenFlags oBinary
        end local 8 // int fmode
        end local 7 // org.jruby.util.io.IOEncodable convconfig
        end local 6 // org.jruby.runtime.builtin.IRubyObject offset
        end local 5 // org.jruby.runtime.builtin.IRubyObject length
        end local 4 // org.jruby.runtime.builtin.IRubyObject path
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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        recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   27     2        args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   27     3     runtime  Lorg/jruby/Ruby;
            2   27     4        path  Lorg/jruby/runtime/builtin/IRubyObject;
            4   27     5      length  Lorg/jruby/runtime/builtin/IRubyObject;
            3   27     6      offset  Lorg/jruby/runtime/builtin/IRubyObject;
            5   27     7  convconfig  Lorg/jruby/util/io/IOEncodable;
            6   27     8       fmode  I
            7   27     9     oBinary  Ljnr/constants/platform/OpenFlags;
           10   27    10      oflags  I
           18   27    11        file  Lorg/jruby/RubyIO;
      Exception table:
        from    to  target  type
          19    22      24  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true, required = 1, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  public static org.jruby.runtime.builtin.IRubyObject read(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=6, locals=12, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block unusedBlock
         0: .line 3748
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 3749
            aload 2 /* args */
            iconst_0
            aaload
            astore 5 /* path */
        start local 5 // org.jruby.runtime.builtin.IRubyObject path
         2: .line 3751
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 8 /* options */
        start local 8 // org.jruby.runtime.builtin.IRubyObject options
         3: dup
            astore 7 /* offset */
        start local 7 // org.jruby.runtime.builtin.IRubyObject offset
         4: astore 6 /* length */
        start local 6 // org.jruby.runtime.builtin.IRubyObject length
         5: .line 3754
            aload 2 /* args */
            arraylength
            iconst_3
            if_icmple 11
         6: .line 3755
            aload 2 /* args */
            iconst_3
            aaload
            instanceof org.jruby.RubyHash
            ifne 7
            aload 4 /* runtime */
            ldc "Must be a hash"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 3756
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* args */
            iconst_3
            aaload
            checkcast org.jruby.RubyHash
            astore 8 /* options */
         8: .line 3757
            aload 2 /* args */
            iconst_2
            aaload
            astore 7 /* offset */
         9: .line 3758
            aload 2 /* args */
            iconst_1
            aaload
            astore 6 /* length */
        10: .line 3759
            goto 23
      StackMap locals:
      StackMap stack:
        11: aload 2 /* args */
            arraylength
            iconst_2
            if_icmple 18
        12: .line 3760
            aload 2 /* args */
            iconst_2
            aaload
            instanceof org.jruby.RubyHash
            ifeq 15
        13: .line 3761
            aload 2 /* args */
            iconst_2
            aaload
            checkcast org.jruby.RubyHash
            astore 8 /* options */
        14: .line 3762
            goto 16
        15: .line 3763
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_2
            aaload
            astore 7 /* offset */
        16: .line 3765
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aaload
            astore 6 /* length */
        17: .line 3766
            goto 23
      StackMap locals:
      StackMap stack:
        18: aload 2 /* args */
            arraylength
            iconst_1
            if_icmple 23
        19: .line 3767
            aload 2 /* args */
            iconst_1
            aaload
            instanceof org.jruby.RubyHash
            ifeq 22
        20: .line 3768
            aload 2 /* args */
            iconst_1
            aaload
            checkcast org.jruby.RubyHash
            astore 8 /* options */
        21: .line 3769
            goto 23
        22: .line 3770
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aaload
            astore 6 /* length */
        23: .line 3773
      StackMap locals:
      StackMap stack:
            aload 8 /* options */
            ifnonnull 25
        24: .line 3774
            aload 4 /* runtime */
            invokestatic org.jruby.RubyHash.newHash:(Lorg/jruby/Ruby;)Lorg/jruby/RubyHash;
            astore 8 /* options */
        25: .line 3778
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            iconst_3
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* path */
            aastore
            dup
            iconst_1
            aload 6 /* length */
            aastore
            dup
            iconst_2
            aload 7 /* offset */
            aastore
            aload 8 /* options */
            invokestatic org.jruby.RubyIO.openKeyArgs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            astore 9 /* file */
        start local 9 // org.jruby.RubyIO file
        26: .line 3781
            aload 7 /* offset */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 28
        27: .line 3783
            aload 9 /* file */
            aload 0 /* context */
            aload 7 /* offset */
            invokevirtual org.jruby.RubyIO.seek:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
            pop
        28: .line 3785
      StackMap locals: org.jruby.RubyIO
      StackMap stack:
            aload 9 /* file */
            aload 0 /* context */
            aload 6 /* length */
            invokevirtual org.jruby.RubyIO.read:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11
        29: .line 3787
            aload 9 /* file */
            invokevirtual org.jruby.RubyIO.close:()V
        30: .line 3785
            aload 11
            areturn
        31: .line 3786
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        32: .line 3787
            aload 9 /* file */
            invokevirtual org.jruby.RubyIO.close:()V
        33: .line 3788
            aload 10
            athrow
        end local 9 // org.jruby.RubyIO file
        end local 8 // org.jruby.runtime.builtin.IRubyObject options
        end local 7 // org.jruby.runtime.builtin.IRubyObject offset
        end local 6 // org.jruby.runtime.builtin.IRubyObject length
        end local 5 // org.jruby.runtime.builtin.IRubyObject path
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block unusedBlock
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   34     0      context  Lorg/jruby/runtime/ThreadContext;
            0   34     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   34     2         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   34     3  unusedBlock  Lorg/jruby/runtime/Block;
            1   34     4      runtime  Lorg/jruby/Ruby;
            2   34     5         path  Lorg/jruby/runtime/builtin/IRubyObject;
            5   34     6       length  Lorg/jruby/runtime/builtin/IRubyObject;
            4   34     7       offset  Lorg/jruby/runtime/builtin/IRubyObject;
            3   34     8      options  Lorg/jruby/runtime/builtin/IRubyObject;
           26   34     9         file  Lorg/jruby/RubyIO;
      Exception table:
        from    to  target  type
          26    29      31  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"read"}, meta = true, required = 1, optional = 3)
    MethodParameters:
             Name  Flags
      context      
      recv         
      args         
      unusedBlock  

  public static org.jruby.runtime.builtin.IRubyObject read(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=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 3792
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.RubyIO.read:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  public static org.jruby.runtime.builtin.IRubyObject binwrite(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=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 3798
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            iconst_1
            invokestatic org.jruby.RubyIO.ioStaticWrite:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true, required = 2, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  public static org.jruby.runtime.builtin.IRubyObject write(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=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
         0: .line 3804
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* argv */
            iconst_0
            invokestatic org.jruby.RubyIO.ioStaticWrite:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     argv  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"write"}, meta = true, required = 2, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      recv     
      argv     

  public static org.jruby.runtime.builtin.IRubyObject ioStaticWrite(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=14, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        start local 3 // boolean binary
         0: .line 3809
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 3811
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 7 /* opt */
        start local 7 // org.jruby.runtime.builtin.IRubyObject opt
         2: dup
            astore 6 /* offset */
        start local 6 // org.jruby.runtime.builtin.IRubyObject offset
         3: astore 5 /* string */
        start local 5 // org.jruby.runtime.builtin.IRubyObject string
         4: .line 3813
            aload 2 /* argv */
            arraylength
            tableswitch { // 2 - 4
                    2: 13
                    3: 9
                    4: 5
              default: 15
          }
         5: .line 3815
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] int org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* argv */
            iconst_3
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToHash:()Lorg/jruby/RubyHash;
            astore 7 /* opt */
         6: .line 3816
            aload 2 /* argv */
            iconst_2
            aaload
            astore 6 /* offset */
         7: .line 3817
            aload 2 /* argv */
            iconst_1
            aaload
            astore 5 /* string */
         8: .line 3818
            goto 16
         9: .line 3820
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 2 /* argv */
            iconst_2
            aaload
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* opt */
        10: .line 3821
            aload 7 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 11
            aload 2 /* argv */
            iconst_2
            aaload
            astore 6 /* offset */
        11: .line 3822
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_1
            aaload
            astore 5 /* string */
        12: .line 3823
            goto 16
        13: .line 3825
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_1
            aaload
            astore 5 /* string */
        14: .line 3826
            goto 16
        15: .line 3828
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 2 /* argv */
            arraylength
            iconst_2
            iconst_4
            invokestatic org.jruby.runtime.Arity.raiseArgumentError:(Lorg/jruby/Ruby;III)V
        16: .line 3832
      StackMap locals:
      StackMap stack:
            aload 7 /* opt */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 17
            aload 4 /* runtime */
            invokestatic org.jruby.RubyHash.newHash:(Lorg/jruby/Ruby;)Lorg/jruby/RubyHash;
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 7 /* opt */
            checkcast org.jruby.RubyHash
            aload 0 /* context */
            invokevirtual org.jruby.RubyHash.dupFast:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyHash;
      StackMap locals:
      StackMap stack: org.jruby.RubyHash
        18: astore 8 /* optHash */
        start local 8 // org.jruby.RubyHash optHash
        19: .line 3834
            aload 4 /* runtime */
            ldc "mode"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            astore 9 /* modeSym */
        start local 9 // org.jruby.RubySymbol modeSym
        20: .line 3835
            aload 8 /* optHash */
            aload 0 /* context */
            aload 9 /* modeSym */
            invokevirtual org.jruby.RubyHash.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 26
        21: .line 3836
            getstatic jnr.constants.platform.OpenFlags.O_WRONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            getstatic jnr.constants.platform.OpenFlags.O_CREAT:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 10 /* mode */
        start local 10 // int mode
        22: .line 3837
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.defined:()Z
            ifeq 24
        23: .line 3838
            iload 3 /* binary */
            ifeq 24
            iload 10 /* mode */
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 10 /* mode */
        24: .line 3840
      StackMap locals: org.jruby.RubyHash org.jruby.RubySymbol int
      StackMap stack:
            aload 6 /* offset */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 25
            iload 10 /* mode */
            getstatic jnr.constants.platform.OpenFlags.O_TRUNC:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
            ior
            istore 10 /* mode */
        25: .line 3841
      StackMap locals:
      StackMap stack:
            aload 8 /* optHash */
            aload 0 /* context */
            aload 9 /* modeSym */
            aload 4 /* runtime */
            iload 10 /* mode */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyHash.op_aset:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 10 // int mode
        26: .line 3844
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* argv */
            aload 8 /* optHash */
            invokestatic org.jruby.RubyIO.openKeyArgs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            astore 10 /* _io */
        start local 10 // org.jruby.runtime.builtin.IRubyObject _io
        27: .line 3845
            aload 10 /* _io */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 28
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        28: .line 3846
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 10 /* _io */
            checkcast org.jruby.RubyIO
            astore 11 /* io */
        start local 11 // org.jruby.RubyIO io
        29: .line 3848
            getstatic jnr.constants.platform.OpenFlags.O_BINARY:Ljnr/constants/platform/OpenFlags;
            invokevirtual jnr.constants.platform.OpenFlags.defined:()Z
            ifne 31
        30: .line 3849
            iload 3 /* binary */
            ifeq 31
            aload 11 /* io */
            invokevirtual org.jruby.RubyIO.binmode:()Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        31: .line 3852
      StackMap locals: org.jruby.RubyIO
      StackMap stack:
            aload 6 /* offset */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 33
        32: .line 3853
            aload 0 /* context */
            aload 11 /* io */
            aload 6 /* offset */
            invokestatic org.jruby.RubyIO.seekBeforeAccess:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        33: .line 3857
      StackMap locals:
      StackMap stack:
            aload 11 /* io */
            aload 0 /* context */
            aload 5 /* string */
            iconst_0
            invokevirtual org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 13
        34: .line 3859
            aload 0 /* context */
            aload 11 /* io */
            invokestatic org.jruby.RubyIO.ioClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        35: .line 3857
            aload 13
            areturn
        36: .line 3859
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 12
            aload 0 /* context */
            aload 11 /* io */
            invokestatic org.jruby.RubyIO.ioClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
            aload 12
            athrow
        end local 11 // org.jruby.RubyIO io
        end local 10 // org.jruby.runtime.builtin.IRubyObject _io
        end local 9 // org.jruby.RubySymbol modeSym
        end local 8 // org.jruby.RubyHash optHash
        end local 7 // org.jruby.runtime.builtin.IRubyObject opt
        end local 6 // org.jruby.runtime.builtin.IRubyObject offset
        end local 5 // org.jruby.runtime.builtin.IRubyObject string
        end local 4 // org.jruby.Ruby runtime
        end local 3 // boolean binary
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   37     0  context  Lorg/jruby/runtime/ThreadContext;
            0   37     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   37     2     argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   37     3   binary  Z
            1   37     4  runtime  Lorg/jruby/Ruby;
            4   37     5   string  Lorg/jruby/runtime/builtin/IRubyObject;
            3   37     6   offset  Lorg/jruby/runtime/builtin/IRubyObject;
            2   37     7      opt  Lorg/jruby/runtime/builtin/IRubyObject;
           19   37     8  optHash  Lorg/jruby/RubyHash;
           20   37     9  modeSym  Lorg/jruby/RubySymbol;
           22   26    10     mode  I
           27   37    10      _io  Lorg/jruby/runtime/builtin/IRubyObject;
           29   37    11       io  Lorg/jruby/RubyIO;
      Exception table:
        from    to  target  type
          33    34      36  any
    MethodParameters:
         Name  Flags
      context  
      recv     
      argv     
      binary   

  static org.jruby.runtime.builtin.IRubyObject seekBeforeAccess(org.jruby.runtime.ThreadContext, org.jruby.RubyIO, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyIO io
        start local 2 // org.jruby.runtime.builtin.IRubyObject offset
         0: .line 3863
            aload 1 /* io */
            invokevirtual org.jruby.RubyIO.setBinmode:()V
         1: .line 3864
            aload 1 /* io */
            aload 0 /* context */
            aload 2 /* offset */
            invokevirtual org.jruby.RubyIO.seek:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFixnum;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject offset
        end local 1 // org.jruby.RubyIO io
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1       io  Lorg/jruby/RubyIO;
            0    2     2   offset  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      io       
      offset   

  public static org.jruby.runtime.builtin.IRubyObject readlines19(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=4, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block unusedBlock
         0: .line 3869
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            aload 3 /* unusedBlock */
            invokestatic org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block unusedBlock
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      context  Lorg/jruby/runtime/ThreadContext;
            0    1     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  unusedBlock  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      context      
      recv         
      args         
      unusedBlock  

  public static org.jruby.runtime.builtin.IRubyObject readlines(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=6, locals=8, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block unusedBlock
         0: .line 3875
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* args */
            invokestatic org.jruby.ast.util.ArgsUtil.getOptionsArg:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* opt */
        start local 4 // org.jruby.runtime.builtin.IRubyObject opt
         1: .line 3876
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            aload 4 /* opt */
            invokestatic org.jruby.RubyIO.openKeyArgs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            astore 5 /* io */
        start local 5 // org.jruby.RubyIO io
         2: .line 3878
            aload 2 /* args */
            arraylength
            tableswitch { // 1 - 4
                    1: 3
                    2: 6
                    3: 11
                    4: 16
              default: 21
          }
         3: .line 3880
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.RubyIO
      StackMap stack:
            aload 5 /* io */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyArray;
            astore 7
         4: .line 3895
            aload 5 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
         5: .line 3880
            aload 7
            areturn
         6: .line 3883
      StackMap locals:
      StackMap stack:
            aload 4 /* opt */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 8
            aload 5 /* io */
            aload 0 /* context */
            aload 4 /* opt */
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 7
         7: .line 3895
            aload 5 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
            aload 7
            areturn
         8: .line 3884
      StackMap locals:
      StackMap stack:
            aload 5 /* io */
            aload 0 /* context */
            aload 2 /* args */
            iconst_1
            aaload
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 7
         9: .line 3895
            aload 5 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
        10: .line 3884
            aload 7
            areturn
        11: .line 3886
      StackMap locals:
      StackMap stack:
            aload 4 /* opt */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 13
            aload 5 /* io */
            aload 0 /* context */
            aload 2 /* args */
            iconst_1
            aaload
            aload 4 /* opt */
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 7
        12: .line 3895
            aload 5 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
            aload 7
            areturn
        13: .line 3887
      StackMap locals:
      StackMap stack:
            aload 5 /* io */
            aload 0 /* context */
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 7
        14: .line 3895
            aload 5 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
        15: .line 3887
            aload 7
            areturn
        16: .line 3889
      StackMap locals:
      StackMap stack:
            aload 4 /* opt */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 18
            aload 5 /* io */
            aload 0 /* context */
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            aload 4 /* opt */
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 7
        17: .line 3895
            aload 5 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
            aload 7
            areturn
        18: .line 3890
      StackMap locals:
      StackMap stack:
            aload 5 /* io */
            aload 0 /* context */
            aload 2 /* args */
            iconst_1
            aaload
            aload 2 /* args */
            iconst_2
            aaload
            aload 2 /* args */
            iconst_3
            aaload
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 7
        19: .line 3895
            aload 5 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
        20: .line 3890
            aload 7
            areturn
        21: .line 3892
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 2 /* args */
            arraylength
            iconst_1
            iconst_4
            invokestatic org.jruby.runtime.Arity.raiseArgumentError:(Lorg/jruby/runtime/ThreadContext;III)V
        22: .line 3893
            new java.lang.AssertionError
            dup
            ldc "BUG"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        23: .line 3895
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
            aload 5 /* io */
            invokevirtual org.jruby.RubyIO.close:()V
            aload 6
            athrow
        end local 5 // org.jruby.RubyIO io
        end local 4 // org.jruby.runtime.builtin.IRubyObject opt
        end local 3 // org.jruby.runtime.Block unusedBlock
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0      context  Lorg/jruby/runtime/ThreadContext;
            0   24     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     2         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     3  unusedBlock  Lorg/jruby/runtime/Block;
            1   24     4          opt  Lorg/jruby/runtime/builtin/IRubyObject;
            2   24     5           io  Lorg/jruby/RubyIO;
      Exception table:
        from    to  target  type
           2     4      23  any
           6     7      23  any
           8     9      23  any
          11    12      23  any
          13    14      23  any
          16    17      23  any
          18    19      23  any
          21    23      23  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"readlines"}, required = 1, optional = 3, meta = true)
    MethodParameters:
             Name  Flags
      context      
      recv         
      args         
      unusedBlock  

  private void setupPopen(org.jruby.Ruby, org.jruby.util.io.ModeFlags, org.jruby.util.ShellLauncher$POpenProcess);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/io/ModeFlags;Lorg/jruby/util/ShellLauncher$POpenProcess;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.util.io.ModeFlags modes
        start local 3 // org.jruby.util.ShellLauncher$POpenProcess process
         0: .line 3899
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 2 /* modes */
            invokevirtual org.jruby.util.io.ModeFlags.getOpenFileFlags:()I
            bipush 8
            ior
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
         1: .line 3900
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 3 /* process */
            invokevirtual org.jruby.util.io.OpenFile.setProcess:(Ljava/lang/Process;)V
         2: .line 3902
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isReadable:()Z
            ifeq 9
         3: .line 3904
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getInput:()Ljava/nio/channels/FileChannel;
            ifnull 6
         4: .line 3906
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getInput:()Ljava/nio/channels/FileChannel;
            astore 4 /* inChannel */
        start local 4 // java.nio.channels.Channel inChannel
         5: .line 3907
            goto 7
        end local 4 // java.nio.channels.Channel inChannel
         6: .line 3909
      StackMap locals:
      StackMap stack:
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getInputStream:()Ljava/io/InputStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
            astore 4 /* inChannel */
        start local 4 // java.nio.channels.Channel inChannel
         7: .line 3912
      StackMap locals: java.nio.channels.Channel
      StackMap stack:
            new org.jruby.util.io.ChannelFD
            dup
            aload 4 /* inChannel */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            astore 5 /* main */
        start local 5 // org.jruby.util.io.ChannelFD main
         8: .line 3914
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 5 /* main */
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        end local 5 // org.jruby.util.io.ChannelFD main
        end local 4 // java.nio.channels.Channel inChannel
         9: .line 3917
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isWritable:()Z
            ifeq 22
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.hasOutput:()Z
            ifeq 22
        10: .line 3919
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getOutput:()Ljava/nio/channels/FileChannel;
            ifnull 13
        11: .line 3921
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getOutput:()Ljava/nio/channels/FileChannel;
            astore 4 /* outChannel */
        start local 4 // java.nio.channels.Channel outChannel
        12: .line 3922
            goto 14
        end local 4 // java.nio.channels.Channel outChannel
        13: .line 3923
      StackMap locals:
      StackMap stack:
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getOutputStream:()Ljava/io/OutputStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
            astore 4 /* outChannel */
        start local 4 // java.nio.channels.Channel outChannel
        14: .line 3926
      StackMap locals: java.nio.channels.Channel
      StackMap stack:
            new org.jruby.util.io.ChannelFD
            dup
            aload 4 /* outChannel */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            astore 5 /* pipe */
        start local 5 // org.jruby.util.io.ChannelFD pipe
        15: .line 3929
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isReadable:()Z
            ifeq 21
        16: .line 3930
            new org.jruby.RubyIO
            dup
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 6 /* writeIO */
        start local 6 // org.jruby.RubyIO writeIO
        17: .line 3931
            aload 6 /* writeIO */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 5 /* pipe */
            aload 1 /* runtime */
            getstatic jnr.constants.platform.OpenFlags.O_WRONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual org.jruby.Ruby.newFixnum:(Ljnr/constants/Constant;)Lorg/jruby/RubyFixnum;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.initializeCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        18: .line 3933
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 6 /* writeIO */
            putfield org.jruby.util.io.OpenFile.tiedIOForWriting:Lorg/jruby/RubyIO;
        19: .line 3934
            aload 0 /* this */
            ldc "@tied_io_for_writing"
            aload 6 /* writeIO */
            invokevirtual org.jruby.RubyIO.setInstanceVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        end local 6 // org.jruby.RubyIO writeIO
        20: .line 3935
            goto 22
        21: .line 3936
      StackMap locals: org.jruby.util.io.ChannelFD
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 5 /* pipe */
            invokevirtual org.jruby.util.io.OpenFile.setFD:(Lorg/jruby/util/io/ChannelFD;)V
        end local 5 // org.jruby.util.io.ChannelFD pipe
        end local 4 // java.nio.channels.Channel outChannel
        22: .line 3939
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.jruby.util.ShellLauncher$POpenProcess process
        end local 2 // org.jruby.util.io.ModeFlags modes
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Lorg/jruby/RubyIO;
            0   23     1     runtime  Lorg/jruby/Ruby;
            0   23     2       modes  Lorg/jruby/util/io/ModeFlags;
            0   23     3     process  Lorg/jruby/util/ShellLauncher$POpenProcess;
            5    6     4   inChannel  Ljava/nio/channels/Channel;
            7    9     4   inChannel  Ljava/nio/channels/Channel;
            8    9     5        main  Lorg/jruby/util/io/ChannelFD;
           12   13     4  outChannel  Ljava/nio/channels/Channel;
           14   22     4  outChannel  Ljava/nio/channels/Channel;
           15   22     5        pipe  Lorg/jruby/util/io/ChannelFD;
           17   20     6     writeIO  Lorg/jruby/RubyIO;
    Exceptions:
      throws org.jruby.exceptions.RaiseException
    MethodParameters:
         Name  Flags
      runtime  final
      modes    
      process  

  public static org.jruby.runtime.builtin.IRubyObject popen(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=6, locals=17, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 4003
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 4005
            aload 4 /* runtime */
            invokestatic org.jruby.util.io.PopenExecutor.nativePopenAvailable:(Lorg/jruby/Ruby;)Z
            ifeq 3
         2: .line 4007
            aload 0 /* context */
            aload 2 /* args */
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            aload 3 /* block */
            invokestatic org.jruby.util.io.PopenExecutor.popen:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 4011
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aconst_null
            astore 5 /* pmode */
        start local 5 // org.jruby.runtime.builtin.IRubyObject pmode
         4: .line 4012
            aconst_null
            astore 6 /* options */
        start local 6 // org.jruby.RubyHash options
         5: .line 4015
            iconst_0
            istore 8 /* firstArg */
        start local 8 // int firstArg
         6: .line 4016
            aload 2 /* args */
            arraylength
            istore 9 /* argc */
        start local 9 // int argc
         7: .line 4018
            iload 9 /* argc */
            ifle 10
            aload 4 /* runtime */
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 10
         8: .line 4019
            iinc 8 /* firstArg */ 1
         9: .line 4020
            iinc 9 /* argc */ -1
        10: .line 4023
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyHash top int int
      StackMap stack:
            iload 9 /* argc */
            ifle 14
            aload 4 /* runtime */
            aload 2 /* args */
            aload 2 /* args */
            arraylength
            iconst_1
            isub
            aaload
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 7 /* tmp */
        start local 7 // org.jruby.runtime.builtin.IRubyObject tmp
        11: invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 14
        12: .line 4024
            aload 7 /* tmp */
            checkcast org.jruby.RubyHash
            astore 6 /* options */
        13: .line 4025
            iinc 9 /* argc */ -1
        end local 7 // org.jruby.runtime.builtin.IRubyObject tmp
        14: .line 4028
      StackMap locals:
      StackMap stack:
            iload 9 /* argc */
            iconst_1
            if_icmple 16
        15: .line 4029
            aload 2 /* args */
            iload 8 /* firstArg */
            iconst_1
            iadd
            aaload
            astore 5 /* pmode */
        16: .line 4032
      StackMap locals:
      StackMap stack:
            new org.jruby.RubyIO
            dup
            aload 4 /* runtime */
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 10 /* io */
        start local 10 // org.jruby.RubyIO io
        17: .line 4034
            aload 10 /* io */
            invokevirtual org.jruby.RubyIO.MakeOpenFile:()Lorg/jruby/util/io/OpenFile;
            pop
        18: .line 4036
            aload 5 /* pmode */
            aload 4 /* runtime */
            iconst_0
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokestatic org.jruby.util.io.EncodingUtils.vmodeVperm:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/Object;
            astore 11 /* pm */
        start local 11 // java.lang.Object pm
        19: .line 4037
            iconst_1
            newarray 10
            astore 12 /* oflags_p */
        start local 12 // int[] oflags_p
        20: iconst_1
            newarray 10
            astore 13 /* fmode_p */
        start local 13 // int[] fmode_p
        21: .line 4038
            aload 0 /* context */
            aload 10 /* io */
            aload 11 /* pm */
            aload 6 /* options */
            aload 12 /* oflags_p */
            aload 13 /* fmode_p */
            invokestatic org.jruby.util.io.EncodingUtils.extractModeEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;[I[I)V
        22: .line 4039
            aload 12 /* oflags_p */
            iconst_0
            iaload
            invokestatic org.jruby.util.io.ModeFlags.createModeFlags:(I)Lorg/jruby/util/io/ModeFlags;
            astore 14 /* modes */
        start local 14 // org.jruby.util.io.ModeFlags modes
        23: .line 4043
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmple 26
            aload 2 /* args */
            aload 2 /* args */
            arraylength
            iconst_1
            isub
            aaload
            instanceof org.jruby.RubyHash
            ifeq 26
        24: .line 4044
            aload 2 /* args */
            aload 2 /* args */
            arraylength
            iconst_1
            isub
            aaload
            checkcast org.jruby.RubyHash
            astore 6 /* options */
        25: .line 4045
            aload 2 /* args */
            iconst_0
            aload 2 /* args */
            arraylength
            iconst_1
            isub
            invokestatic org.jruby.util.ArraySupport.newCopy:([Lorg/jruby/runtime/builtin/IRubyObject;II)[Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* args */
        26: .line 4048
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyHash top int int org.jruby.RubyIO java.lang.Object int[] int[] org.jruby.util.io.ModeFlags
      StackMap stack:
            new org.jruby.RubyIO$RubyPOpen
            dup
            aload 4 /* runtime */
            aload 2 /* args */
            invokespecial org.jruby.RubyIO$RubyPOpen.<init>:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)V
            astore 15 /* pOpen */
        start local 15 // org.jruby.RubyIO$RubyPOpen pOpen
        27: .line 4050
            aload 15 /* pOpen */
            getfield org.jruby.RubyIO$RubyPOpen.cmd:Lorg/jruby/RubyString;
            invokestatic org.jruby.RubyIO.isDash:(Lorg/jruby/RubyString;)Z
            ifeq 29
        28: .line 4051
            aload 4 /* runtime */
            ldc "popen(\"-\") is unimplemented"
            invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        29: .line 4056
      StackMap locals: org.jruby.RubyIO$RubyPOpen
      StackMap stack:
            aload 15 /* pOpen */
            getfield org.jruby.RubyIO$RubyPOpen.cmdPlusArgs:[Lorg/jruby/runtime/builtin/IRubyObject;
            ifnonnull 32
        30: .line 4057
            aload 4 /* runtime */
            aload 15 /* pOpen */
            getfield org.jruby.RubyIO$RubyPOpen.cmd:Lorg/jruby/RubyString;
            aload 14 /* modes */
            invokestatic org.jruby.util.ShellLauncher.popen:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/util/io/ModeFlags;)Lorg/jruby/util/ShellLauncher$POpenProcess;
            astore 16 /* process */
        start local 16 // org.jruby.util.ShellLauncher$POpenProcess process
        31: .line 4058
            goto 33
        end local 16 // org.jruby.util.ShellLauncher$POpenProcess process
        32: .line 4059
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 15 /* pOpen */
            getfield org.jruby.RubyIO$RubyPOpen.cmdPlusArgs:[Lorg/jruby/runtime/builtin/IRubyObject;
            aload 15 /* pOpen */
            getfield org.jruby.RubyIO$RubyPOpen.env:Lorg/jruby/RubyHash;
            aload 14 /* modes */
            invokestatic org.jruby.util.ShellLauncher.popen:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Ljava/util/Map;Lorg/jruby/util/io/ModeFlags;)Lorg/jruby/util/ShellLauncher$POpenProcess;
            astore 16 /* process */
        start local 16 // org.jruby.util.ShellLauncher$POpenProcess process
        33: .line 4062
      StackMap locals: org.jruby.util.ShellLauncher$POpenProcess
      StackMap stack:
            aload 6 /* options */
            ifnull 35
        34: .line 4063
            aload 0 /* context */
            aload 6 /* options */
            getstatic org.jruby.RubyIO.UNSUPPORTED_SPAWN_OPTIONS:[Ljava/lang/String;
            ldc "unsupported popen option"
            invokestatic org.jruby.RubyIO.checkUnsupportedOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;[Ljava/lang/String;Ljava/lang/String;)V
        35: .line 4066
      StackMap locals:
      StackMap stack:
            aload 10 /* io */
            aload 4 /* runtime */
            aload 14 /* modes */
            aload 16 /* process */
            invokevirtual org.jruby.RubyIO.setupPopen:(Lorg/jruby/Ruby;Lorg/jruby/util/io/ModeFlags;Lorg/jruby/util/ShellLauncher$POpenProcess;)V
        36: .line 4068
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 39
        37: .line 4069
            aload 0 /* context */
            aload 10 /* io */
            aload 3 /* block */
            invokestatic org.jruby.RubyIO.ensureYieldClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        38: .line 4072
            aload 0 /* context */
            aload 4 /* runtime */
            aload 16 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.waitFor:()I
            bipush 8
            ishl
            i2l
            aload 16 /* process */
            invokestatic org.jruby.util.ShellLauncher.getPidFromProcess:(Ljava/lang/Process;)J
            invokestatic org.jruby.RubyProcess$RubyStatus.newProcessStatus:(Lorg/jruby/Ruby;JJ)Lorg/jruby/RubyProcess$RubyStatus;
            invokevirtual org.jruby.runtime.ThreadContext.setLastExitStatus:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        39: .line 4074
      StackMap locals:
      StackMap stack:
            aload 10 /* io */
        40: areturn
        end local 16 // org.jruby.util.ShellLauncher$POpenProcess process
        41: .line 4075
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.RubyHash top int int org.jruby.RubyIO java.lang.Object int[] int[] org.jruby.util.io.ModeFlags org.jruby.RubyIO$RubyPOpen
      StackMap stack: java.io.IOException
            astore 16 /* e */
        start local 16 // java.io.IOException e
        42: .line 4076
            aload 4 /* runtime */
            aload 16 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 16 // java.io.IOException e
        43: .line 4077
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
        44: .line 4078
            aload 4 /* runtime */
            ldc "unexpected interrupt"
            invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 15 // org.jruby.RubyIO$RubyPOpen pOpen
        end local 14 // org.jruby.util.io.ModeFlags modes
        end local 13 // int[] fmode_p
        end local 12 // int[] oflags_p
        end local 11 // java.lang.Object pm
        end local 10 // org.jruby.RubyIO io
        end local 9 // int argc
        end local 8 // int firstArg
        end local 6 // org.jruby.RubyHash options
        end local 5 // org.jruby.runtime.builtin.IRubyObject pmode
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   45     0   context  Lorg/jruby/runtime/ThreadContext;
            0   45     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   45     2      args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   45     3     block  Lorg/jruby/runtime/Block;
            1   45     4   runtime  Lorg/jruby/Ruby;
            4   45     5     pmode  Lorg/jruby/runtime/builtin/IRubyObject;
            5   45     6   options  Lorg/jruby/RubyHash;
           11   14     7       tmp  Lorg/jruby/runtime/builtin/IRubyObject;
            6   45     8  firstArg  I
            7   45     9      argc  I
           17   45    10        io  Lorg/jruby/RubyIO;
           19   45    11        pm  Ljava/lang/Object;
           20   45    12  oflags_p  [I
           21   45    13   fmode_p  [I
           23   45    14     modes  Lorg/jruby/util/io/ModeFlags;
           27   45    15     pOpen  Lorg/jruby/RubyIO$RubyPOpen;
           31   32    16   process  Lorg/jruby/util/ShellLauncher$POpenProcess;
           33   41    16   process  Lorg/jruby/util/ShellLauncher$POpenProcess;
           42   43    16         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          29    40      41  Class java.io.IOException
          29    40      43  Class java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"popen"}, required = 1, optional = 2, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  public static org.jruby.runtime.builtin.IRubyObject pipe19(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=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 4084
            aload 0 /* context */
            aload 1 /* recv */
            getstatic org.jruby.runtime.builtin.IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.RubyIO.pipe19:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject pipe19(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=6, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject modes
         0: .line 4089
            aload 0 /* context */
            aload 1 /* recv */
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 2 /* modes */
            aastore
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.RubyIO.pipe19:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject modes
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2    modes  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      recv     
      modes    

  public static org.jruby.runtime.builtin.IRubyObject pipe19(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=4, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject klass
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        start local 3 // org.jruby.runtime.Block block
         0: .line 4094
            aload 0 /* context */
            aload 1 /* klass */
            aload 2 /* argv */
            aload 3 /* block */
            invokestatic org.jruby.RubyIO.pipe:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject klass
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1    klass  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      klass    
      argv     
      block    

  public static org.jruby.runtime.builtin.IRubyObject pipe(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=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 4099
            aload 0 /* context */
            aload 1 /* recv */
            getstatic org.jruby.runtime.builtin.IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.RubyIO.pipe:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject pipe(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=7, locals=17, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject klass
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        start local 3 // org.jruby.runtime.Block block
         0: .line 4104
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 4110
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 9 /* opt */
        start local 9 // org.jruby.runtime.builtin.IRubyObject opt
         2: dup
            astore 8 /* v2 */
        start local 8 // org.jruby.runtime.builtin.IRubyObject v2
         3: astore 7 /* v1 */
        start local 7 // org.jruby.runtime.builtin.IRubyObject v1
         4: .line 4112
            iconst_1
            newarray 10
            astore 12 /* fmode_p */
        start local 12 // int[] fmode_p
         5: .line 4114
            aload 2 /* argv */
            arraylength
            istore 14 /* argc */
        start local 14 // int argc
         6: .line 4116
            iload 14 /* argc */
            tableswitch { // 1 - 3
                    1: 19
                    2: 12
                    3: 7
              default: 24
          }
         7: .line 4118
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby top top org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top top int[] top int
      StackMap stack:
            aload 2 /* argv */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToHash:()Lorg/jruby/RubyHash;
            astore 9 /* opt */
         8: .line 4119
            iinc 14 /* argc */ -1
         9: .line 4120
            aload 2 /* argv */
            iconst_1
            aaload
            astore 8 /* v2 */
        10: .line 4121
            aload 2 /* argv */
            iconst_0
            aaload
            astore 7 /* v1 */
        11: .line 4122
            goto 24
        12: .line 4124
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 2 /* argv */
            iconst_1
            aaload
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* opt */
        13: .line 4125
            aload 9 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 16
        14: .line 4126
            iinc 14 /* argc */ -1
        15: .line 4127
            goto 17
        16: .line 4128
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_1
            aaload
            astore 8 /* v2 */
        17: .line 4130
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_0
            aaload
            astore 7 /* v1 */
        18: .line 4131
            goto 24
        19: .line 4133
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 2 /* argv */
            iconst_0
            aaload
            invokestatic org.jruby.util.TypeConverter.checkHashType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 9 /* opt */
        20: .line 4134
            aload 9 /* opt */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 23
        21: .line 4135
            iinc 14 /* argc */ -1
        22: .line 4136
            goto 24
        23: .line 4137
      StackMap locals:
      StackMap stack:
            aload 2 /* argv */
            iconst_0
            aaload
            astore 7 /* v1 */
        24: .line 4141
      StackMap locals:
      StackMap stack:
            new org.jruby.util.io.PosixShim
            dup
            aload 4 /* runtime */
            invokespecial org.jruby.util.io.PosixShim.<init>:(Lorg/jruby/Ruby;)V
            astore 15 /* posix */
        start local 15 // org.jruby.util.io.PosixShim posix
        25: .line 4142
            aload 15 /* posix */
            invokevirtual org.jruby.util.io.PosixShim.pipe:()[Ljava/nio/channels/Channel;
            astore 16 /* fds */
        start local 16 // java.nio.channels.Channel[] fds
        26: .line 4143
            aload 16 /* fds */
            ifnonnull 28
        27: .line 4144
            aload 4 /* runtime */
            aload 15 /* posix */
            invokevirtual org.jruby.util.io.PosixShim.getErrno:()Ljnr/constants/platform/Errno;
            ldc "opening pipe"
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        28: .line 4155
      StackMap locals: org.jruby.util.io.PosixShim java.nio.channels.Channel[]
      StackMap stack:
            new org.jruby.RubyIO
            dup
            aload 4 /* runtime */
            aload 1 /* klass */
            checkcast org.jruby.RubyClass
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 5 /* r */
        start local 5 // org.jruby.RubyIO r
        29: .line 4156
            aload 5 /* r */
            aload 0 /* context */
            new org.jruby.util.io.ChannelFD
            dup
            aload 16 /* fds */
            iconst_0
            aaload
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            aload 4 /* runtime */
            getstatic jnr.constants.platform.OpenFlags.O_RDONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual org.jruby.Ruby.newFixnum:(Ljnr/constants/Constant;)Lorg/jruby/RubyFixnum;
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.initializeCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        30: .line 4157
            aload 5 /* r */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 10 /* fptr */
        start local 10 // org.jruby.util.io.OpenFile fptr
        31: .line 4159
            aload 5 /* r */
            aload 0 /* context */
            aload 7 /* v1 */
            aload 8 /* v2 */
            aload 9 /* opt */
            invokevirtual org.jruby.RubyIO.setEncoding:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
        32: .line 4169
            new org.jruby.RubyIO
            dup
            aload 4 /* runtime */
            aload 1 /* klass */
            checkcast org.jruby.RubyClass
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 6 /* w */
        start local 6 // org.jruby.RubyIO w
        33: .line 4170
            aload 6 /* w */
            aload 0 /* context */
            new org.jruby.util.io.ChannelFD
            dup
            aload 16 /* fds */
            iconst_1
            aaload
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getFilenoUtil:()Lorg/jruby/util/io/FilenoUtil;
            invokespecial org.jruby.util.io.ChannelFD.<init>:(Ljava/nio/channels/Channel;Ljnr/posix/POSIX;Lorg/jruby/util/io/FilenoUtil;)V
            aload 4 /* runtime */
            getstatic jnr.constants.platform.OpenFlags.O_WRONLY:Ljnr/constants/platform/OpenFlags;
            invokevirtual org.jruby.Ruby.newFixnum:(Ljnr/constants/Constant;)Lorg/jruby/RubyFixnum;
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyIO.initializeCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/ChannelFD;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
        34: .line 4171
            aload 6 /* w */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 11 /* fptr2 */
        start local 11 // org.jruby.util.io.OpenFile fptr2
        35: .line 4172
            aload 11 /* fptr2 */
            iconst_1
            invokevirtual org.jruby.util.io.OpenFile.setSync:(Z)V
        36: .line 4174
            aload 4 /* runtime */
            aload 9 /* opt */
            aload 12 /* fmode_p */
            invokestatic org.jruby.util.io.EncodingUtils.extractBinmode:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;[I)V
        37: .line 4176
            getstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
            ifeq 43
        38: .line 4177
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            sipush 4096
            iand
            ifeq 40
            aload 12 /* fmode_p */
            iconst_0
            iaload
            iconst_4
            iand
            ifeq 40
        39: .line 4178
            aload 10 /* fptr */
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            sipush -4097
            iand
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        40: .line 4182
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.RubyIO org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile org.jruby.util.io.OpenFile int[] top int org.jruby.util.io.PosixShim java.nio.channels.Channel[]
      StackMap stack:
            getstatic org.jruby.platform.Platform.IS_WINDOWS:Z
            ifeq 43
        41: .line 4183
            aload 10 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            getstatic org.jruby.util.io.EncodingUtils.ECONV_DEFAULT_NEWLINE_DECORATOR:I
            iand
            ifeq 43
        42: .line 4184
            aload 10 /* fptr */
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            dup
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            sipush 256
            ior
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
        43: .line 4188
      StackMap locals:
      StackMap stack:
            aload 10 /* fptr */
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            aload 12 /* fmode_p */
            iconst_0
            iaload
            ior
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        44: .line 4190
            getstatic org.jruby.util.io.EncodingUtils.DEFAULT_TEXTMODE:I
            ifeq 47
        45: .line 4191
            aload 11 /* fptr2 */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            sipush 4096
            iand
            ifeq 47
            aload 12 /* fmode_p */
            iconst_0
            iaload
            iconst_4
            iand
            ifeq 47
        46: .line 4192
            aload 11 /* fptr2 */
            aload 11 /* fptr2 */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            sipush -4097
            iand
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        47: .line 4197
      StackMap locals:
      StackMap stack:
            aload 11 /* fptr2 */
            aload 11 /* fptr2 */
            invokevirtual org.jruby.util.io.OpenFile.getMode:()I
            aload 12 /* fmode_p */
            iconst_0
            iaload
            ior
            invokevirtual org.jruby.util.io.OpenFile.setMode:(I)V
        48: .line 4199
            aload 4 /* runtime */
            aload 5 /* r */
            aload 6 /* w */
            invokevirtual org.jruby.Ruby.newArray:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 13 /* ret */
        start local 13 // org.jruby.runtime.builtin.IRubyObject ret
        49: .line 4200
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 51
        50: .line 4201
            aload 0 /* context */
            aload 13 /* ret */
            aload 5 /* r */
            aload 6 /* w */
            aload 3 /* block */
            invokestatic org.jruby.RubyIO.ensureYieldClosePipes:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyIO;Lorg/jruby/RubyIO;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        51: .line 4203
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.RubyIO org.jruby.RubyIO org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile org.jruby.util.io.OpenFile int[] org.jruby.runtime.builtin.IRubyObject int org.jruby.util.io.PosixShim java.nio.channels.Channel[]
      StackMap stack:
            aload 13 /* ret */
            areturn
        end local 16 // java.nio.channels.Channel[] fds
        end local 15 // org.jruby.util.io.PosixShim posix
        end local 14 // int argc
        end local 13 // org.jruby.runtime.builtin.IRubyObject ret
        end local 12 // int[] fmode_p
        end local 11 // org.jruby.util.io.OpenFile fptr2
        end local 10 // org.jruby.util.io.OpenFile fptr
        end local 9 // org.jruby.runtime.builtin.IRubyObject opt
        end local 8 // org.jruby.runtime.builtin.IRubyObject v2
        end local 7 // org.jruby.runtime.builtin.IRubyObject v1
        end local 6 // org.jruby.RubyIO w
        end local 5 // org.jruby.RubyIO r
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject klass
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   52     0  context  Lorg/jruby/runtime/ThreadContext;
            0   52     1    klass  Lorg/jruby/runtime/builtin/IRubyObject;
            0   52     2     argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   52     3    block  Lorg/jruby/runtime/Block;
            1   52     4  runtime  Lorg/jruby/Ruby;
           29   52     5        r  Lorg/jruby/RubyIO;
           33   52     6        w  Lorg/jruby/RubyIO;
            4   52     7       v1  Lorg/jruby/runtime/builtin/IRubyObject;
            3   52     8       v2  Lorg/jruby/runtime/builtin/IRubyObject;
            2   52     9      opt  Lorg/jruby/runtime/builtin/IRubyObject;
           31   52    10     fptr  Lorg/jruby/util/io/OpenFile;
           35   52    11    fptr2  Lorg/jruby/util/io/OpenFile;
            5   52    12  fmode_p  [I
           49   52    13      ret  Lorg/jruby/runtime/builtin/IRubyObject;
            6   52    14     argc  I
           25   52    15    posix  Lorg/jruby/util/io/PosixShim;
           26   52    16      fds  [Ljava/nio/channels/Channel;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pipe"}, optional = 3, meta = true)
    MethodParameters:
         Name  Flags
      context  
      klass    
      argv     
      block    

  public static org.jruby.runtime.builtin.IRubyObject ensureYieldClosePipes(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyIO, org.jruby.RubyIO, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyIO;Lorg/jruby/RubyIO;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
        start local 2 // org.jruby.RubyIO r
        start local 3 // org.jruby.RubyIO w
        start local 4 // org.jruby.runtime.Block block
         0: .line 4209
            aload 4 /* block */
            aload 0 /* context */
            aload 1 /* obj */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6
         1: .line 4211
            aload 0 /* context */
            aload 2 /* r */
            aload 3 /* w */
            invokestatic org.jruby.RubyIO.pipePairClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;Lorg/jruby/RubyIO;)V
         2: .line 4209
            aload 6
            areturn
         3: .line 4210
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
         4: .line 4211
            aload 0 /* context */
            aload 2 /* r */
            aload 3 /* w */
            invokestatic org.jruby.RubyIO.pipePairClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;Lorg/jruby/RubyIO;)V
         5: .line 4212
            aload 5
            athrow
        end local 4 // org.jruby.runtime.Block block
        end local 3 // org.jruby.RubyIO w
        end local 2 // org.jruby.RubyIO r
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        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      obj  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2        r  Lorg/jruby/RubyIO;
            0    6     3        w  Lorg/jruby/RubyIO;
            0    6     4    block  Lorg/jruby/runtime/Block;
      Exception table:
        from    to  target  type
           0     1       3  any
    MethodParameters:
         Name  Flags
      context  
      obj      
      r        
      w        
      block    

  private static void pipePairClose(org.jruby.runtime.ThreadContext, org.jruby.RubyIO, org.jruby.RubyIO);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;Lorg/jruby/RubyIO;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyIO r
        start local 2 // org.jruby.RubyIO w
         0: .line 4218
            aload 0 /* context */
            aload 1 /* r */
            invokestatic org.jruby.RubyIO.ioClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         1: .line 4219
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 3
         3: .line 4220
            aload 0 /* context */
            aload 2 /* w */
            invokestatic org.jruby.RubyIO.ioClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         4: .line 4221
            aload 3
            athrow
         5: .line 4220
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 2 /* w */
            invokestatic org.jruby.RubyIO.ioClose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         6: .line 4222
            return
        end local 2 // org.jruby.RubyIO w
        end local 1 // org.jruby.RubyIO r
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Lorg/jruby/runtime/ThreadContext;
            0    7     1        r  Lorg/jruby/RubyIO;
            0    7     2        w  Lorg/jruby/RubyIO;
      Exception table:
        from    to  target  type
           0     2       2  any
    MethodParameters:
         Name  Flags
      context  
      r        
      w        

  public static org.jruby.runtime.builtin.IRubyObject copy_stream(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=7, locals=32, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 4226
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 4228
            aload 2 /* args */
            iconst_0
            aaload
            astore 4 /* arg1 */
        start local 4 // org.jruby.runtime.builtin.IRubyObject arg1
         2: .line 4229
            aload 2 /* args */
            iconst_1
            aaload
            astore 5 /* arg2 */
        start local 5 // org.jruby.runtime.builtin.IRubyObject arg2
         3: .line 4231
            aconst_null
            astore 6 /* length */
        start local 6 // org.jruby.RubyInteger length
         4: .line 4232
            aconst_null
            astore 7 /* offset */
        start local 7 // org.jruby.RubyInteger offset
         5: .line 4234
            aconst_null
            astore 8 /* io1 */
        start local 8 // org.jruby.RubyIO io1
         6: .line 4235
            aconst_null
            astore 9 /* io2 */
        start local 9 // org.jruby.RubyIO io2
         7: .line 4237
            aconst_null
            astore 10 /* channel1 */
        start local 10 // java.nio.channels.Channel channel1
         8: .line 4238
            aconst_null
            astore 11 /* channel2 */
        start local 11 // java.nio.channels.Channel channel2
         9: .line 4240
            aload 2 /* args */
            arraylength
            iconst_3
            if_icmplt 13
        10: .line 4241
            aload 2 /* args */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            astore 6 /* length */
        11: .line 4242
            aload 2 /* args */
            arraylength
            iconst_4
            if_icmpne 13
        12: .line 4243
            aload 2 /* args */
            iconst_3
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            astore 7 /* offset */
        13: .line 4247
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel
      StackMap stack:
            aload 0 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            astore 12 /* sites */
        start local 12 // org.jruby.runtime.JavaSites$IOSites sites
        14: .line 4250
            iconst_0
            istore 13 /* userProvidedReadIO */
        start local 13 // boolean userProvidedReadIO
        15: .line 4253
            iconst_0
            istore 14 /* local1 */
        start local 14 // boolean local1
        16: .line 4254
            iconst_0
            istore 15 /* local2 */
        start local 15 // boolean local2
        17: .line 4257
            aload 4 /* arg1 */
            instanceof org.jruby.RubyString
            ifeq 21
        18: .line 4258
            aload 0 /* context */
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getFile:()Lorg/jruby/RubyClass;
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 4 /* arg1 */
            aastore
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.RubyFile.open:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyIO
            astore 8 /* io1 */
        19: .line 4259
            iconst_1
            istore 14 /* local1 */
        20: .line 4260
            goto 37
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int
      StackMap stack:
        21: aload 4 /* arg1 */
            instanceof org.jruby.RubyIO
            ifeq 25
        22: .line 4261
            aload 4 /* arg1 */
            checkcast org.jruby.RubyIO
            astore 8 /* io1 */
        23: .line 4262
            iconst_1
            istore 13 /* userProvidedReadIO */
        24: .line 4263
            goto 37
      StackMap locals:
      StackMap stack:
        25: aload 12 /* sites */
            getfield org.jruby.runtime.JavaSites$IOSites.to_path_checked1:Lorg/jruby/runtime/JavaSites$CheckedSites;
            getfield org.jruby.runtime.JavaSites$CheckedSites.respond_to_X:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 4 /* arg1 */
            aload 4 /* arg1 */
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 30
        26: .line 4264
            aload 0 /* context */
            aload 4 /* arg1 */
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getString:()Lorg/jruby/RubyClass;
            aload 12 /* sites */
            getfield org.jruby.runtime.JavaSites$IOSites.to_path_checked1:Lorg/jruby/runtime/JavaSites$CheckedSites;
            invokestatic org.jruby.util.TypeConverter.convertToType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;Lorg/jruby/runtime/JavaSites$CheckedSites;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 16 /* path */
        start local 16 // org.jruby.RubyString path
        27: .line 4265
            aload 0 /* context */
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getFile:()Lorg/jruby/RubyClass;
            iconst_1
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 16 /* path */
            aastore
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.RubyFile.open:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyIO
            astore 8 /* io1 */
        28: .line 4266
            iconst_1
            istore 14 /* local1 */
        end local 16 // org.jruby.RubyString path
        29: .line 4267
            goto 37
      StackMap locals:
      StackMap stack:
        30: aload 12 /* sites */
            getfield org.jruby.runtime.JavaSites$IOSites.respond_to_read:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 4 /* arg1 */
            aload 4 /* arg1 */
            iconst_1
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)Z
            ifeq 33
        31: .line 4268
            new org.jruby.util.IOChannel$IOReadableByteChannel
            dup
            aload 4 /* arg1 */
            invokespecial org.jruby.util.IOChannel$IOReadableByteChannel.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;)V
            astore 10 /* channel1 */
        32: .line 4269
            goto 37
      StackMap locals:
      StackMap stack:
        33: aload 12 /* sites */
            getfield org.jruby.runtime.JavaSites$IOSites.respond_to_readpartial:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 4 /* arg1 */
            aload 4 /* arg1 */
            iconst_1
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)Z
            ifeq 36
        34: .line 4270
            new org.jruby.util.IOChannel$IOReadableByteChannel
            dup
            aload 4 /* arg1 */
            ldc "readpartial"
            invokespecial org.jruby.util.IOChannel$IOReadableByteChannel.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)V
            astore 10 /* channel1 */
        35: .line 4271
            goto 37
        36: .line 4272
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            ldc "Should be String or IO"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        37: .line 4276
      StackMap locals:
      StackMap stack:
            aload 8 /* io1 */
            instanceof org.jruby.RubyIO
            ifeq 40
        38: .line 4277
            aload 8 /* io1 */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 0 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkReadable:(Lorg/jruby/runtime/ThreadContext;)V
        39: .line 4278
            aload 8 /* io1 */
            invokevirtual org.jruby.RubyIO.getChannel:()Ljava/nio/channels/Channel;
            astore 10 /* channel1 */
        40: .line 4281
      StackMap locals:
      StackMap stack:
            aload 5 /* arg2 */
            instanceof org.jruby.RubyString
            ifeq 44
        41: .line 4282
            aload 0 /* context */
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getFile:()Lorg/jruby/RubyClass;
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 5 /* arg2 */
            aastore
            dup
            iconst_1
            aload 3 /* runtime */
            ldc "w"
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            aastore
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.RubyFile.open:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyIO
            astore 9 /* io2 */
        42: .line 4283
            iconst_1
            istore 15 /* local2 */
        43: .line 4284
            goto 56
      StackMap locals:
      StackMap stack:
        44: aload 5 /* arg2 */
            instanceof org.jruby.RubyIO
            ifeq 47
        45: .line 4285
            aload 5 /* arg2 */
            checkcast org.jruby.RubyIO
            astore 9 /* io2 */
        46: .line 4286
            goto 56
      StackMap locals:
      StackMap stack:
        47: aload 12 /* sites */
            getfield org.jruby.runtime.JavaSites$IOSites.to_path_checked2:Lorg/jruby/runtime/JavaSites$CheckedSites;
            getfield org.jruby.runtime.JavaSites$CheckedSites.respond_to_X:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 5 /* arg2 */
            aload 5 /* arg2 */
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 52
        48: .line 4287
            aload 0 /* context */
            aload 5 /* arg2 */
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getString:()Lorg/jruby/RubyClass;
            aload 12 /* sites */
            getfield org.jruby.runtime.JavaSites$IOSites.to_path_checked2:Lorg/jruby/runtime/JavaSites$CheckedSites;
            invokestatic org.jruby.util.TypeConverter.convertToType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;Lorg/jruby/runtime/JavaSites$CheckedSites;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 16 /* path */
        start local 16 // org.jruby.RubyString path
        49: .line 4288
            aload 0 /* context */
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.getFile:()Lorg/jruby/RubyClass;
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 16 /* path */
            aastore
            dup
            iconst_1
            aload 3 /* runtime */
            ldc "w"
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            aastore
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokestatic org.jruby.RubyFile.open:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyIO
            astore 9 /* io2 */
        50: .line 4289
            iconst_1
            istore 15 /* local2 */
        end local 16 // org.jruby.RubyString path
        51: .line 4290
            goto 56
      StackMap locals:
      StackMap stack:
        52: aload 12 /* sites */
            getfield org.jruby.runtime.JavaSites$IOSites.respond_to_write:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 5 /* arg2 */
            aload 5 /* arg2 */
            iconst_1
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)Z
            ifeq 55
        53: .line 4291
            new org.jruby.util.IOChannel$IOWritableByteChannel
            dup
            aload 5 /* arg2 */
            invokespecial org.jruby.util.IOChannel$IOWritableByteChannel.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;)V
            astore 11 /* channel2 */
        54: .line 4292
            goto 56
        55: .line 4293
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            ldc "Should be String or IO"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        56: .line 4297
      StackMap locals:
      StackMap stack:
            aload 9 /* io2 */
            instanceof org.jruby.RubyIO
            ifeq 61
        57: .line 4298
            aload 9 /* io2 */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 9 /* io2 */
        58: .line 4299
            aload 9 /* io2 */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            aload 0 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkWritable:(Lorg/jruby/runtime/ThreadContext;)V
        59: .line 4300
            aload 9 /* io2 */
            aload 0 /* context */
            invokevirtual org.jruby.RubyIO.flush:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyIO;
            pop
        60: .line 4301
            aload 9 /* io2 */
            invokevirtual org.jruby.RubyIO.getChannel:()Ljava/nio/channels/Channel;
            astore 11 /* channel2 */
        61: .line 4304
      StackMap locals:
      StackMap stack:
            aload 10 /* channel1 */
            instanceof java.nio.channels.ReadableByteChannel
            ifne 62
            aload 3 /* runtime */
            ldc "from IO is not readable"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        62: .line 4305
      StackMap locals:
      StackMap stack:
            aload 11 /* channel2 */
            instanceof java.nio.channels.WritableByteChannel
            ifne 63
            aload 3 /* runtime */
            ldc "to IO is not writable"
            invokevirtual org.jruby.Ruby.newIOError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        63: .line 4307
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 16 /* locked */
        start local 16 // boolean locked
        64: .line 4308
            aconst_null
            astore 17 /* fptr1 */
        start local 17 // org.jruby.util.io.OpenFile fptr1
        65: .line 4311
            iload 13 /* userProvidedReadIO */
            ifeq 68
        66: .line 4312
            aload 8 /* io1 */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 17 /* fptr1 */
        67: .line 4314
            aload 17 /* fptr1 */
            invokevirtual org.jruby.util.io.OpenFile.lock:()Z
            istore 16 /* locked */
        68: .line 4318
      StackMap locals: int org.jruby.util.io.OpenFile
      StackMap stack:
            lconst_0
            lstore 18 /* pos */
        start local 18 // long pos
        69: .line 4319
            lconst_0
            lstore 20 /* size */
        start local 20 // long size
        70: .line 4321
            iload 13 /* userProvidedReadIO */
            ifeq 72
        71: .line 4322
            aload 17 /* fptr1 */
            aload 0 /* context */
            invokevirtual org.jruby.util.io.OpenFile.tell:(Lorg/jruby/runtime/ThreadContext;)J
            lstore 18 /* pos */
        72: .line 4326
      StackMap locals: long long
      StackMap stack:
            aload 10 /* channel1 */
            instanceof java.nio.channels.FileChannel
            ifeq 83
        73: .line 4327
            aload 10 /* channel1 */
            checkcast java.nio.channels.FileChannel
            astore 22 /* from */
        start local 22 // java.nio.channels.FileChannel from
        74: .line 4328
            aload 11 /* channel2 */
            checkcast java.nio.channels.WritableByteChannel
            astore 23 /* to */
        start local 23 // java.nio.channels.WritableByteChannel to
        75: .line 4329
            aload 6 /* length */
            ifnonnull 76
            aload 22 /* from */
            invokevirtual java.nio.channels.FileChannel.size:()J
            goto 77
      StackMap locals: java.nio.channels.FileChannel java.nio.channels.WritableByteChannel
      StackMap stack:
        76: aload 6 /* length */
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
      StackMap locals:
      StackMap stack: long
        77: lstore 24 /* remaining */
        start local 24 // long remaining
        78: .line 4330
            aload 7 /* offset */
            ifnonnull 79
            aload 22 /* from */
            invokevirtual java.nio.channels.FileChannel.position:()J
            goto 80
      StackMap locals: long
      StackMap stack:
        79: aload 7 /* offset */
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
      StackMap locals:
      StackMap stack: long
        80: lstore 26 /* position */
        start local 26 // long position
        81: .line 4332
            aload 22 /* from */
            aload 23 /* to */
            lload 24 /* remaining */
            lload 26 /* position */
            invokestatic org.jruby.RubyIO.transfer:(Ljava/nio/channels/FileChannel;Ljava/nio/channels/WritableByteChannel;JJ)J
            lstore 20 /* size */
        end local 26 // long position
        end local 24 // long remaining
        end local 23 // java.nio.channels.WritableByteChannel to
        end local 22 // java.nio.channels.FileChannel from
        82: .line 4333
            goto 97
        83: .line 4334
      StackMap locals:
      StackMap stack:
            aload 6 /* length */
            ifnonnull 84
            ldc -1
            goto 85
      StackMap locals:
      StackMap stack:
        84: aload 6 /* length */
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
      StackMap locals:
      StackMap stack: long
        85: lstore 22 /* remaining */
        start local 22 // long remaining
        86: .line 4335
            aload 7 /* offset */
            ifnonnull 87
            ldc -1
            goto 88
      StackMap locals: long
      StackMap stack:
        87: aload 7 /* offset */
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
      StackMap locals:
      StackMap stack: long
        88: lstore 24 /* position */
        start local 24 // long position
        89: .line 4336
            aload 11 /* channel2 */
            instanceof java.nio.channels.FileChannel
            ifeq 94
        90: .line 4337
            aload 10 /* channel1 */
            checkcast java.nio.channels.ReadableByteChannel
            astore 26 /* from */
        start local 26 // java.nio.channels.ReadableByteChannel from
        91: .line 4338
            aload 11 /* channel2 */
            checkcast java.nio.channels.FileChannel
            astore 27 /* to */
        start local 27 // java.nio.channels.FileChannel to
        92: .line 4340
            aload 0 /* context */
            aload 26 /* from */
            aload 27 /* to */
            lload 22 /* remaining */
            lload 24 /* position */
            invokestatic org.jruby.RubyIO.transfer:(Lorg/jruby/runtime/ThreadContext;Ljava/nio/channels/ReadableByteChannel;Ljava/nio/channels/FileChannel;JJ)J
            lstore 20 /* size */
        end local 27 // java.nio.channels.FileChannel to
        end local 26 // java.nio.channels.ReadableByteChannel from
        93: .line 4341
            goto 97
        94: .line 4342
      StackMap locals: long
      StackMap stack:
            aload 10 /* channel1 */
            checkcast java.nio.channels.ReadableByteChannel
            astore 26 /* from */
        start local 26 // java.nio.channels.ReadableByteChannel from
        95: .line 4343
            aload 11 /* channel2 */
            checkcast java.nio.channels.WritableByteChannel
            astore 27 /* to */
        start local 27 // java.nio.channels.WritableByteChannel to
        96: .line 4345
            aload 0 /* context */
            aload 26 /* from */
            aload 27 /* to */
            lload 22 /* remaining */
            lload 24 /* position */
            invokestatic org.jruby.RubyIO.transfer:(Lorg/jruby/runtime/ThreadContext;Ljava/nio/channels/ReadableByteChannel;Ljava/nio/channels/WritableByteChannel;JJ)J
            lstore 20 /* size */
        end local 27 // java.nio.channels.WritableByteChannel to
        end local 26 // java.nio.channels.ReadableByteChannel from
        end local 24 // long position
        end local 22 // long remaining
        97: .line 4349
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 20 /* size */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            astore 29
        98: .line 4356
            iload 13 /* userProvidedReadIO */
            ifeq 103
        99: .line 4357
            aload 7 /* offset */
            ifnull 102
       100: .line 4358
            aload 17 /* fptr1 */
            aload 0 /* context */
            lload 18 /* pos */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            pop2
       101: .line 4359
            goto 103
       102: .line 4360
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int int org.jruby.util.io.OpenFile long long top top top top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 17 /* fptr1 */
            aload 0 /* context */
            lload 18 /* pos */
            lload 20 /* size */
            ladd
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            pop2
       103: .line 4365
      StackMap locals:
      StackMap stack:
            iload 13 /* userProvidedReadIO */
            ifeq 104
            iload 16 /* locked */
            ifeq 104
            aload 17 /* fptr1 */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
       104: .line 4370
      StackMap locals:
      StackMap stack:
            iload 14 /* local1 */
            ifeq 108
       105: .line 4371
            aload 8 /* io1 */
            invokevirtual org.jruby.RubyIO.close:()V
       106: goto 108
      StackMap locals:
      StackMap stack: java.lang.Exception
       107: pop
       108: .line 4373
      StackMap locals:
      StackMap stack:
            iload 15 /* local2 */
            ifeq 112
       109: .line 4374
            aload 9 /* io2 */
            invokevirtual org.jruby.RubyIO.close:()V
       110: goto 112
      StackMap locals:
      StackMap stack: java.lang.Exception
       111: pop
       112: .line 4349
      StackMap locals:
      StackMap stack:
            aload 29
            areturn
       113: .line 4350
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int int org.jruby.util.io.OpenFile long long
      StackMap stack: org.jruby.exceptions.EOFError
            pop
       114: .line 4352
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 20 /* size */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            astore 29
       115: .line 4356
            iload 13 /* userProvidedReadIO */
            ifeq 120
       116: .line 4357
            aload 7 /* offset */
            ifnull 119
       117: .line 4358
            aload 17 /* fptr1 */
            aload 0 /* context */
            lload 18 /* pos */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            pop2
       118: .line 4359
            goto 120
       119: .line 4360
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int int org.jruby.util.io.OpenFile long long top top top top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 17 /* fptr1 */
            aload 0 /* context */
            lload 18 /* pos */
            lload 20 /* size */
            ladd
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            pop2
       120: .line 4365
      StackMap locals:
      StackMap stack:
            iload 13 /* userProvidedReadIO */
            ifeq 121
            iload 16 /* locked */
            ifeq 121
            aload 17 /* fptr1 */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
       121: .line 4370
      StackMap locals:
      StackMap stack:
            iload 14 /* local1 */
            ifeq 125
       122: .line 4371
            aload 8 /* io1 */
            invokevirtual org.jruby.RubyIO.close:()V
       123: goto 125
      StackMap locals:
      StackMap stack: java.lang.Exception
       124: pop
       125: .line 4373
      StackMap locals:
      StackMap stack:
            iload 15 /* local2 */
            ifeq 129
       126: .line 4374
            aload 9 /* io2 */
            invokevirtual org.jruby.RubyIO.close:()V
       127: goto 129
      StackMap locals:
      StackMap stack: java.lang.Exception
       128: pop
       129: .line 4352
      StackMap locals:
      StackMap stack:
            aload 29
            areturn
       130: .line 4353
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int int org.jruby.util.io.OpenFile long long
      StackMap stack: java.io.IOException
            astore 22 /* ioe */
        start local 22 // java.io.IOException ioe
       131: .line 4354
            aload 3 /* runtime */
            aload 22 /* ioe */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 22 // java.io.IOException ioe
       132: .line 4355
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 28
       133: .line 4356
            iload 13 /* userProvidedReadIO */
            ifeq 138
       134: .line 4357
            aload 7 /* offset */
            ifnull 137
       135: .line 4358
            aload 17 /* fptr1 */
            aload 0 /* context */
            lload 18 /* pos */
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            pop2
       136: .line 4359
            goto 138
       137: .line 4360
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int int org.jruby.util.io.OpenFile long long top top top top top top java.lang.Throwable
      StackMap stack:
            aload 17 /* fptr1 */
            aload 0 /* context */
            lload 18 /* pos */
            lload 20 /* size */
            ladd
            iconst_0
            invokevirtual org.jruby.util.io.OpenFile.seek:(Lorg/jruby/runtime/ThreadContext;JI)J
            pop2
       138: .line 4363
      StackMap locals:
      StackMap stack:
            aload 28
            athrow
        end local 20 // long size
        end local 18 // long pos
       139: .line 4364
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int int org.jruby.util.io.OpenFile
      StackMap stack: java.lang.Throwable
            astore 30
       140: .line 4365
            iload 13 /* userProvidedReadIO */
            ifeq 141
            iload 16 /* locked */
            ifeq 141
            aload 17 /* fptr1 */
            invokevirtual org.jruby.util.io.OpenFile.unlock:()V
       141: .line 4366
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int int org.jruby.util.io.OpenFile top top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 30
            athrow
        end local 17 // org.jruby.util.io.OpenFile fptr1
        end local 16 // boolean locked
       142: .line 4367
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int
      StackMap stack: java.lang.Throwable
            astore 31
       143: .line 4370
            iload 14 /* local1 */
            ifeq 147
       144: .line 4371
            aload 8 /* io1 */
            invokevirtual org.jruby.RubyIO.close:()V
       145: goto 147
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyInteger org.jruby.RubyInteger org.jruby.RubyIO org.jruby.RubyIO java.nio.channels.Channel java.nio.channels.Channel org.jruby.runtime.JavaSites$IOSites int int int top top top top top top top top top top top top top top top java.lang.Throwable
      StackMap stack: java.lang.Exception
       146: pop
       147: .line 4373
      StackMap locals:
      StackMap stack:
            iload 15 /* local2 */
            ifeq 151
       148: .line 4374
            aload 9 /* io2 */
            invokevirtual org.jruby.RubyIO.close:()V
       149: goto 151
      StackMap locals:
      StackMap stack: java.lang.Exception
       150: pop
       151: .line 4377
      StackMap locals:
      StackMap stack:
            aload 31
            athrow
        end local 15 // boolean local2
        end local 14 // boolean local1
        end local 13 // boolean userProvidedReadIO
        end local 12 // org.jruby.runtime.JavaSites$IOSites sites
        end local 11 // java.nio.channels.Channel channel2
        end local 10 // java.nio.channels.Channel channel1
        end local 9 // org.jruby.RubyIO io2
        end local 8 // org.jruby.RubyIO io1
        end local 7 // org.jruby.RubyInteger offset
        end local 6 // org.jruby.RubyInteger length
        end local 5 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 4 // org.jruby.runtime.builtin.IRubyObject arg1
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  152     0             context  Lorg/jruby/runtime/ThreadContext;
            0  152     1                recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0  152     2                args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1  152     3             runtime  Lorg/jruby/Ruby;
            2  152     4                arg1  Lorg/jruby/runtime/builtin/IRubyObject;
            3  152     5                arg2  Lorg/jruby/runtime/builtin/IRubyObject;
            4  152     6              length  Lorg/jruby/RubyInteger;
            5  152     7              offset  Lorg/jruby/RubyInteger;
            6  152     8                 io1  Lorg/jruby/RubyIO;
            7  152     9                 io2  Lorg/jruby/RubyIO;
            8  152    10            channel1  Ljava/nio/channels/Channel;
            9  152    11            channel2  Ljava/nio/channels/Channel;
           14  152    12               sites  Lorg/jruby/runtime/JavaSites$IOSites;
           15  152    13  userProvidedReadIO  Z
           16  152    14              local1  Z
           17  152    15              local2  Z
           27   29    16                path  Lorg/jruby/RubyString;
           49   51    16                path  Lorg/jruby/RubyString;
           64  142    16              locked  Z
           65  142    17               fptr1  Lorg/jruby/util/io/OpenFile;
           69  139    18                 pos  J
           70  139    20                size  J
           74   82    22                from  Ljava/nio/channels/FileChannel;
           75   82    23                  to  Ljava/nio/channels/WritableByteChannel;
           78   82    24           remaining  J
           81   82    26            position  J
           86   97    22           remaining  J
           89   97    24            position  J
           91   93    26                from  Ljava/nio/channels/ReadableByteChannel;
           92   93    27                  to  Ljava/nio/channels/FileChannel;
           95   97    26                from  Ljava/nio/channels/ReadableByteChannel;
           96   97    27                  to  Ljava/nio/channels/WritableByteChannel;
          131  132    22                 ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
         105   106     107  Class java.lang.Exception
         109   110     111  Class java.lang.Exception
          72    98     113  Class org.jruby.exceptions.EOFError
         122   123     124  Class java.lang.Exception
         126   127     128  Class java.lang.Exception
          72    98     130  Class java.io.IOException
          72    98     132  any
         113   115     132  any
         130   132     132  any
          68   103     139  any
         113   120     139  any
         130   139     139  any
          17   104     142  any
         113   121     142  any
         130   142     142  any
         144   145     146  Class java.lang.Exception
         148   149     150  Class java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"copy_stream"}, required = 2, optional = 2, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  private static long transfer(org.jruby.runtime.ThreadContext, java.nio.channels.ReadableByteChannel, java.nio.channels.FileChannel, long, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/nio/channels/ReadableByteChannel;Ljava/nio/channels/FileChannel;JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=16, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // java.nio.channels.ReadableByteChannel from
        start local 2 // java.nio.channels.FileChannel to
        start local 3 // long length
        start local 5 // long position
         0: .line 4382
            ldc 134217728
            lstore 7 /* chunkSize */
        start local 7 // long chunkSize
         1: .line 4383
            lconst_0
            lstore 9 /* transferred */
        start local 9 // long transferred
         2: .line 4385
            aload 2 /* to */
            invokevirtual java.nio.channels.FileChannel.position:()J
            lstore 13 /* startPosition */
        start local 13 // long startPosition
         3: .line 4387
            lload 5 /* position */
            ldc -1
            lcmp
            ifeq 8
         4: .line 4388
            aload 1 /* from */
            instanceof jnr.enxio.channels.NativeSelectableChannel
            ifeq 8
         5: .line 4389
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 1 /* from */
            checkcast jnr.enxio.channels.NativeSelectableChannel
            invokeinterface jnr.enxio.channels.NativeSelectableChannel.getFD:()I
            lload 5 /* position */
            iconst_0
            invokeinterface jnr.posix.POSIX.lseek:(IJI)I
            istore 15 /* ret */
        start local 15 // int ret
         6: .line 4390
            iload 15 /* ret */
            iconst_m1
            if_icmpne 8
         7: .line 4391
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            invokeinterface jnr.posix.POSIX.errno:()I
            i2l
            invokestatic jnr.constants.platform.Errno.valueOf:(J)Ljnr/constants/platform/Errno;
            aload 1 /* from */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 15 // int ret
         8: .line 4395
      StackMap locals: org.jruby.runtime.ThreadContext java.nio.channels.ReadableByteChannel java.nio.channels.FileChannel long long long long top top long
      StackMap stack:
            lload 3 /* length */
            lconst_0
            lcmp
            ifle 16
         9: .line 4396
            goto 12
        start local 11 // long bytes
        10: .line 4397
      StackMap locals: org.jruby.runtime.ThreadContext java.nio.channels.ReadableByteChannel java.nio.channels.FileChannel long long long long long long
      StackMap stack:
            lload 9 /* transferred */
            lload 11 /* bytes */
            ladd
            lstore 9 /* transferred */
        11: .line 4398
            lload 3 /* length */
            lload 11 /* bytes */
            lsub
            lstore 3 /* length */
        end local 11 // long bytes
        12: .line 4396
      StackMap locals: org.jruby.runtime.ThreadContext java.nio.channels.ReadableByteChannel java.nio.channels.FileChannel long long long long top top long
      StackMap stack:
            aload 2 /* to */
            aload 1 /* from */
            lload 13 /* startPosition */
            lload 9 /* transferred */
            ladd
            lload 7 /* chunkSize */
            lload 3 /* length */
            invokestatic java.lang.Math.min:(JJ)J
            invokevirtual java.nio.channels.FileChannel.transferFrom:(Ljava/nio/channels/ReadableByteChannel;JJ)J
            dup2
            lstore 11 /* bytes */
        start local 11 // long bytes
        13: lconst_0
            lcmp
            ifgt 10
        14: .line 4400
            goto 18
        15: .line 4402
      StackMap locals: org.jruby.runtime.ThreadContext java.nio.channels.ReadableByteChannel java.nio.channels.FileChannel long long long long long long
      StackMap stack:
            lload 9 /* transferred */
            lload 11 /* bytes */
            ladd
            lstore 9 /* transferred */
        end local 11 // long bytes
        16: .line 4401
      StackMap locals: org.jruby.runtime.ThreadContext java.nio.channels.ReadableByteChannel java.nio.channels.FileChannel long long long long top top long
      StackMap stack:
            aload 2 /* to */
            aload 1 /* from */
            lload 13 /* startPosition */
            lload 9 /* transferred */
            ladd
            lload 7 /* chunkSize */
            invokevirtual java.nio.channels.FileChannel.transferFrom:(Ljava/nio/channels/ReadableByteChannel;JJ)J
            dup2
            lstore 11 /* bytes */
        start local 11 // long bytes
        17: lconst_0
            lcmp
            ifgt 15
        18: .line 4406
      StackMap locals: org.jruby.runtime.ThreadContext java.nio.channels.ReadableByteChannel java.nio.channels.FileChannel long long long long long long
      StackMap stack:
            aload 2 /* to */
            lload 13 /* startPosition */
            lload 9 /* transferred */
            ladd
            invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
            pop
        19: .line 4408
            lload 9 /* transferred */
            lreturn
        end local 13 // long startPosition
        end local 11 // long bytes
        end local 9 // long transferred
        end local 7 // long chunkSize
        end local 5 // long position
        end local 3 // long length
        end local 2 // java.nio.channels.FileChannel to
        end local 1 // java.nio.channels.ReadableByteChannel from
        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           from  Ljava/nio/channels/ReadableByteChannel;
            0   20     2             to  Ljava/nio/channels/FileChannel;
            0   20     3         length  J
            0   20     5       position  J
            1   20     7      chunkSize  J
            2   20     9    transferred  J
           10   12    11          bytes  J
           13   16    11          bytes  J
           17   20    11          bytes  J
            3   20    13  startPosition  J
            6    8    15            ret  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      context   
      from      
      to        
      length    
      position  

  private static long transfer(java.nio.channels.FileChannel, java.nio.channels.WritableByteChannel, long, long);
    descriptor: (Ljava/nio/channels/FileChannel;Ljava/nio/channels/WritableByteChannel;JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // java.nio.channels.FileChannel from
        start local 1 // java.nio.channels.WritableByteChannel to
        start local 2 // long remaining
        start local 4 // long position
         0: .line 4413
            ldc 134217728
            lstore 6 /* chunkSize */
        start local 6 // long chunkSize
         1: .line 4414
            lconst_0
            lstore 8 /* transferred */
        start local 8 // long transferred
         2: .line 4416
            lload 2 /* remaining */
            lconst_0
            lcmp
            ifge 11
            aload 0 /* from */
            invokevirtual java.nio.channels.FileChannel.size:()J
            lstore 2 /* remaining */
         3: .line 4417
            goto 11
         4: .line 4418
      StackMap locals: long long
      StackMap stack:
            lload 2 /* remaining */
            lload 6 /* chunkSize */
            invokestatic java.lang.Math.min:(JJ)J
            lstore 10 /* count */
        start local 10 // long count
         5: .line 4419
            aload 0 /* from */
            lload 4 /* position */
            lload 10 /* count */
            aload 1 /* to */
            invokevirtual java.nio.channels.FileChannel.transferTo:(JJLjava/nio/channels/WritableByteChannel;)J
            lstore 12 /* n */
        start local 12 // long n
         6: .line 4420
            lload 12 /* n */
            lconst_0
            lcmp
            ifne 8
         7: .line 4421
            goto 12
         8: .line 4424
      StackMap locals: long long
      StackMap stack:
            lload 4 /* position */
            lload 12 /* n */
            ladd
            lstore 4 /* position */
         9: .line 4425
            lload 2 /* remaining */
            lload 12 /* n */
            lsub
            lstore 2 /* remaining */
        10: .line 4426
            lload 8 /* transferred */
            lload 12 /* n */
            ladd
            lstore 8 /* transferred */
        end local 12 // long n
        end local 10 // long count
        11: .line 4417
      StackMap locals:
      StackMap stack:
            lload 2 /* remaining */
            lconst_0
            lcmp
            ifgt 4
        12: .line 4429
      StackMap locals:
      StackMap stack:
            lload 8 /* transferred */
            lreturn
        end local 8 // long transferred
        end local 6 // long chunkSize
        end local 4 // long position
        end local 2 // long remaining
        end local 1 // java.nio.channels.WritableByteChannel to
        end local 0 // java.nio.channels.FileChannel from
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         from  Ljava/nio/channels/FileChannel;
            0   13     1           to  Ljava/nio/channels/WritableByteChannel;
            0   13     2    remaining  J
            0   13     4     position  J
            1   13     6    chunkSize  J
            2   13     8  transferred  J
            5   11    10        count  J
            6   11    12            n  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      from       
      to         
      remaining  
      position   

  private static long transfer(org.jruby.runtime.ThreadContext, java.nio.channels.ReadableByteChannel, java.nio.channels.WritableByteChannel, long, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/nio/channels/ReadableByteChannel;Ljava/nio/channels/WritableByteChannel;JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // java.nio.channels.ReadableByteChannel from
        start local 2 // java.nio.channels.WritableByteChannel to
        start local 3 // long length
        start local 5 // long position
         0: .line 4433
            sipush 8192
            istore 7 /* chunkSize */
        start local 7 // int chunkSize
         1: .line 4434
            iload 7 /* chunkSize */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 8 /* buffer */
        start local 8 // java.nio.ByteBuffer buffer
         2: .line 4435
            lconst_0
            lstore 9 /* transferred */
        start local 9 // long transferred
         3: .line 4437
            lload 5 /* position */
            ldc -1
            lcmp
            ifeq 8
         4: .line 4438
            aload 1 /* from */
            instanceof jnr.enxio.channels.NativeSelectableChannel
            ifeq 8
         5: .line 4439
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            aload 1 /* from */
            checkcast jnr.enxio.channels.NativeSelectableChannel
            invokeinterface jnr.enxio.channels.NativeSelectableChannel.getFD:()I
            lload 5 /* position */
            iconst_0
            invokeinterface jnr.posix.POSIX.lseek:(IJI)I
            istore 11 /* ret */
        start local 11 // int ret
         6: .line 4440
            iload 11 /* ret */
            iconst_m1
            if_icmpne 8
         7: .line 4441
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
            invokeinterface jnr.posix.POSIX.errno:()I
            i2l
            invokestatic jnr.constants.platform.Errno.valueOf:(J)Ljnr/constants/platform/Errno;
            aload 1 /* from */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoFromErrno:(Ljnr/constants/platform/Errno;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 11 // int ret
         8: .line 4447
      StackMap locals: int java.nio.ByteBuffer long
      StackMap stack:
            aload 0 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.pollThreadEvents:()V
         9: .line 4449
            lload 3 /* length */
            lconst_0
            lcmp
            ifle 11
            lload 3 /* length */
            iload 7 /* chunkSize */
            i2l
            lcmp
            ifge 11
        10: .line 4451
            aload 8 /* buffer */
            lload 3 /* length */
            l2i
            invokestatic com.headius.backport9.buffer.Buffers.limitBuffer:(Ljava/nio/Buffer;I)Ljava/nio/Buffer;
            pop
        11: .line 4453
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            aload 8 /* buffer */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            i2l
            lstore 11 /* n */
        start local 11 // long n
        12: .line 4455
            lload 11 /* n */
            ldc -1
            lcmp
            ifne 13
            goto 21
        13: .line 4457
      StackMap locals: long
      StackMap stack:
            aload 8 /* buffer */
            invokestatic com.headius.backport9.buffer.Buffers.flipBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
            pop
        14: .line 4458
            aload 2 /* to */
            aload 8 /* buffer */
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            pop
        15: .line 4459
            aload 8 /* buffer */
            invokestatic com.headius.backport9.buffer.Buffers.clearBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
            pop
        16: .line 4461
            lload 9 /* transferred */
            lload 11 /* n */
            ladd
            lstore 9 /* transferred */
        17: .line 4462
            lload 3 /* length */
            lconst_0
            lcmp
            ifle 20
        18: .line 4463
            lload 3 /* length */
            lload 11 /* n */
            lsub
            lstore 3 /* length */
        19: .line 4464
            lload 3 /* length */
            lconst_0
            lcmp
            ifgt 20
            goto 21
        20: .line 4467
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            invokeinterface java.nio.channels.ReadableByteChannel.isOpen:()Z
            ifne 8
        end local 11 // long n
        21: .line 4470
      StackMap locals:
      StackMap stack:
            lload 9 /* transferred */
            lreturn
        end local 9 // long transferred
        end local 8 // java.nio.ByteBuffer buffer
        end local 7 // int chunkSize
        end local 5 // long position
        end local 3 // long length
        end local 2 // java.nio.channels.WritableByteChannel to
        end local 1 // java.nio.channels.ReadableByteChannel from
        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         from  Ljava/nio/channels/ReadableByteChannel;
            0   22     2           to  Ljava/nio/channels/WritableByteChannel;
            0   22     3       length  J
            0   22     5     position  J
            1   22     7    chunkSize  I
            2   22     8       buffer  Ljava/nio/ByteBuffer;
            3   22     9  transferred  J
            6    8    11          ret  I
           12   21    11            n  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      context   
      from      
      to        
      length    
      position  

  public static org.jruby.runtime.builtin.IRubyObject tryConvert(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=5, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 4475
            aload 2 /* arg */
            instanceof org.jruby.RubyObject
            ifeq 3
         1: .line 4476
            aload 0 /* context */
            invokestatic org.jruby.RubyIO.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
            getfield org.jruby.runtime.JavaSites$IOSites.respond_to_to_io:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 2 /* arg */
            aload 2 /* arg */
            iconst_1
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)Z
            ifeq 3
         2: .line 4477
            aload 0 /* context */
            aload 2 /* arg */
            invokestatic org.jruby.RubyIO.convertToIO:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
         4: .line 4475
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"try_convert"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      arg      

  public org.jruby.runtime.builtin.IRubyObject pread(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject len
        start local 3 // org.jruby.runtime.builtin.IRubyObject offset
         0: .line 4482
            aload 2 /* len */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            pop
         1: .line 4483
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* len */
            aload 3 /* offset */
            aconst_null
            invokevirtual org.jruby.RubyIO.pread:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject offset
        end local 2 // org.jruby.runtime.builtin.IRubyObject len
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2      len  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3   offset  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pread"})
    MethodParameters:
         Name  Flags
      context  
      len      
      offset   

  public org.jruby.runtime.builtin.IRubyObject pread(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: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=13, args_size=5
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject len
        start local 3 // org.jruby.runtime.builtin.IRubyObject offset
        start local 4 // org.jruby.runtime.builtin.IRubyObject str
         0: .line 4488
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         1: .line 4490
            aload 2 /* len */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 6 /* count */
        start local 6 // int count
         2: .line 4491
            aload 3 /* offset */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            i2l
            lstore 7 /* off */
        start local 7 // long off
         3: .line 4493
            aload 5 /* runtime */
            aload 4 /* str */
            iload 6 /* count */
            invokestatic org.jruby.util.io.EncodingUtils.setStrBuf:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/RubyString;
            astore 9 /* string */
        start local 9 // org.jruby.RubyString string
         4: .line 4494
            iload 6 /* count */
            ifne 5
            aload 9 /* string */
            areturn
         5: .line 4496
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby int long org.jruby.RubyString
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            astore 10 /* fptr */
        start local 10 // org.jruby.util.io.OpenFile fptr
         6: .line 4497
            aload 10 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkByteReadable:(Lorg/jruby/runtime/ThreadContext;)V
         7: .line 4499
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            astore 11 /* fd */
        start local 11 // org.jruby.util.io.ChannelFD fd
         8: .line 4500
            aload 10 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.checkClosed:()V
         9: .line 4502
            aload 9 /* string */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 12 /* strByteList */
        start local 12 // org.jruby.util.ByteList strByteList
        10: .line 4505
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 1 /* context */
            aload 11 /* fd */
            new org.jruby.RubyIO$7
            dup
            aload 0 /* this */
            aload 12 /* strByteList */
            iload 6 /* count */
            aload 11 /* fd */
            lload 7 /* off */
            aload 9 /* string */
            invokespecial org.jruby.RubyIO$7.<init>:(Lorg/jruby/RubyIO;Lorg/jruby/util/ByteList;ILorg/jruby/util/io/ChannelFD;JLorg/jruby/RubyString;)V
            invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
        11: areturn
        12: .line 4548
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby int long org.jruby.RubyString org.jruby.util.io.OpenFile org.jruby.util.io.ChannelFD org.jruby.util.ByteList
      StackMap stack: java.lang.InterruptedException
            pop
        13: .line 4549
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "IO operation interrupted"
            invokevirtual org.jruby.Ruby.newConcurrencyError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 12 // org.jruby.util.ByteList strByteList
        end local 11 // org.jruby.util.io.ChannelFD fd
        end local 10 // org.jruby.util.io.OpenFile fptr
        end local 9 // org.jruby.RubyString string
        end local 7 // long off
        end local 6 // int count
        end local 5 // org.jruby.Ruby runtime
        end local 4 // org.jruby.runtime.builtin.IRubyObject str
        end local 3 // org.jruby.runtime.builtin.IRubyObject offset
        end local 2 // org.jruby.runtime.builtin.IRubyObject len
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/jruby/RubyIO;
            0   14     1      context  Lorg/jruby/runtime/ThreadContext;
            0   14     2          len  Lorg/jruby/runtime/builtin/IRubyObject;
            0   14     3       offset  Lorg/jruby/runtime/builtin/IRubyObject;
            0   14     4          str  Lorg/jruby/runtime/builtin/IRubyObject;
            1   14     5      runtime  Lorg/jruby/Ruby;
            2   14     6        count  I
            3   14     7          off  J
            4   14     9       string  Lorg/jruby/RubyString;
            6   14    10         fptr  Lorg/jruby/util/io/OpenFile;
            8   14    11           fd  Lorg/jruby/util/io/ChannelFD;
           10   14    12  strByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pread"})
    MethodParameters:
         Name  Flags
      context  
      len      
      offset   
      str      

  public org.jruby.runtime.builtin.IRubyObject pwrite(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: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=12, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject str
        start local 3 // org.jruby.runtime.builtin.IRubyObject offset
         0: .line 4559
            aload 2 /* str */
            instanceof org.jruby.RubyString
            ifeq 3
         1: .line 4560
            aload 2 /* str */
            checkcast org.jruby.RubyString
            astore 6 /* string */
        start local 6 // org.jruby.RubyString string
         2: .line 4561
            goto 4
        end local 6 // org.jruby.RubyString string
         3: .line 4562
      StackMap locals:
      StackMap stack:
            aload 2 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 6 /* string */
        start local 6 // org.jruby.RubyString string
         4: .line 4565
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top top org.jruby.RubyString
      StackMap stack:
            aload 3 /* offset */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            lstore 7 /* off */
        start local 7 // long off
         5: .line 4567
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.GetWriteIO:()Lorg/jruby/RubyIO;
            astore 9 /* io */
        start local 9 // org.jruby.RubyIO io
         6: .line 4568
            aload 9 /* io */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            astore 4 /* fptr */
        start local 4 // org.jruby.util.io.OpenFile fptr
         7: .line 4569
            aload 4 /* fptr */
            aload 1 /* context */
            invokevirtual org.jruby.util.io.OpenFile.checkWritable:(Lorg/jruby/runtime/ThreadContext;)V
         8: .line 4570
            aload 4 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            astore 10 /* fd */
        start local 10 // org.jruby.util.io.ChannelFD fd
         9: .line 4572
            aload 6 /* string */
            invokevirtual org.jruby.RubyString.newFrozen:()Lorg/jruby/RubyString;
            astore 5 /* buf */
        start local 5 // org.jruby.RubyString buf
        10: .line 4574
            aload 5 /* buf */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 11 /* strByteList */
        start local 11 // org.jruby.util.ByteList strByteList
        11: .line 4577
            aload 1 /* context */
            invokevirtual org.jruby.runtime.ThreadContext.getThread:()Lorg/jruby/RubyThread;
            aload 1 /* context */
            aload 10 /* fd */
            new org.jruby.RubyIO$8
            dup
            aload 0 /* this */
            aload 11 /* strByteList */
            aload 10 /* fd */
            lload 7 /* off */
            invokespecial org.jruby.RubyIO$8.<init>:(Lorg/jruby/RubyIO;Lorg/jruby/util/ByteList;Lorg/jruby/util/io/ChannelFD;J)V
            invokevirtual org.jruby.RubyThread.executeTask:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/RubyThread$Task;)Ljava/lang/Object;
            checkcast org.jruby.runtime.builtin.IRubyObject
        12: areturn
        13: .line 4608
      StackMap locals: org.jruby.RubyIO org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.util.io.OpenFile org.jruby.RubyString org.jruby.RubyString long org.jruby.RubyIO org.jruby.util.io.ChannelFD org.jruby.util.ByteList
      StackMap stack: java.lang.InterruptedException
            pop
        14: .line 4609
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "IO operation interrupted"
            invokevirtual org.jruby.Ruby.newConcurrencyError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 11 // org.jruby.util.ByteList strByteList
        end local 10 // org.jruby.util.io.ChannelFD fd
        end local 9 // org.jruby.RubyIO io
        end local 7 // long off
        end local 6 // org.jruby.RubyString string
        end local 5 // org.jruby.RubyString buf
        end local 4 // org.jruby.util.io.OpenFile fptr
        end local 3 // org.jruby.runtime.builtin.IRubyObject offset
        end local 2 // org.jruby.runtime.builtin.IRubyObject str
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Lorg/jruby/RubyIO;
            0   15     1      context  Lorg/jruby/runtime/ThreadContext;
            0   15     2          str  Lorg/jruby/runtime/builtin/IRubyObject;
            0   15     3       offset  Lorg/jruby/runtime/builtin/IRubyObject;
            7   15     4         fptr  Lorg/jruby/util/io/OpenFile;
           10   15     5          buf  Lorg/jruby/RubyString;
            2    3     6       string  Lorg/jruby/RubyString;
            4   15     6       string  Lorg/jruby/RubyString;
            5   15     7          off  J
            6   15     9           io  Lorg/jruby/RubyIO;
            9   15    10           fd  Lorg/jruby/util/io/ChannelFD;
           11   15    11  strByteList  Lorg/jruby/util/ByteList;
      Exception table:
        from    to  target  type
          11    12      13  Class java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"pwrite"})
    MethodParameters:
         Name  Flags
      context  
      str      
      offset   

  public void addBlockingThread(org.jruby.RubyThread);
    descriptor: (Lorg/jruby/RubyThread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.RubyThread thread
         0: .line 4619
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            astore 2 /* fptr */
        start local 2 // org.jruby.util.io.OpenFile fptr
         1: .line 4620
            aload 2 /* fptr */
            ifnull 2
            aload 2 /* fptr */
            aload 1 /* thread */
            invokevirtual org.jruby.util.io.OpenFile.addBlockingThread:(Lorg/jruby/RubyThread;)V
         2: .line 4621
      StackMap locals: org.jruby.util.io.OpenFile
      StackMap stack:
            return
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // org.jruby.RubyThread thread
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/RubyIO;
            0    3     1  thread  Lorg/jruby/RubyThread;
            1    3     2    fptr  Lorg/jruby/util/io/OpenFile;
    MethodParameters:
        Name  Flags
      thread  

  public void removeBlockingThread(org.jruby.RubyThread);
    descriptor: (Lorg/jruby/RubyThread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.RubyThread thread
         0: .line 4629
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            astore 2 /* fptr */
        start local 2 // org.jruby.util.io.OpenFile fptr
         1: .line 4630
            aload 2 /* fptr */
            ifnull 2
            aload 2 /* fptr */
            aload 1 /* thread */
            invokevirtual org.jruby.util.io.OpenFile.removeBlockingThread:(Lorg/jruby/RubyThread;)V
         2: .line 4631
      StackMap locals: org.jruby.util.io.OpenFile
      StackMap stack:
            return
        end local 2 // org.jruby.util.io.OpenFile fptr
        end local 1 // org.jruby.RubyThread thread
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/RubyIO;
            0    3     1  thread  Lorg/jruby/RubyThread;
            1    3     2    fptr  Lorg/jruby/util/io/OpenFile;
    MethodParameters:
        Name  Flags
      thread  

  protected org.jruby.util.io.IOOptions updateIOOptionsFromOptions(org.jruby.runtime.ThreadContext, org.jruby.RubyHash, org.jruby.util.io.IOOptions);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;Lorg/jruby/util/io/IOOptions;)Lorg/jruby/util/io/IOOptions;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyHash options
        start local 3 // org.jruby.util.io.IOOptions ioOptions
         0: .line 4637
            aload 2 /* options */
            ifnull 1
            aload 2 /* options */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 2
      StackMap locals:
      StackMap stack:
         1: aload 3 /* ioOptions */
            areturn
         2: .line 4639
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         3: .line 4641
            aload 2 /* options */
            aload 4 /* runtime */
            ldc "mode"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.fastARef:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* mode */
        start local 5 // org.jruby.runtime.builtin.IRubyObject mode
         4: .line 4642
            aload 5 /* mode */
            ifnull 6
         5: .line 4643
            aload 0 /* this */
            aload 5 /* mode */
            invokevirtual org.jruby.RubyIO.parseIOOptions:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/util/io/IOOptions;
            astore 3 /* ioOptions */
         6: .line 4650
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 4 /* runtime */
            ldc "binmode"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            astore 6 /* binmode */
        start local 6 // org.jruby.RubySymbol binmode
         7: .line 4651
            aload 2 /* options */
            aload 6 /* binmode */
            invokevirtual org.jruby.RubyHash.fastARef:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyIO.isTrue:(Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 9
         8: .line 4652
            aload 4 /* runtime */
            aload 3 /* ioOptions */
            getstatic org.jruby.util.io.ModeFlags.BINARY:I
            invokestatic org.jruby.RubyIO.newIOOptions:(Lorg/jruby/Ruby;Lorg/jruby/util/io/IOOptions;I)Lorg/jruby/util/io/IOOptions;
            astore 3 /* ioOptions */
         9: .line 4659
      StackMap locals: org.jruby.RubySymbol
      StackMap stack:
            aload 2 /* options */
            aload 6 /* binmode */
            invokevirtual org.jruby.RubyHash.fastARef:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyIO.isTrue:(Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 11
        10: .line 4660
            aload 4 /* runtime */
            aload 3 /* ioOptions */
            getstatic org.jruby.util.io.ModeFlags.BINARY:I
            invokestatic org.jruby.RubyIO.newIOOptions:(Lorg/jruby/Ruby;Lorg/jruby/util/io/IOOptions;I)Lorg/jruby/util/io/IOOptions;
            astore 3 /* ioOptions */
        11: .line 4663
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            aload 4 /* runtime */
            ldc "textmode"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.fastARef:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyIO.isTrue:(Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 13
        12: .line 4664
            aload 4 /* runtime */
            aload 3 /* ioOptions */
            ldc 268435456
            invokestatic org.jruby.RubyIO.newIOOptions:(Lorg/jruby/Ruby;Lorg/jruby/util/io/IOOptions;I)Lorg/jruby/util/io/IOOptions;
            astore 3 /* ioOptions */
        13: .line 4671
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            aload 4 /* runtime */
            ldc "open_args"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.fastARef:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* open_args */
        start local 7 // org.jruby.runtime.builtin.IRubyObject open_args
        14: .line 4672
            aload 7 /* open_args */
            ifnull 29
        15: .line 4673
            aload 7 /* open_args */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            astore 8 /* openArgs */
        start local 8 // org.jruby.RubyArray openArgs
        16: .line 4675
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        17: goto 28
        18: .line 4676
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.RubyArray int
      StackMap stack:
            aload 8 /* openArgs */
            iload 9 /* i */
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 10 /* arg */
        start local 10 // org.jruby.runtime.builtin.IRubyObject arg
        19: .line 4678
            aload 10 /* arg */
            instanceof org.jruby.RubyString
            ifeq 22
        20: .line 4679
            aload 4 /* runtime */
            aload 10 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            invokestatic org.jruby.RubyIO.newIOOptions:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/util/io/IOOptions;
            astore 3 /* ioOptions */
        21: .line 4680
            goto 27
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        22: aload 10 /* arg */
            instanceof org.jruby.RubyFixnum
            ifeq 25
        23: .line 4681
            aload 4 /* runtime */
            aload 10 /* arg */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            invokestatic org.jruby.RubyIO.newIOOptions:(Lorg/jruby/Ruby;J)Lorg/jruby/util/io/IOOptions;
            astore 3 /* ioOptions */
        24: .line 4682
            goto 27
      StackMap locals:
      StackMap stack:
        25: aload 10 /* arg */
            instanceof org.jruby.RubyHash
            ifeq 27
        26: .line 4683
            aload 0 /* this */
            aload 1 /* context */
            aload 10 /* arg */
            checkcast org.jruby.RubyHash
            aload 3 /* ioOptions */
            invokevirtual org.jruby.RubyIO.updateIOOptionsFromOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;Lorg/jruby/util/io/IOOptions;)Lorg/jruby/util/io/IOOptions;
            astore 3 /* ioOptions */
        end local 10 // org.jruby.runtime.builtin.IRubyObject arg
        27: .line 4675
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 9 /* i */
            aload 8 /* openArgs */
            invokevirtual org.jruby.RubyArray.size:()I
            if_icmplt 18
        end local 9 // int i
        end local 8 // org.jruby.RubyArray openArgs
        29: .line 4688
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* options */
            aconst_null
            invokestatic org.jruby.util.io.EncodingUtils.ioExtractEncodingOption:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/io/IOEncodable;Lorg/jruby/runtime/builtin/IRubyObject;[I)Z
            pop
        30: .line 4690
            aload 3 /* ioOptions */
            areturn
        end local 7 // org.jruby.runtime.builtin.IRubyObject open_args
        end local 6 // org.jruby.RubySymbol binmode
        end local 5 // org.jruby.runtime.builtin.IRubyObject mode
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.util.io.IOOptions ioOptions
        end local 2 // org.jruby.RubyHash options
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   31     0       this  Lorg/jruby/RubyIO;
            0   31     1    context  Lorg/jruby/runtime/ThreadContext;
            0   31     2    options  Lorg/jruby/RubyHash;
            0   31     3  ioOptions  Lorg/jruby/util/io/IOOptions;
            3   31     4    runtime  Lorg/jruby/Ruby;
            4   31     5       mode  Lorg/jruby/runtime/builtin/IRubyObject;
            7   31     6    binmode  Lorg/jruby/RubySymbol;
           14   31     7  open_args  Lorg/jruby/runtime/builtin/IRubyObject;
           16   29     8   openArgs  Lorg/jruby/RubyArray;
           17   29     9          i  I
           19   27    10        arg  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
           Name  Flags
      context    
      options    
      ioOptions  

  private static boolean isTrue(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject val
         0: .line 4693
            aload 0 /* val */
            ifnull 1
            aload 0 /* val */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.runtime.builtin.IRubyObject val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   val  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      val   

  public static void checkExecOptions(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject options
         0: .line 4729
            aload 0 /* options */
            instanceof org.jruby.RubyHash
            ifeq 5
         1: .line 4730
            aload 0 /* options */
            checkcast org.jruby.RubyHash
            astore 1 /* opts */
        start local 1 // org.jruby.RubyHash opts
         2: .line 4731
            aload 1 /* opts */
            invokevirtual org.jruby.RubyHash.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 2 /* context */
        start local 2 // org.jruby.runtime.ThreadContext context
         3: .line 4733
            aload 2 /* context */
            aload 1 /* opts */
            invokestatic org.jruby.RubyIO.checkValidSpawnOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;)V
         4: .line 4734
            aload 2 /* context */
            aload 1 /* opts */
            getstatic org.jruby.RubyIO.UNSUPPORTED_SPAWN_OPTIONS:[Ljava/lang/String;
            ldc "unsupported exec option"
            invokestatic org.jruby.RubyIO.checkUnsupportedOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;[Ljava/lang/String;Ljava/lang/String;)V
        end local 2 // org.jruby.runtime.ThreadContext context
        end local 1 // org.jruby.RubyHash opts
         5: .line 4736
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.runtime.builtin.IRubyObject options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  options  Lorg/jruby/runtime/builtin/IRubyObject;
            2    5     1     opts  Lorg/jruby/RubyHash;
            3    5     2  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      options  

  public static void checkSpawnOptions(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject options
         0: .line 4740
            aload 0 /* options */
            instanceof org.jruby.RubyHash
            ifeq 5
         1: .line 4741
            aload 0 /* options */
            checkcast org.jruby.RubyHash
            astore 1 /* opts */
        start local 1 // org.jruby.RubyHash opts
         2: .line 4742
            aload 1 /* opts */
            invokevirtual org.jruby.RubyHash.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 2 /* context */
        start local 2 // org.jruby.runtime.ThreadContext context
         3: .line 4744
            aload 2 /* context */
            aload 1 /* opts */
            invokestatic org.jruby.RubyIO.checkValidSpawnOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;)V
         4: .line 4745
            aload 2 /* context */
            aload 1 /* opts */
            getstatic org.jruby.RubyIO.UNSUPPORTED_SPAWN_OPTIONS:[Ljava/lang/String;
            ldc "unsupported spawn option"
            invokestatic org.jruby.RubyIO.checkUnsupportedOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;[Ljava/lang/String;Ljava/lang/String;)V
        end local 2 // org.jruby.runtime.ThreadContext context
        end local 1 // org.jruby.RubyHash opts
         5: .line 4747
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.runtime.builtin.IRubyObject options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  options  Lorg/jruby/runtime/builtin/IRubyObject;
            2    5     1     opts  Lorg/jruby/RubyHash;
            3    5     2  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      options  

  public static void checkPopenOptions(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject options
         0: .line 4751
            aload 0 /* options */
            instanceof org.jruby.RubyHash
            ifeq 4
         1: .line 4752
            aload 0 /* options */
            checkcast org.jruby.RubyHash
            astore 1 /* opts */
        start local 1 // org.jruby.RubyHash opts
         2: .line 4753
            aload 1 /* opts */
            invokevirtual org.jruby.RubyHash.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 2 /* context */
        start local 2 // org.jruby.runtime.ThreadContext context
         3: .line 4755
            aload 2 /* context */
            aload 1 /* opts */
            getstatic org.jruby.RubyIO.UNSUPPORTED_SPAWN_OPTIONS:[Ljava/lang/String;
            ldc "unsupported popen option"
            invokestatic org.jruby.RubyIO.checkUnsupportedOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;[Ljava/lang/String;Ljava/lang/String;)V
        end local 2 // org.jruby.runtime.ThreadContext context
        end local 1 // org.jruby.RubyHash opts
         4: .line 4757
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.runtime.builtin.IRubyObject options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  options  Lorg/jruby/runtime/builtin/IRubyObject;
            2    4     1     opts  Lorg/jruby/RubyHash;
            3    4     2  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      options  

  static void checkUnsupportedOptions(org.jruby.runtime.ThreadContext, org.jruby.RubyHash, java.lang.String[], java.lang.String);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;[Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyHash opts
        start local 2 // java.lang.String[] unsupported
        start local 3 // java.lang.String error
         0: .line 4760
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 4761
            aload 2 /* unsupported */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 6
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyHash java.lang.String[] java.lang.String org.jruby.Ruby top int int java.lang.String[]
      StackMap stack:
         2: aload 8
            iload 6
            aaload
            astore 5 /* key */
        start local 5 // java.lang.String key
         3: .line 4762
            aload 1 /* opts */
            aload 4 /* runtime */
            aload 5 /* key */
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokevirtual org.jruby.RubyHash.fastARef:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            ifnull 5
         4: .line 4763
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            new java.lang.StringBuilder
            dup
            aload 3 /* error */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
        end local 5 // java.lang.String key
         5: .line 4761
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         6: iload 6
            iload 7
            if_icmplt 2
         7: .line 4766
            return
        end local 4 // org.jruby.Ruby runtime
        end local 3 // java.lang.String error
        end local 2 // java.lang.String[] unsupported
        end local 1 // org.jruby.RubyHash opts
        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         opts  Lorg/jruby/RubyHash;
            0    8     2  unsupported  [Ljava/lang/String;
            0    8     3        error  Ljava/lang/String;
            1    8     4      runtime  Lorg/jruby/Ruby;
            3    5     5          key  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      context      
      opts         
      unsupported  
      error        

  static void checkValidSpawnOptions(org.jruby.runtime.ThreadContext, org.jruby.RubyHash);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyHash opts
         0: .line 4769
            aload 1 /* opts */
            invokevirtual org.jruby.RubyHash.directKeySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyHash top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* opt */
        start local 2 // java.lang.Object opt
         2: .line 4770
            aload 2 /* opt */
            instanceof org.jruby.RubySymbol
            ifeq 5
         3: .line 4771
            getstatic org.jruby.RubyIO.ALL_SPAWN_OPTIONS:Ljava/util/Set;
            aload 2 /* opt */
            checkcast org.jruby.RubySymbol
            invokevirtual org.jruby.RubySymbol.idString:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 8
         4: .line 4772
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "wrong exec option symbol: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* opt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 4775
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyHash java.lang.Object java.util.Iterator
      StackMap stack:
            aload 2 /* opt */
            instanceof org.jruby.RubyString
            ifeq 8
         6: .line 4776
            getstatic org.jruby.RubyIO.ALL_SPAWN_OPTIONS:Ljava/util/Set;
            aload 2 /* opt */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 4777
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "wrong exec option: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* opt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // java.lang.Object opt
         8: .line 4769
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyHash top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 4781
            return
        end local 1 // org.jruby.RubyHash opts
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  context  Lorg/jruby/runtime/ThreadContext;
            0   10     1     opts  Lorg/jruby/RubyHash;
            2    8     2      opt  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      opts     

  public static void obliterateProcess(java.lang.Process);
    descriptor: (Ljava/lang/Process;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Process process
         0: .line 4795
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: .line 4796
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            astore 2 /* waitLock */
        start local 2 // java.lang.Object waitLock
         2: .line 4801
      StackMap locals: int java.lang.Object
      StackMap stack:
            iload 1 /* i */
            sipush 1000
            if_icmplt 4
         3: .line 4802
            return
         4: .line 4806
      StackMap locals:
      StackMap stack:
            aload 0 /* process */
            invokevirtual java.lang.Process.destroy:()V
         5: .line 4811
            aload 0 /* process */
            invokevirtual java.lang.Process.exitValue:()I
            pop
         6: .line 4812
            goto 17
      StackMap locals:
      StackMap stack: java.lang.IllegalThreadStateException
         7: pop
         8: .line 4814
            iinc 1 /* i */ 1
         9: .line 4815
            aload 2 /* waitLock */
            dup
            astore 3
            monitorenter
        10: .line 4816
            aload 2 /* waitLock */
            lconst_1
            invokevirtual java.lang.Object.wait:(J)V
        11: goto 13
      StackMap locals: java.lang.Process int java.lang.Object java.lang.Object
      StackMap stack: java.lang.InterruptedException
        12: pop
        13: .line 4815
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        14: goto 2
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 3
            monitorexit
        16: athrow
        17: .line 4823
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object waitLock
        end local 1 // int i
        end local 0 // java.lang.Process process
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0   process  Ljava/lang/Process;
            1   18     1         i  I
            2   18     2  waitLock  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.IllegalThreadStateException
          10    11      12  Class java.lang.InterruptedException
          10    14      15  any
          15    16      15  any
    MethodParameters:
         Name  Flags
      process  

  public static org.jruby.util.io.ModeFlags newModeFlags(org.jruby.Ruby, long);
    descriptor: (Lorg/jruby/Ruby;J)Lorg/jruby/util/io/ModeFlags;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // long mode
         0: .line 4826
            aload 0 /* runtime */
            lload 1 /* mode */
            l2i
            invokestatic org.jruby.RubyIO.newModeFlags:(Lorg/jruby/Ruby;I)Lorg/jruby/util/io/ModeFlags;
            areturn
        end local 1 // long mode
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1     mode  J
    MethodParameters:
         Name  Flags
      runtime  
      mode     

  public static org.jruby.util.io.ModeFlags newModeFlags(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/util/io/ModeFlags;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // int mode
         0: .line 4831
            new org.jruby.util.io.ModeFlags
            dup
            iload 1 /* mode */
            i2l
            invokespecial org.jruby.util.io.ModeFlags.<init>:(J)V
         1: areturn
         2: .line 4832
      StackMap locals:
      StackMap stack: org.jruby.util.io.InvalidValueException
            pop
         3: .line 4833
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 1 // int mode
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1     mode  I
      Exception table:
        from    to  target  type
           0     1       2  Class org.jruby.util.io.InvalidValueException
    MethodParameters:
         Name  Flags
      runtime  
      mode     

  public static org.jruby.util.io.ModeFlags newModeFlags(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/util/io/ModeFlags;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String mode
         0: .line 4839
            new org.jruby.util.io.ModeFlags
            dup
            aload 1 /* mode */
            invokespecial org.jruby.util.io.ModeFlags.<init>:(Ljava/lang/String;)V
         1: areturn
         2: .line 4840
      StackMap locals:
      StackMap stack: org.jruby.util.io.InvalidValueException
            pop
         3: .line 4842
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "illegal access mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 1 // java.lang.String mode
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1     mode  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class org.jruby.util.io.InvalidValueException
    MethodParameters:
         Name  Flags
      runtime  
      mode     

  public static org.jruby.util.io.IOOptions newIOOptions(org.jruby.Ruby, org.jruby.util.io.ModeFlags);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/io/ModeFlags;)Lorg/jruby/util/io/IOOptions;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.io.ModeFlags modeFlags
         0: .line 4847
            new org.jruby.util.io.IOOptions
            dup
            aload 1 /* modeFlags */
            invokespecial org.jruby.util.io.IOOptions.<init>:(Lorg/jruby/util/io/ModeFlags;)V
            areturn
        end local 1 // org.jruby.util.io.ModeFlags modeFlags
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0    runtime  Lorg/jruby/Ruby;
            0    1     1  modeFlags  Lorg/jruby/util/io/ModeFlags;
    MethodParameters:
           Name  Flags
      runtime    
      modeFlags  

  public static org.jruby.util.io.IOOptions newIOOptions(org.jruby.Ruby, long);
    descriptor: (Lorg/jruby/Ruby;J)Lorg/jruby/util/io/IOOptions;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // long mode
         0: .line 4851
            aload 0 /* runtime */
            lload 1 /* mode */
            l2i
            invokestatic org.jruby.RubyIO.newIOOptions:(Lorg/jruby/Ruby;I)Lorg/jruby/util/io/IOOptions;
            areturn
        end local 1 // long mode
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1     mode  J
    MethodParameters:
         Name  Flags
      runtime  
      mode     

  public static org.jruby.util.io.IOOptions newIOOptions(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/util/io/IOOptions;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // int mode
         0: .line 4856
            new org.jruby.util.io.ModeFlags
            dup
            iload 1 /* mode */
            i2l
            invokespecial org.jruby.util.io.ModeFlags.<init>:(J)V
            astore 2 /* modeFlags */
        start local 2 // org.jruby.util.io.ModeFlags modeFlags
         1: .line 4857
            new org.jruby.util.io.IOOptions
            dup
            aload 2 /* modeFlags */
            invokespecial org.jruby.util.io.IOOptions.<init>:(Lorg/jruby/util/io/ModeFlags;)V
         2: areturn
        end local 2 // org.jruby.util.io.ModeFlags modeFlags
         3: .line 4858
      StackMap locals:
      StackMap stack: org.jruby.util.io.InvalidValueException
            pop
         4: .line 4859
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 1 // int mode
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0    runtime  Lorg/jruby/Ruby;
            0    5     1       mode  I
            1    3     2  modeFlags  Lorg/jruby/util/io/ModeFlags;
      Exception table:
        from    to  target  type
           0     2       3  Class org.jruby.util.io.InvalidValueException
    MethodParameters:
         Name  Flags
      runtime  
      mode     

  public static org.jruby.util.io.IOOptions newIOOptions(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/util/io/IOOptions;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String mode
         0: .line 4865
            new org.jruby.util.io.IOOptions
            dup
            aload 0 /* runtime */
            aload 1 /* mode */
            invokespecial org.jruby.util.io.IOOptions.<init>:(Lorg/jruby/Ruby;Ljava/lang/String;)V
         1: areturn
         2: .line 4866
      StackMap locals:
      StackMap stack: org.jruby.util.io.InvalidValueException
            pop
         3: .line 4868
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "illegal access mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 1 // java.lang.String mode
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1     mode  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class org.jruby.util.io.InvalidValueException
    MethodParameters:
         Name  Flags
      runtime  
      mode     

  public static org.jruby.util.io.IOOptions newIOOptions(org.jruby.Ruby, org.jruby.util.io.IOOptions, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/io/IOOptions;I)Lorg/jruby/util/io/IOOptions;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.io.IOOptions oldFlags
        start local 2 // int orOflags
         0: .line 4874
            new org.jruby.util.io.IOOptions
            dup
            new org.jruby.util.io.ModeFlags
            dup
            aload 1 /* oldFlags */
            invokevirtual org.jruby.util.io.IOOptions.getModeFlags:()Lorg/jruby/util/io/ModeFlags;
            invokevirtual org.jruby.util.io.ModeFlags.getFlags:()I
            iload 2 /* orOflags */
            ior
            i2l
            invokespecial org.jruby.util.io.ModeFlags.<init>:(J)V
            invokespecial org.jruby.util.io.IOOptions.<init>:(Lorg/jruby/util/io/ModeFlags;)V
         1: areturn
         2: .line 4875
      StackMap locals:
      StackMap stack: org.jruby.util.io.InvalidValueException
            pop
         3: .line 4876
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // int orOflags
        end local 1 // org.jruby.util.io.IOOptions oldFlags
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   runtime  Lorg/jruby/Ruby;
            0    4     1  oldFlags  Lorg/jruby/util/io/IOOptions;
            0    4     2  orOflags  I
      Exception table:
        from    to  target  type
           0     1       2  Class org.jruby.util.io.InvalidValueException
    MethodParameters:
          Name  Flags
      runtime   
      oldFlags  
      orOflags  

  public org.jruby.runtime.builtin.IRubyObject readline(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 4882
            aload 2 /* args */
            arraylength
            ifne 1
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyIO.readline:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokevirtual org.jruby.RubyIO.readline:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         2: areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/RubyIO;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      args     

  public void setEnc2(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jcodings.Encoding enc2
         0: .line 4887
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aload 1 /* enc2 */
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc2:Lorg/jcodings/Encoding;
         1: .line 4888
            return
        end local 1 // org.jcodings.Encoding enc2
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/RubyIO;
            0    2     1  enc2  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      enc2  

  public void setEnc(org.jcodings.Encoding);
    descriptor: (Lorg/jcodings/Encoding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jcodings.Encoding enc
         0: .line 4892
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aload 1 /* enc */
            putfield org.jruby.util.io.IOEncodable$ConvConfig.enc:Lorg/jcodings/Encoding;
         1: .line 4893
            return
        end local 1 // org.jcodings.Encoding enc
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/RubyIO;
            0    2     1   enc  Lorg/jcodings/Encoding;
    MethodParameters:
      Name  Flags
      enc   

  public void setEcflags(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // int ecflags
         0: .line 4897
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            iload 1 /* ecflags */
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
         1: .line 4898
            return
        end local 1 // int ecflags
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/RubyIO;
            0    2     1  ecflags  I
    MethodParameters:
         Name  Flags
      ecflags  

  public int getEcflags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 4902
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecflags:I
            ireturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public void setEcopts(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.builtin.IRubyObject ecopts
         0: .line 4907
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            aload 1 /* ecopts */
            putfield org.jruby.util.io.IOEncodable$ConvConfig.ecopts:Lorg/jruby/runtime/builtin/IRubyObject;
         1: .line 4908
            return
        end local 1 // org.jruby.runtime.builtin.IRubyObject ecopts
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/RubyIO;
            0    2     1  ecopts  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
        Name  Flags
      ecopts  

  public org.jruby.runtime.builtin.IRubyObject getEcopts();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 4912
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            getfield org.jruby.util.io.OpenFile.encs:Lorg/jruby/util/io/IOEncodable$ConvConfig;
            getfield org.jruby.util.io.IOEncodable$ConvConfig.ecopts:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public void setBOM(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // boolean bom
         0: .line 4917
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            iload 1 /* bom */
            invokevirtual org.jruby.util.io.OpenFile.setBOM:(Z)V
         1: .line 4918
            return
        end local 1 // boolean bom
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/RubyIO;
            0    2     1   bom  Z
    MethodParameters:
      Name  Flags
      bom   

  public boolean getBOM();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 4922
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isBOM:()Z
            ireturn
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyIO;

  public <T> T toJava(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyIO this
        start local 1 // java.lang.Class target
         0: .line 4927
            aload 1 /* target */
            ldc Ljava/io/InputStream;
            if_acmpne 3
         1: .line 4928
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.util.io.OpenFile.checkReadable:(Lorg/jruby/runtime/ThreadContext;)V
         2: .line 4929
            aload 1 /* target */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getInStream:()Ljava/io/InputStream;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         3: .line 4931
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            ldc Ljava/io/OutputStream;
            if_acmpne 6
         4: .line 4932
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.util.io.OpenFile.checkWritable:(Lorg/jruby/runtime/ThreadContext;)V
         5: .line 4933
            aload 1 /* target */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOutStream:()Ljava/io/OutputStream;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         6: .line 4935
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* target */
            invokespecial org.jruby.RubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class target
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/jruby/RubyIO;
            0    7     1  target  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
        Name  Flags
      target  

  protected org.jruby.RubyIO setAscii8bitBinmode();
    descriptor: ()Lorg/jruby/RubyIO;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 4942
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getOpenFileChecked:()Lorg/jruby/util/io/OpenFile;
            astore 1 /* fptr */
        start local 1 // org.jruby.util.io.OpenFile fptr
         1: .line 4943
            aload 1 /* fptr */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.util.io.OpenFile.ascii8bitBinmode:(Lorg/jruby/Ruby;)V
         2: .line 4945
            aload 0 /* this */
            areturn
        end local 1 // org.jruby.util.io.OpenFile fptr
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/RubyIO;
            1    3     1  fptr  Lorg/jruby/util/io/OpenFile;

  private static boolean isDash(org.jruby.RubyString);
    descriptor: (Lorg/jruby/RubyString;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubyString str
         0: .line 4949
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.size:()I
            iconst_1
            if_icmpne 1
            aload 0 /* str */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            iconst_0
            invokevirtual org.jruby.util.ByteList.get:(I)I
            bipush 45
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.RubyString str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   str  Lorg/jruby/RubyString;
    MethodParameters:
      Name  Flags
      str   

  public final org.jruby.util.io.OpenFile MakeOpenFile();
    descriptor: ()Lorg/jruby/util/io/OpenFile;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jruby.RubyIO this
         0: .line 4953
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.getRuntime:()Lorg/jruby/Ruby;
            astore 1 /* runtime */
        start local 1 // org.jruby.Ruby runtime
         1: .line 4954
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            ifnull 5
         2: .line 4955
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            invokevirtual org.jruby.RubyIO.rbIoClose:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         3: .line 4956
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokestatic org.jruby.RubyIO.rb_io_fptr_finalize:(Lorg/jruby/Ruby;Lorg/jruby/util/io/OpenFile;)I
            pop
         4: .line 4957
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
         5: .line 4959
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            new org.jruby.util.io.OpenFile
            dup
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokespecial org.jruby.util.io.OpenFile.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;)V
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
         6: .line 4960
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.Ruby.addInternalFinalizer:(Lorg/jruby/Finalizable;)V
         7: .line 4961
            aload 0 /* this */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            areturn
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/RubyIO;
            1    8     1  runtime  Lorg/jruby/Ruby;

  private static int rb_io_fptr_finalize(org.jruby.Ruby, org.jruby.util.io.OpenFile);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/io/OpenFile;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.util.io.OpenFile fptr
         0: .line 4965
            aload 1 /* fptr */
            ifnonnull 1
            iconst_0
            ireturn
         1: .line 4966
      StackMap locals:
      StackMap stack:
            aload 1 /* fptr */
            aconst_null
            invokevirtual org.jruby.util.io.OpenFile.setPath:(Ljava/lang/String;)V
         2: .line 4967
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.fd:()Lorg/jruby/util/io/ChannelFD;
            ifnull 4
         3: .line 4968
            aload 1 /* fptr */
            aload 0 /* runtime */
            iconst_1
            invokevirtual org.jruby.util.io.OpenFile.cleanup:(Lorg/jruby/Ruby;Z)V
         4: .line 4969
      StackMap locals:
      StackMap stack:
            aload 1 /* fptr */
            aconst_null
            putfield org.jruby.util.io.OpenFile.write_lock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
         5: .line 4970
            aload 1 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            ifnull 7
         6: .line 4971
            aload 1 /* fptr */
            getfield org.jruby.util.io.OpenFile.rbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aconst_null
            putfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
         7: .line 4973
      StackMap locals:
      StackMap stack:
            aload 1 /* fptr */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            getfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
            ifnull 9
         8: .line 4974
            aload 1 /* fptr */
            getfield org.jruby.util.io.OpenFile.wbuf:Lorg/jruby/util/io/OpenFile$Buffer;
            aconst_null
            putfield org.jruby.util.io.OpenFile$Buffer.ptr:[B
         9: .line 4976
      StackMap locals:
      StackMap stack:
            aload 1 /* fptr */
            invokevirtual org.jruby.util.io.OpenFile.clearCodeConversion:()V
        10: .line 4977
            iconst_1
            ireturn
        end local 1 // org.jruby.util.io.OpenFile fptr
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  runtime  Lorg/jruby/Ruby;
            0   11     1     fptr  Lorg/jruby/util/io/OpenFile;
    MethodParameters:
         Name  Flags
      runtime  
      fptr     

  private static org.jruby.runtime.JavaSites$IOSites sites(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$IOSites;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.ThreadContext context
         0: .line 4981
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.sites:Lorg/jruby/runtime/JavaSites;
            getfield org.jruby.runtime.JavaSites.IO:Lorg/jruby/runtime/JavaSites$IOSites;
            areturn
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject getline(org.jruby.Ruby, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.util.ByteList separator
         0: .line 4986
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* runtime */
            aload 2 /* separator */
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            ldc -1
            invokevirtual org.jruby.RubyIO.getline:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;J)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.util.ByteList separator
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/RubyIO;
            0    1     1    runtime  Lorg/jruby/Ruby;
            0    1     2  separator  Lorg/jruby/util/ByteList;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      runtime    
      separator  

  public org.jruby.runtime.builtin.IRubyObject getline(org.jruby.Ruby, org.jruby.util.ByteList, long);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;J)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.util.ByteList separator
        start local 3 // long limit
         0: .line 4991
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* runtime */
            aload 2 /* separator */
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            lload 3 /* limit */
            invokevirtual org.jruby.RubyIO.getline:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;J)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // long limit
        end local 2 // org.jruby.util.ByteList separator
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/RubyIO;
            0    1     1    runtime  Lorg/jruby/Ruby;
            0    1     2  separator  Lorg/jruby/util/ByteList;
            0    1     3      limit  J
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      runtime    
      separator  
      limit      

  public org.jruby.runtime.builtin.IRubyObject getline(org.jruby.runtime.ThreadContext, org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/ByteList;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.util.ByteList separator
         0: .line 4996
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* separator */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            ldc -1
            invokevirtual org.jruby.RubyIO.getline:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;J)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.util.ByteList separator
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/RubyIO;
            0    1     1    context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  separator  Lorg/jruby/util/ByteList;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      context    
      separator  

  public org.jruby.runtime.builtin.IRubyObject getline(org.jruby.runtime.ThreadContext, org.jruby.util.ByteList, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/ByteList;J)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.util.ByteList separator
        start local 3 // long limit
         0: .line 5001
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* separator */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            lload 3 /* limit */
            invokevirtual org.jruby.RubyIO.getline:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;J)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // long limit
        end local 2 // org.jruby.util.ByteList separator
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/jruby/RubyIO;
            0    1     1    context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  separator  Lorg/jruby/util/ByteList;
            0    1     3      limit  J
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      context    
      separator  
      limit      

  public org.jruby.runtime.builtin.IRubyObject lines19(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 5006
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.RubyIO.lines:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  final
      block    

  public org.jruby.runtime.builtin.IRubyObject each_char19(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 5011
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.RubyIO.each_char:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  final
      block    final

  public org.jruby.runtime.builtin.IRubyObject chars19(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.Block block
         0: .line 5016
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* block */
            invokevirtual org.jruby.RubyIO.chars:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  final
      block    final

  public org.jruby.RubyArray readlines19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 5021
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            invokevirtual org.jruby.RubyIO.readlines:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyIO;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      args     

  public void <init>(org.jruby.Ruby, org.jruby.util.io.STDIO);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/util/io/STDIO;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.util.io.STDIO stdio
         0: .line 5026
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 5028
            aconst_null
            astore 3 /* tmp */
        start local 3 // org.jruby.RubyIO tmp
         2: .line 5029
            invokestatic org.jruby.RubyIO.$SWITCH_TABLE$org$jruby$util$io$STDIO:()[I
            aload 2 /* stdio */
            invokevirtual org.jruby.util.io.STDIO.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 3
                    2: 5
                    3: 7
              default: 8
          }
         3: .line 5031
      StackMap locals: org.jruby.RubyIO org.jruby.Ruby org.jruby.util.io.STDIO org.jruby.RubyIO
      StackMap stack:
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIn:()Ljava/io/InputStream;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIn:()Ljava/io/InputStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
            iconst_1
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            ldc "<STDIN>"
            invokestatic org.jruby.RubyIO.prepStdio:(Lorg/jruby/Ruby;Ljava/io/InputStream;Ljava/nio/channels/Channel;ILorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/RubyIO;
            astore 3 /* tmp */
         4: .line 5032
            goto 8
         5: .line 5034
      StackMap locals:
      StackMap stack:
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getOut:()Ljava/io/PrintStream;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getOut:()Ljava/io/PrintStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
            iconst_2
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            ldc "<STDOUT>"
            invokestatic org.jruby.RubyIO.prepStdio:(Lorg/jruby/Ruby;Ljava/io/OutputStream;Ljava/nio/channels/Channel;ILorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/RubyIO;
            astore 3 /* tmp */
         6: .line 5035
            goto 8
         7: .line 5037
      StackMap locals:
      StackMap stack:
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getErr:()Ljava/io/PrintStream;
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getErr:()Ljava/io/PrintStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
            bipush 10
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            ldc "<STDERR>"
            invokestatic org.jruby.RubyIO.prepStdio:(Lorg/jruby/Ruby;Ljava/io/OutputStream;Ljava/nio/channels/Channel;ILorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/RubyIO;
            astore 3 /* tmp */
         8: .line 5041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* tmp */
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
         9: .line 5042
            aload 3 /* tmp */
            aconst_null
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
        10: .line 5043
            return
        end local 3 // org.jruby.RubyIO tmp
        end local 2 // org.jruby.util.io.STDIO stdio
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/jruby/RubyIO;
            0   11     1  runtime  Lorg/jruby/Ruby;
            0   11     2    stdio  Lorg/jruby/util/io/STDIO;
            2   11     3      tmp  Lorg/jruby/RubyIO;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      runtime  
      stdio    

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass, org.jruby.util.ShellLauncher$POpenProcess, org.jruby.RubyHash, org.jruby.util.io.IOOptions);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/jruby/util/ShellLauncher$POpenProcess;Lorg/jruby/RubyHash;Lorg/jruby/util/io/IOOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass cls
        start local 3 // org.jruby.util.ShellLauncher$POpenProcess process
        start local 4 // org.jruby.RubyHash options
        start local 5 // org.jruby.util.io.IOOptions ioOptions
         0: .line 5047
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* cls */
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 5049
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 4 /* options */
            aload 5 /* ioOptions */
            invokevirtual org.jruby.RubyIO.updateIOOptionsFromOptions:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;Lorg/jruby/util/io/IOOptions;)Lorg/jruby/util/io/IOOptions;
            astore 5 /* ioOptions */
         2: .line 5051
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.RubyIO.MakeOpenFile:()Lorg/jruby/util/io/OpenFile;
            putfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
         3: .line 5053
            aload 0 /* this */
            aload 1 /* runtime */
            aload 5 /* ioOptions */
            invokevirtual org.jruby.util.io.IOOptions.getModeFlags:()Lorg/jruby/util/io/ModeFlags;
            aload 3 /* process */
            invokevirtual org.jruby.RubyIO.setupPopen:(Lorg/jruby/Ruby;Lorg/jruby/util/io/ModeFlags;Lorg/jruby/util/ShellLauncher$POpenProcess;)V
         4: .line 5054
            return
        end local 5 // org.jruby.util.io.IOOptions ioOptions
        end local 4 // org.jruby.RubyHash options
        end local 3 // org.jruby.util.ShellLauncher$POpenProcess process
        end local 2 // org.jruby.RubyClass cls
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/jruby/RubyIO;
            0    5     1    runtime  Lorg/jruby/Ruby;
            0    5     2        cls  Lorg/jruby/RubyClass;
            0    5     3    process  Lorg/jruby/util/ShellLauncher$POpenProcess;
            0    5     4    options  Lorg/jruby/RubyHash;
            0    5     5  ioOptions  Lorg/jruby/util/io/IOOptions;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      runtime    
      cls        
      process    
      options    
      ioOptions  

  public static org.jruby.util.io.ModeFlags getIOModes(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/util/io/ModeFlags;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String modesString
         0: .line 5058
            aload 0 /* runtime */
            aload 1 /* modesString */
            invokestatic org.jruby.RubyIO.newModeFlags:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/util/io/ModeFlags;
            areturn
        end local 1 // java.lang.String modesString
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      runtime  Lorg/jruby/Ruby;
            0    1     1  modesString  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      runtime      
      modesString  

  public static int getIOModesIntFromString(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String modesString
         0: .line 5064
            aload 1 /* modesString */
            invokestatic org.jruby.util.io.ModeFlags.getOFlagsFromString:(Ljava/lang/String;)I
         1: ireturn
         2: .line 5065
      StackMap locals:
      StackMap stack: org.jruby.util.io.InvalidValueException
            pop
         3: .line 5066
            aload 0 /* runtime */
            ldc "illegal access mode"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 1 // java.lang.String modesString
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0      runtime  Lorg/jruby/Ruby;
            0    4     1  modesString  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class org.jruby.util.io.InvalidValueException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      runtime      
      modesString  

  public static org.jruby.runtime.builtin.IRubyObject writeStatic(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=3, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        start local 3 // org.jruby.runtime.Block unusedBlock
         0: .line 5072
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* argv */
            invokestatic org.jruby.RubyIO.write:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block unusedBlock
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      context  Lorg/jruby/runtime/ThreadContext;
            0    1     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2         argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  unusedBlock  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      context      
      recv         
      argv         
      unusedBlock  

  public static org.jruby.runtime.builtin.IRubyObject popen3(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=13, locals=13, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 5078
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 5081
            aload 2 /* args */
            arraylength
            ifle 3
            aload 2 /* args */
            aload 2 /* args */
            arraylength
            iconst_1
            isub
            aaload
            instanceof org.jruby.RubyHash
            ifeq 3
         2: .line 5082
            aload 2 /* args */
            aload 2 /* args */
            arraylength
            iconst_1
            isub
            invokestatic org.jruby.util.ArraySupport.newCopy:([Lorg/jruby/runtime/builtin/IRubyObject;I)[Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* args */
         3: .line 5085
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* context */
            aload 2 /* args */
            invokestatic org.jruby.RubyIO.popenSpecial:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO$POpenTuple;
            astore 5 /* tuple */
        start local 5 // org.jruby.RubyIO$POpenTuple tuple
         4: .line 5086
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.process:Ljava/lang/Process;
            invokestatic org.jruby.util.ShellLauncher.getPidFromProcess:(Ljava/lang/Process;)J
            lstore 6 /* pid */
        start local 6 // long pid
         5: .line 5089
            iconst_1
            anewarray org.jruby.RubyThread
            astore 8 /* waitThread */
        start local 8 // org.jruby.RubyThread[] waitThread
         6: .line 5090
            aload 8 /* waitThread */
            iconst_0
            new org.jruby.RubyThread
            dup
         7: .line 5091
            aload 4 /* runtime */
         8: .line 5092
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getProcess:()Lorg/jruby/RubyModule;
            ldc "WaitThread"
            invokevirtual org.jruby.RubyModule.getConstantAt:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyClass
         9: .line 5093
            new org.jruby.RubyIO$9
            dup
            aload 8 /* waitThread */
            aload 4 /* runtime */
            lload 6 /* pid */
            aload 5 /* tuple */
            invokespecial org.jruby.RubyIO$9.<init>:([Lorg/jruby/RubyThread;Lorg/jruby/Ruby;JLorg/jruby/RubyIO$POpenTuple;)V
            invokespecial org.jruby.RubyThread.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Runnable;)V
        10: .line 5090
            aastore
        11: .line 5134
            aload 4 /* runtime */
            iconst_4
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
        12: .line 5135
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.output:Lorg/jruby/RubyIO;
            aastore
            dup
            iconst_1
        13: .line 5136
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.input:Lorg/jruby/RubyIO;
            aastore
            dup
            iconst_2
        14: .line 5137
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.error:Lorg/jruby/RubyIO;
            aastore
            dup
            iconst_3
        15: .line 5138
            aload 8 /* waitThread */
            iconst_0
            aaload
            aastore
        16: .line 5134
            invokestatic org.jruby.RubyArray.newArrayLight:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 9 /* yieldArgs */
        start local 9 // org.jruby.RubyArray yieldArgs
        17: .line 5140
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 28
        18: .line 5142
            aload 3 /* block */
            aload 0 /* context */
            aload 9 /* yieldArgs */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 11
        19: .line 5144
            aload 5 /* tuple */
            invokestatic org.jruby.RubyIO.cleanupPOpen:(Lorg/jruby/RubyIO$POpenTuple;)V
        20: .line 5146
            aload 8 /* waitThread */
            iconst_0
            aaload
            getstatic org.jruby.runtime.builtin.IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyThread.join:([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 12 /* status */
        start local 12 // org.jruby.runtime.builtin.IRubyObject status
        21: .line 5147
            aload 0 /* context */
            aload 12 /* status */
            invokevirtual org.jruby.runtime.ThreadContext.setLastExitStatus:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        end local 12 // org.jruby.runtime.builtin.IRubyObject status
        22: .line 5142
            aload 11
            areturn
        23: .line 5143
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.RubyIO$POpenTuple long org.jruby.RubyThread[] org.jruby.RubyArray
      StackMap stack: java.lang.Throwable
            astore 10
        24: .line 5144
            aload 5 /* tuple */
            invokestatic org.jruby.RubyIO.cleanupPOpen:(Lorg/jruby/RubyIO$POpenTuple;)V
        25: .line 5146
            aload 8 /* waitThread */
            iconst_0
            aaload
            getstatic org.jruby.runtime.builtin.IRubyObject.NULL_ARRAY:[Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyThread.join:([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 12 /* status */
        start local 12 // org.jruby.runtime.builtin.IRubyObject status
        26: .line 5147
            aload 0 /* context */
            aload 12 /* status */
            invokevirtual org.jruby.runtime.ThreadContext.setLastExitStatus:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        end local 12 // org.jruby.runtime.builtin.IRubyObject status
        27: .line 5148
            aload 10
            athrow
        28: .line 5151
      StackMap locals:
      StackMap stack:
            aload 9 /* yieldArgs */
            areturn
        end local 9 // org.jruby.RubyArray yieldArgs
        end local 8 // org.jruby.RubyThread[] waitThread
        end local 6 // long pid
        end local 5 // org.jruby.RubyIO$POpenTuple tuple
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0     context  Lorg/jruby/runtime/ThreadContext;
            0   29     1        recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   29     2        args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   29     3       block  Lorg/jruby/runtime/Block;
            1   29     4     runtime  Lorg/jruby/Ruby;
            4   29     5       tuple  Lorg/jruby/RubyIO$POpenTuple;
            5   29     6         pid  J
            6   29     8  waitThread  [Lorg/jruby/RubyThread;
           17   29     9   yieldArgs  Lorg/jruby/RubyArray;
           21   22    12      status  Lorg/jruby/runtime/builtin/IRubyObject;
           26   27    12      status  Lorg/jruby/runtime/builtin/IRubyObject;
      Exception table:
        from    to  target  type
          18    19      23  any
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      org.jruby.anno.JRubyMethod(name = {"popen3"}, rest = true, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  public static org.jruby.runtime.builtin.IRubyObject popen4(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=7, locals=9, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 5156
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 5159
            aload 0 /* context */
            aload 2 /* args */
            invokestatic org.jruby.RubyIO.popenSpecial:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO$POpenTuple;
            astore 5 /* tuple */
        start local 5 // org.jruby.RubyIO$POpenTuple tuple
         2: .line 5161
            aload 4 /* runtime */
            iconst_4
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
         3: .line 5162
            aload 4 /* runtime */
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.process:Ljava/lang/Process;
            invokestatic org.jruby.util.ShellLauncher.getPidFromProcess:(Ljava/lang/Process;)J
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            aastore
            dup
            iconst_1
         4: .line 5163
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.output:Lorg/jruby/RubyIO;
            aastore
            dup
            iconst_2
         5: .line 5164
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.input:Lorg/jruby/RubyIO;
            aastore
            dup
            iconst_3
         6: .line 5165
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.error:Lorg/jruby/RubyIO;
            aastore
         7: .line 5161
            invokestatic org.jruby.RubyArray.newArrayLight:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 6 /* yieldArgs */
        start local 6 // org.jruby.RubyArray yieldArgs
         8: .line 5167
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 17
         9: .line 5169
            aload 3 /* block */
            aload 0 /* context */
            aload 6 /* yieldArgs */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8
        10: .line 5171
            aload 5 /* tuple */
            invokestatic org.jruby.RubyIO.cleanupPOpen:(Lorg/jruby/RubyIO$POpenTuple;)V
        11: .line 5173
            aload 0 /* context */
            aload 4 /* runtime */
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.process:Ljava/lang/Process;
            invokevirtual java.lang.Process.waitFor:()I
            bipush 8
            ishl
            i2l
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.process:Ljava/lang/Process;
            invokestatic org.jruby.util.ShellLauncher.getPidFromProcess:(Ljava/lang/Process;)J
            invokestatic org.jruby.RubyProcess$RubyStatus.newProcessStatus:(Lorg/jruby/Ruby;JJ)Lorg/jruby/RubyProcess$RubyStatus;
            invokevirtual org.jruby.runtime.ThreadContext.setLastExitStatus:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        12: .line 5169
            aload 8
            areturn
        13: .line 5170
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.RubyIO$POpenTuple org.jruby.RubyArray
      StackMap stack: java.lang.Throwable
            astore 7
        14: .line 5171
            aload 5 /* tuple */
            invokestatic org.jruby.RubyIO.cleanupPOpen:(Lorg/jruby/RubyIO$POpenTuple;)V
        15: .line 5173
            aload 0 /* context */
            aload 4 /* runtime */
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.process:Ljava/lang/Process;
            invokevirtual java.lang.Process.waitFor:()I
            bipush 8
            ishl
            i2l
            aload 5 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.process:Ljava/lang/Process;
            invokestatic org.jruby.util.ShellLauncher.getPidFromProcess:(Ljava/lang/Process;)J
            invokestatic org.jruby.RubyProcess$RubyStatus.newProcessStatus:(Lorg/jruby/Ruby;JJ)Lorg/jruby/RubyProcess$RubyStatus;
            invokevirtual org.jruby.runtime.ThreadContext.setLastExitStatus:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        16: .line 5174
            aload 7
            athrow
        17: .line 5176
      StackMap locals:
      StackMap stack:
            aload 6 /* yieldArgs */
        18: areturn
        end local 6 // org.jruby.RubyArray yieldArgs
        end local 5 // org.jruby.RubyIO$POpenTuple tuple
        19: .line 5177
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby
      StackMap stack: java.lang.InterruptedException
            pop
        20: .line 5178
            aload 4 /* runtime */
            ldc "unexpected interrupt"
            invokevirtual org.jruby.Ruby.newThreadError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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       recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   21     2       args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   21     3      block  Lorg/jruby/runtime/Block;
            1   21     4    runtime  Lorg/jruby/Ruby;
            2   19     5      tuple  Lorg/jruby/RubyIO$POpenTuple;
            8   19     6  yieldArgs  Lorg/jruby/RubyArray;
      Exception table:
        from    to  target  type
           9    10      13  any
           1    12      19  Class java.lang.InterruptedException
          13    18      19  Class java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  private static void cleanupPOpen(org.jruby.RubyIO$POpenTuple);
    descriptor: (Lorg/jruby/RubyIO$POpenTuple;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyIO$POpenTuple tuple
         0: .line 5184
            aload 0 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.input:Lorg/jruby/RubyIO;
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isOpen:()Z
            ifeq 4
         1: .line 5186
            aload 0 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.input:Lorg/jruby/RubyIO;
            invokevirtual org.jruby.RubyIO.close:()V
         2: .line 5187
            goto 4
      StackMap locals:
      StackMap stack: org.jruby.exceptions.RaiseException
         3: pop
         4: .line 5189
      StackMap locals:
      StackMap stack:
            aload 0 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.output:Lorg/jruby/RubyIO;
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isOpen:()Z
            ifeq 8
         5: .line 5191
            aload 0 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.output:Lorg/jruby/RubyIO;
            invokevirtual org.jruby.RubyIO.close:()V
         6: .line 5192
            goto 8
      StackMap locals:
      StackMap stack: org.jruby.exceptions.RaiseException
         7: pop
         8: .line 5194
      StackMap locals:
      StackMap stack:
            aload 0 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.error:Lorg/jruby/RubyIO;
            getfield org.jruby.RubyIO.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isOpen:()Z
            ifeq 12
         9: .line 5196
            aload 0 /* tuple */
            getfield org.jruby.RubyIO$POpenTuple.error:Lorg/jruby/RubyIO;
            invokevirtual org.jruby.RubyIO.close:()V
        10: .line 5197
            goto 12
      StackMap locals:
      StackMap stack: org.jruby.exceptions.RaiseException
        11: pop
        12: .line 5199
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.RubyIO$POpenTuple tuple
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0  tuple  Lorg/jruby/RubyIO$POpenTuple;
      Exception table:
        from    to  target  type
           1     2       3  Class org.jruby.exceptions.RaiseException
           5     6       7  Class org.jruby.exceptions.RaiseException
           9    10      11  Class org.jruby.exceptions.RaiseException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      tuple  

  public static org.jruby.RubyIO$POpenTuple popenSpecial(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO$POpenTuple;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 5214
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 5217
            aload 2 /* runtime */
            aload 1 /* args */
            iconst_0
            invokestatic org.jruby.util.ShellLauncher.popen3:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/util/ShellLauncher$POpenProcess;
            astore 3 /* process */
        start local 3 // org.jruby.util.ShellLauncher$POpenProcess process
         2: .line 5218
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getInput:()Ljava/nio/channels/FileChannel;
            ifnull 4
         3: .line 5219
            new org.jruby.RubyIO
            dup
            aload 2 /* runtime */
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getInput:()Ljava/nio/channels/FileChannel;
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)V
            goto 5
         4: .line 5220
      StackMap locals: org.jruby.Ruby org.jruby.util.ShellLauncher$POpenProcess
      StackMap stack:
            new org.jruby.RubyIO
            dup
            aload 2 /* runtime */
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getInputStream:()Ljava/io/InputStream;
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;)V
         5: .line 5218
      StackMap locals:
      StackMap stack: org.jruby.RubyIO
            astore 4 /* input */
        start local 4 // org.jruby.RubyIO input
         6: .line 5221
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getOutput:()Ljava/nio/channels/FileChannel;
            ifnull 8
         7: .line 5222
            new org.jruby.RubyIO
            dup
            aload 2 /* runtime */
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getOutput:()Ljava/nio/channels/FileChannel;
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)V
            goto 9
         8: .line 5223
      StackMap locals: org.jruby.RubyIO
      StackMap stack:
            new org.jruby.RubyIO
            dup
            aload 2 /* runtime */
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getOutputStream:()Ljava/io/OutputStream;
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/io/OutputStream;)V
         9: .line 5221
      StackMap locals:
      StackMap stack: org.jruby.RubyIO
            astore 5 /* output */
        start local 5 // org.jruby.RubyIO output
        10: .line 5224
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getError:()Ljava/nio/channels/FileChannel;
            ifnull 12
        11: .line 5225
            new org.jruby.RubyIO
            dup
            aload 2 /* runtime */
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getError:()Ljava/nio/channels/FileChannel;
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)V
            goto 13
        12: .line 5226
      StackMap locals: org.jruby.RubyIO
      StackMap stack:
            new org.jruby.RubyIO
            dup
            aload 2 /* runtime */
            aload 3 /* process */
            invokevirtual org.jruby.util.ShellLauncher$POpenProcess.getErrorStream:()Ljava/io/InputStream;
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;)V
        13: .line 5224
      StackMap locals:
      StackMap stack: org.jruby.RubyIO
            astore 6 /* error */
        start local 6 // org.jruby.RubyIO error
        14: .line 5229
            aload 4 /* input */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            aload 3 /* process */
            invokevirtual org.jruby.util.io.OpenFile.setProcess:(Ljava/lang/Process;)V
        15: .line 5230
            aload 5 /* output */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            aload 3 /* process */
            invokevirtual org.jruby.util.io.OpenFile.setProcess:(Ljava/lang/Process;)V
        16: .line 5231
            aload 6 /* error */
            invokevirtual org.jruby.RubyIO.getOpenFile:()Lorg/jruby/util/io/OpenFile;
            aload 3 /* process */
            invokevirtual org.jruby.util.io.OpenFile.setProcess:(Ljava/lang/Process;)V
        17: .line 5234
            aload 4 /* input */
            iconst_1
            putfield org.jruby.RubyIO.popenSpecial:Z
        18: .line 5235
            aload 5 /* output */
            iconst_1
            putfield org.jruby.RubyIO.popenSpecial:Z
        19: .line 5236
            aload 6 /* error */
            iconst_1
            putfield org.jruby.RubyIO.popenSpecial:Z
        20: .line 5246
            new org.jruby.RubyIO$POpenTuple
            dup
            aload 4 /* input */
            aload 5 /* output */
            aload 6 /* error */
            aload 3 /* process */
            invokespecial org.jruby.RubyIO$POpenTuple.<init>:(Lorg/jruby/RubyIO;Lorg/jruby/RubyIO;Lorg/jruby/RubyIO;Ljava/lang/Process;)V
        21: areturn
        end local 6 // org.jruby.RubyIO error
        end local 5 // org.jruby.RubyIO output
        end local 4 // org.jruby.RubyIO input
        end local 3 // org.jruby.util.ShellLauncher$POpenProcess process
        22: .line 5249
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        23: .line 5250
            aload 2 /* runtime */
            aload 3 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.io.IOException e
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0  context  Lorg/jruby/runtime/ThreadContext;
            0   24     1     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   24     2  runtime  Lorg/jruby/Ruby;
            2   22     3  process  Lorg/jruby/util/ShellLauncher$POpenProcess;
            6   22     4    input  Lorg/jruby/RubyIO;
           10   22     5   output  Lorg/jruby/RubyIO;
           14   22     6    error  Lorg/jruby/RubyIO;
           23   24     3        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1    21      22  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject doWriteNonblock(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.RubyIO this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        start local 3 // boolean useException
         0: .line 5256
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* argv */
            invokevirtual org.jruby.RubyIO.write_nonblock:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // boolean useException
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] argv
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyIO this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/jruby/RubyIO;
            0    1     1       context  Lorg/jruby/runtime/ThreadContext;
            0    1     2          argv  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  useException  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      context       
      argv          
      useException  

  public static org.jruby.runtime.builtin.IRubyObject select_static(org.jruby.runtime.ThreadContext, org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 5261
            aload 0 /* context */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            aload 2 /* args */
            invokestatic org.jruby.RubyIO.select:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1  runtime  Lorg/jruby/Ruby;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      runtime  
      args     

  public static org.jruby.RubyArray checkExecEnv(org.jruby.runtime.ThreadContext, org.jruby.RubyHash);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;)Lorg/jruby/RubyArray;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyHash hash
         0: .line 5266
            aload 0 /* context */
            aload 1 /* hash */
            aconst_null
            invokestatic org.jruby.util.io.PopenExecutor.checkExecEnv:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;Lorg/jruby/util/io/PopenExecutor$ExecArg;)Lorg/jruby/RubyArray;
            areturn
        end local 1 // org.jruby.RubyHash hash
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     hash  Lorg/jruby/RubyHash;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      hash     

  public static org.jruby.runtime.builtin.IRubyObject ioOpen(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, 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;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject filename
        start local 2 // org.jruby.runtime.builtin.IRubyObject vmode
        start local 3 // org.jruby.runtime.builtin.IRubyObject vperm
        start local 4 // org.jruby.runtime.builtin.IRubyObject opt
         0: .line 5271
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getIO:()Lorg/jruby/RubyClass;
            aload 1 /* filename */
            aload 2 /* vmode */
            aload 3 /* vperm */
            aload 4 /* opt */
            invokestatic org.jruby.RubyIO.ioOpen:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject opt
        end local 3 // org.jruby.runtime.builtin.IRubyObject vperm
        end local 2 // org.jruby.runtime.builtin.IRubyObject vmode
        end local 1 // org.jruby.runtime.builtin.IRubyObject filename
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lorg/jruby/runtime/ThreadContext;
            0    1     1  filename  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     vmode  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     vperm  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4       opt  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      context   
      filename  
      vmode     
      vperm     
      opt       

  public static org.jruby.runtime.builtin.IRubyObject read19(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=4, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block unusedBlock
         0: .line 5276
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* args */
            aload 3 /* unusedBlock */
            invokestatic org.jruby.RubyIO.read:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.Block unusedBlock
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      context  Lorg/jruby/runtime/ThreadContext;
            0    1     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  unusedBlock  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      context      
      recv         
      args         
      unusedBlock  

  static int[] $SWITCH_TABLE$org$jruby$util$io$STDIO();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 120
            getstatic org.jruby.RubyIO.$SWITCH_TABLE$org$jruby$util$io$STDIO:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.jruby.util.io.STDIO.values:()[Lorg/jruby/util/io/STDIO;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.jruby.util.io.STDIO.ERR:Lorg/jruby/util/io/STDIO;
            invokevirtual org.jruby.util.io.STDIO.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.jruby.util.io.STDIO.IN:Lorg/jruby/util/io/STDIO;
            invokevirtual org.jruby.util.io.STDIO.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.jruby.util.io.STDIO.OUT:Lorg/jruby/util/io/STDIO;
            invokevirtual org.jruby.util.io.STDIO.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic org.jruby.RubyIO.$SWITCH_TABLE$org$jruby$util$io$STDIO:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
SourceFile: "RubyIO.java"
NestMembers:
  org.jruby.RubyIO$1  org.jruby.RubyIO$2  org.jruby.RubyIO$3  org.jruby.RubyIO$4  org.jruby.RubyIO$5  org.jruby.RubyIO$6  org.jruby.RubyIO$7  org.jruby.RubyIO$8  org.jruby.RubyIO$9  org.jruby.RubyIO$POpenTuple  org.jruby.RubyIO$RubyPOpen  org.jruby.RubyIO$Sysopen
InnerClasses:
  public final ArgsFileData = org.jruby.RubyArgsFile$ArgsFileData of org.jruby.RubyArgsFile
  org.jruby.RubyIO$1
  org.jruby.RubyIO$2
  org.jruby.RubyIO$3
  org.jruby.RubyIO$4
  org.jruby.RubyIO$5
  org.jruby.RubyIO$6
  org.jruby.RubyIO$7
  org.jruby.RubyIO$8
  org.jruby.RubyIO$9
  private POpenTuple = org.jruby.RubyIO$POpenTuple of org.jruby.RubyIO
  private final RubyPOpen = org.jruby.RubyIO$RubyPOpen of org.jruby.RubyIO
  public Sysopen = org.jruby.RubyIO$Sysopen of org.jruby.RubyIO
  public final JavaClassKindOf = org.jruby.RubyModule$JavaClassKindOf of org.jruby.RubyModule
  public RubyStatus = org.jruby.RubyProcess$RubyStatus of org.jruby.RubyProcess
  public abstract Task = org.jruby.RubyThread$Task of org.jruby.RubyThread
  public final ID = org.jruby.common.IRubyWarnings$ID of org.jruby.common.IRubyWarnings
  public CheckedSites = org.jruby.runtime.JavaSites$CheckedSites of org.jruby.runtime.JavaSites
  public IOSites = org.jruby.runtime.JavaSites$IOSites of org.jruby.runtime.JavaSites
  public IOReadableByteChannel = org.jruby.util.IOChannel$IOReadableByteChannel of org.jruby.util.IOChannel
  public IOWritableByteChannel = org.jruby.util.IOChannel$IOWritableByteChannel of org.jruby.util.IOChannel
  public POpenProcess = org.jruby.util.ShellLauncher$POpenProcess of org.jruby.util.ShellLauncher
  public abstract Callback = org.jruby.util.io.Getline$Callback of org.jruby.util.io.Getline
  public ConvConfig = org.jruby.util.io.IOEncodable$ConvConfig of org.jruby.util.io.IOEncodable
  public Buffer = org.jruby.util.io.OpenFile$Buffer of org.jruby.util.io.OpenFile
  public abstract Finalizer = org.jruby.util.io.OpenFile$Finalizer of org.jruby.util.io.OpenFile
  public ExecArg = org.jruby.util.io.PopenExecutor$ExecArg of org.jruby.util.io.PopenExecutor
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyClass(name = {"IO"}, include = {"Enumerable"})