public class com.oracle.truffle.js.codec.BinaryDecoder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.js.codec.BinaryDecoder
  super_class: java.lang.Object
{
  private java.nio.ByteBuffer buffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 55
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            aload 0 /* this */
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            putfield com.oracle.truffle.js.codec.BinaryDecoder.buffer:Ljava/nio/ByteBuffer;
         2: .line 57
            return
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/truffle/js/codec/BinaryDecoder;
            0    3     1  buffer  Ljava/nio/ByteBuffer;
    MethodParameters:
        Name  Flags
      buffer  

  private int getU1();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 60
            aload 0 /* this */
            getfield com.oracle.truffle.js.codec.BinaryDecoder.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.get:()B
            invokestatic java.lang.Byte.toUnsignedInt:(B)I
            ireturn
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/codec/BinaryDecoder;

  private long getSV();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 68
            lconst_0
            lstore 1 /* result */
        start local 1 // long result
         1: .line 69
            iconst_0
            istore 3 /* shift */
        start local 3 // int shift
         2: .line 72
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getU1:()I
            i2l
            lstore 4 /* b */
        start local 4 // long b
         3: .line 73
            lload 1 /* result */
            lload 4 /* b */
            ldc 127
            land
            iload 3 /* shift */
            lshl
            lor
            lstore 1 /* result */
         4: .line 74
            iinc 3 /* shift */ 7
         5: .line 75
            lload 4 /* b */
            ldc 128
            land
            lconst_0
            lcmp
            ifne 2
         6: .line 77
            lload 4 /* b */
            ldc 64
            land
            lconst_0
            lcmp
            ifeq 8
            iload 3 /* shift */
            bipush 64
            if_icmpge 8
         7: .line 78
            lload 1 /* result */
            ldc -1
            iload 3 /* shift */
            lshl
            lor
            lstore 1 /* result */
         8: .line 80
      StackMap locals: long
      StackMap stack:
            lload 1 /* result */
            lreturn
        end local 4 // long b
        end local 3 // int shift
        end local 1 // long result
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lcom/oracle/truffle/js/codec/BinaryDecoder;
            1    9     1  result  J
            2    9     3   shift  I
            3    9     4       b  J

  public int getInt();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 87
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getSV:()J
            l2i
            ireturn
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/codec/BinaryDecoder;

  private long getUV();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 95
            lconst_0
            lstore 1 /* result */
        start local 1 // long result
         1: .line 96
            iconst_0
            istore 3 /* shift */
        start local 3 // int shift
         2: .line 99
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getU1:()I
            i2l
            lstore 4 /* b */
        start local 4 // long b
         3: .line 100
            lload 1 /* result */
            lload 4 /* b */
            ldc 127
            land
            iload 3 /* shift */
            lshl
            lor
            lstore 1 /* result */
         4: .line 101
            iinc 3 /* shift */ 7
         5: .line 102
            lload 4 /* b */
            ldc 128
            land
            lconst_0
            lcmp
            ifne 2
         6: .line 104
            lload 1 /* result */
            lreturn
        end local 4 // long b
        end local 3 // int shift
        end local 1 // long result
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/js/codec/BinaryDecoder;
            1    7     1  result  J
            2    7     3   shift  I
            3    7     4       b  J

  public int getUInt();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 112
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getUV:()J
            l2i
            ireturn
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/codec/BinaryDecoder;

  public long getLong();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 116
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getSV:()J
            lreturn
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/codec/BinaryDecoder;

  public java.lang.String getUTF8();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 120
            new java.lang.String
            dup
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getByteArray:()[B
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            areturn
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/codec/BinaryDecoder;

  public byte[] getByteArray();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 124
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getUInt:()I
            istore 1 /* size */
        start local 1 // int size
         1: .line 125
            iload 1 /* size */
            newarray 8
            astore 2 /* array */
        start local 2 // byte[] array
         2: .line 126
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 127
      StackMap locals: int byte[] int
      StackMap stack:
            aload 2 /* array */
            iload 3 /* i */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getU1:()I
            i2b
            bastore
         5: .line 126
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            iload 1 /* size */
            if_icmplt 4
        end local 3 // int i
         7: .line 129
            aload 2 /* array */
            areturn
        end local 2 // byte[] array
        end local 1 // int size
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/oracle/truffle/js/codec/BinaryDecoder;
            1    8     1   size  I
            2    8     2  array  [B
            3    7     3      i  I

  public java.math.BigInteger getBigInteger();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 133
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            astore 1 /* result */
        start local 1 // java.math.BigInteger result
         1: .line 134
            iconst_0
            istore 2 /* shift */
        start local 2 // int shift
         2: .line 137
      StackMap locals: java.math.BigInteger int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getU1:()I
            i2l
            lstore 3 /* b */
        start local 3 // long b
         3: .line 138
            aload 1 /* result */
            lload 3 /* b */
            ldc 127
            land
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            iload 2 /* shift */
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.or:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* result */
         4: .line 139
            iinc 2 /* shift */ 7
         5: .line 140
            lload 3 /* b */
            ldc 128
            land
            lconst_0
            lcmp
            ifne 2
         6: .line 142
            lload 3 /* b */
            ldc 64
            land
            lconst_0
            lcmp
            ifeq 8
         7: .line 143
            aload 1 /* result */
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 1 /* result */
         8: .line 145
      StackMap locals: long
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 3 // long b
        end local 2 // int shift
        end local 1 // java.math.BigInteger result
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lcom/oracle/truffle/js/codec/BinaryDecoder;
            1    9     1  result  Ljava/math/BigInteger;
            2    9     2   shift  I
            3    9     3       b  J

  public double getDouble();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 149
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getInt64:()J
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dreturn
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/codec/BinaryDecoder;

  public long getInt64();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 153
            lconst_0
            lstore 1 /* result */
        start local 1 // long result
         1: .line 154
            iconst_0
            istore 3 /* shift */
        start local 3 // int shift
         2: .line 155
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 156
      StackMap locals: long int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getU1:()I
            i2l
            lstore 5 /* b */
        start local 5 // long b
         5: .line 157
            lload 1 /* result */
            lload 5 /* b */
            iload 3 /* shift */
            lshl
            lor
            lstore 1 /* result */
         6: .line 158
            iinc 3 /* shift */ 8
        end local 5 // long b
         7: .line 155
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            bipush 8
            if_icmplt 4
        end local 4 // int i
         9: .line 160
            lload 1 /* result */
            lreturn
        end local 3 // int shift
        end local 1 // long result
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/oracle/truffle/js/codec/BinaryDecoder;
            1   10     1  result  J
            2   10     3   shift  I
            3    9     4       i  I
            5    7     5       b  J

  public int getInt32();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 164
            iconst_0
            istore 1 /* result */
        start local 1 // int result
         1: .line 165
            iconst_0
            istore 2 /* shift */
        start local 2 // int shift
         2: .line 166
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 167
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.codec.BinaryDecoder.getU1:()I
            i2l
            lstore 4 /* b */
        start local 4 // long b
         5: .line 168
            iload 1 /* result */
            i2l
            lload 4 /* b */
            iload 2 /* shift */
            lshl
            lor
            l2i
            istore 1 /* result */
         6: .line 169
            iinc 2 /* shift */ 8
        end local 4 // long b
         7: .line 166
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iconst_4
            if_icmplt 4
        end local 3 // int i
         9: .line 171
            iload 1 /* result */
            ireturn
        end local 2 // int shift
        end local 1 // int result
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/oracle/truffle/js/codec/BinaryDecoder;
            1   10     1  result  I
            2   10     2   shift  I
            3    9     3       i  I
            5    7     4       b  J

  public boolean hasRemaining();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 175
            aload 0 /* this */
            getfield com.oracle.truffle.js.codec.BinaryDecoder.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ireturn
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/codec/BinaryDecoder;

  public java.nio.ByteBuffer getBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
         0: .line 179
            aload 0 /* this */
            getfield com.oracle.truffle.js.codec.BinaryDecoder.buffer:Ljava/nio/ByteBuffer;
            areturn
        end local 0 // com.oracle.truffle.js.codec.BinaryDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/codec/BinaryDecoder;
}
SourceFile: "BinaryDecoder.java"