class com.oracle.truffle.js.runtime.doubleconv.BignumDtoa
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.js.runtime.doubleconv.BignumDtoa
  super_class: java.lang.Object
{
  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$js$runtime$doubleconv$DtoaMode;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 76
            ldc Lcom/oracle/truffle/js/runtime/doubleconv/BignumDtoa;
            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 com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.doubleconv.BignumDtoa this
         0: .line 76
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.runtime.doubleconv.BignumDtoa this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/runtime/doubleconv/BignumDtoa;

  private static int normalizedExponent(long, int);
    descriptor: (JI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // long significand
        start local 2 // int exponent
         0: .line 79
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 3
            lload 0 /* significand */
            lconst_0
            lcmp
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 81
      StackMap locals:
      StackMap stack:
            lload 0 /* significand */
            iconst_1
            lshl
            lstore 0 /* significand */
         2: .line 82
            iinc 2 /* exponent */ -1
         3: .line 80
      StackMap locals:
      StackMap stack:
            lload 0 /* significand */
            ldc 4503599627370496
            land
            lconst_0
            lcmp
            ifeq 1
         4: .line 84
            iload 2 /* exponent */
            ireturn
        end local 2 // int exponent
        end local 0 // long significand
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0  significand  J
            0    5     2     exponent  I
    MethodParameters:
             Name  Flags
      significand  
      exponent     

  static void bignumDtoa(double, com.oracle.truffle.js.runtime.doubleconv.DtoaMode, int, com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer);
    descriptor: (DLcom/oracle/truffle/js/runtime/doubleconv/DtoaMode;ILcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=19, args_size=4
        start local 0 // double v
        start local 2 // com.oracle.truffle.js.runtime.doubleconv.DtoaMode mode
        start local 3 // int requested_digits
        start local 4 // com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer buffer
         0: .line 118
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 1
            dload 0 /* v */
            dconst_0
            dcmpl
            ifgt 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 119
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 2
            dload 0 /* v */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.IeeeDouble.doubleToLong:(D)J
            invokestatic com.oracle.truffle.js.runtime.doubleconv.IeeeDouble.isSpecial:(J)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 124
      StackMap locals:
      StackMap stack:
            dload 0 /* v */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.IeeeDouble.doubleToLong:(D)J
            lstore 9 /* l */
        start local 9 // long l
         3: .line 125
            lload 9 /* l */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.IeeeDouble.significand:(J)J
            lstore 5 /* significand */
        start local 5 // long significand
         4: .line 126
            lload 9 /* l */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.IeeeDouble.exponent:(J)I
            istore 7 /* exponent */
        start local 7 // int exponent
         5: .line 127
            lload 9 /* l */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.IeeeDouble.lowerBoundaryIsCloser:(J)Z
            istore 8 /* lower_boundary_is_closer */
        start local 8 // boolean lower_boundary_is_closer
         6: .line 129
            aload 2 /* mode */
            getstatic com.oracle.truffle.js.runtime.doubleconv.DtoaMode.SHORTEST:Lcom/oracle/truffle/js/runtime/doubleconv/DtoaMode;
            if_acmpne 7
            iconst_1
            goto 8
      StackMap locals: double com.oracle.truffle.js.runtime.doubleconv.DtoaMode int com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer long int int long
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 11 /* need_boundary_deltas */
        start local 11 // boolean need_boundary_deltas
         9: .line 131
            lload 5 /* significand */
            lconst_1
            land
            lconst_0
            lcmp
            ifne 10
            iconst_1
            goto 11
      StackMap locals: int
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 12 /* is_even */
        start local 12 // boolean is_even
        12: .line 132
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 13
            lload 5 /* significand */
            lconst_0
            lcmp
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 133
      StackMap locals: int
      StackMap stack:
            lload 5 /* significand */
            iload 7 /* exponent */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.normalizedExponent:(JI)I
            istore 13 /* normalizedExponent */
        start local 13 // int normalizedExponent
        14: .line 135
            iload 13 /* normalizedExponent */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.estimatePower:(I)I
            istore 14 /* estimated_power */
        start local 14 // int estimated_power
        15: .line 141
            aload 2 /* mode */
            getstatic com.oracle.truffle.js.runtime.doubleconv.DtoaMode.FIXED:Lcom/oracle/truffle/js/runtime/doubleconv/DtoaMode;
            if_acmpne 19
            iload 14 /* estimated_power */
            ineg
            iconst_1
            isub
            iload 3 /* requested_digits */
            if_icmple 19
        16: .line 142
            aload 4 /* buffer */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.reset:()V
        17: .line 146
            aload 4 /* buffer */
            iload 3 /* requested_digits */
            ineg
            putfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
        18: .line 147
            return
        19: .line 150
      StackMap locals: int int
      StackMap stack:
            new com.oracle.truffle.js.runtime.doubleconv.Bignum
            dup
            invokespecial com.oracle.truffle.js.runtime.doubleconv.Bignum.<init>:()V
            astore 15 /* numerator */
        start local 15 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        20: .line 151
            new com.oracle.truffle.js.runtime.doubleconv.Bignum
            dup
            invokespecial com.oracle.truffle.js.runtime.doubleconv.Bignum.<init>:()V
            astore 16 /* denominator */
        start local 16 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        21: .line 152
            new com.oracle.truffle.js.runtime.doubleconv.Bignum
            dup
            invokespecial com.oracle.truffle.js.runtime.doubleconv.Bignum.<init>:()V
            astore 17 /* delta_minus */
        start local 17 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        22: .line 153
            new com.oracle.truffle.js.runtime.doubleconv.Bignum
            dup
            invokespecial com.oracle.truffle.js.runtime.doubleconv.Bignum.<init>:()V
            astore 18 /* delta_plus */
        start local 18 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
        23: .line 159
            lload 5 /* significand */
            iload 7 /* exponent */
            iload 8 /* lower_boundary_is_closer */
        24: .line 160
            iload 14 /* estimated_power */
            iload 11 /* need_boundary_deltas */
        25: .line 161
            aload 15 /* numerator */
            aload 16 /* denominator */
        26: .line 162
            aload 17 /* delta_minus */
            aload 18 /* delta_plus */
        27: .line 159
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.initialScaledStartValues:(JIZIZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
        28: .line 164
            aload 4 /* buffer */
            iload 14 /* estimated_power */
            iload 12 /* is_even */
        29: .line 165
            aload 15 /* numerator */
            aload 16 /* denominator */
        30: .line 166
            aload 17 /* delta_minus */
            aload 18 /* delta_plus */
        31: .line 164
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.fixupMultiply10:(IZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)I
            putfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
        32: .line 169
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$SWITCH_TABLE$com$oracle$truffle$js$runtime$doubleconv$DtoaMode:()[I
            aload 2 /* mode */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.DtoaMode.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 33
                    2: 38
                    3: 43
              default: 48
          }
        33: .line 171
      StackMap locals: double com.oracle.truffle.js.runtime.doubleconv.DtoaMode int com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer long int int long int int int int com.oracle.truffle.js.runtime.doubleconv.Bignum com.oracle.truffle.js.runtime.doubleconv.Bignum com.oracle.truffle.js.runtime.doubleconv.Bignum com.oracle.truffle.js.runtime.doubleconv.Bignum
      StackMap stack:
            aload 15 /* numerator */
            aload 16 /* denominator */
        34: .line 172
            aload 17 /* delta_minus */
            aload 18 /* delta_plus */
        35: .line 173
            iload 12 /* is_even */
            aload 4 /* buffer */
        36: .line 171
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.generateShortestDigits:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;ZLcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;)V
        37: .line 174
            goto 49
        38: .line 176
      StackMap locals:
      StackMap stack:
            iload 3 /* requested_digits */
        39: .line 177
            aload 15 /* numerator */
            aload 16 /* denominator */
        40: .line 178
            aload 4 /* buffer */
        41: .line 176
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.bignumToFixed:(ILcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;)V
        42: .line 179
            goto 49
        43: .line 181
      StackMap locals:
      StackMap stack:
            iload 3 /* requested_digits */
        44: .line 182
            aload 15 /* numerator */
            aload 16 /* denominator */
        45: .line 183
            aload 4 /* buffer */
        46: .line 181
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.generateCountedDigits:(ILcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;)V
        47: .line 184
            goto 49
        48: .line 186
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            invokespecial java.lang.RuntimeException.<init>:()V
            athrow
        49: .line 188
      StackMap locals:
      StackMap stack:
            return
        end local 18 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
        end local 17 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        end local 16 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        end local 15 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        end local 14 // int estimated_power
        end local 13 // int normalizedExponent
        end local 12 // boolean is_even
        end local 11 // boolean need_boundary_deltas
        end local 9 // long l
        end local 8 // boolean lower_boundary_is_closer
        end local 7 // int exponent
        end local 5 // long significand
        end local 4 // com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer buffer
        end local 3 // int requested_digits
        end local 2 // com.oracle.truffle.js.runtime.doubleconv.DtoaMode mode
        end local 0 // double v
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   50     0                         v  D
            0   50     2                      mode  Lcom/oracle/truffle/js/runtime/doubleconv/DtoaMode;
            0   50     3          requested_digits  I
            0   50     4                    buffer  Lcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;
            4   50     5               significand  J
            5   50     7                  exponent  I
            6   50     8  lower_boundary_is_closer  Z
            3   50     9                         l  J
            9   50    11      need_boundary_deltas  Z
           12   50    12                   is_even  Z
           14   50    13        normalizedExponent  I
           15   50    14           estimated_power  I
           20   50    15                 numerator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
           21   50    16               denominator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
           22   50    17               delta_minus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
           23   50    18                delta_plus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
    MethodParameters:
                  Name  Flags
      v                 final
      mode              final
      requested_digits  final
      buffer            final

  static void generateShortestDigits(com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, boolean, com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer);
    descriptor: (Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;ZLcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=10, args_size=6
        start local 0 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        start local 1 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        start local 2 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        start local 3 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
        start local 4 // boolean is_even
        start local 5 // com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer buffer
         0: .line 210
            aload 2 /* delta_minus */
            aload 3 /* delta_plus */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.equal:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)Z
            ifeq 2
         1: .line 211
            aload 2 /* delta_minus */
            astore 3 /* delta_plus */
         2: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* numerator */
            aload 1 /* denominator */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.divideModuloIntBignum:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)C
            istore 6 /* digit */
        start local 6 // char digit
         3: .line 216
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 4
            iload 6 /* digit */
            bipush 9
            if_icmple 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 219
      StackMap locals: int
      StackMap stack:
            aload 5 /* buffer */
            iload 6 /* digit */
            bipush 48
            iadd
            i2c
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.append:(C)V
         5: .line 228
            iload 4 /* is_even */
            ifeq 8
         6: .line 229
            aload 0 /* numerator */
            aload 2 /* delta_minus */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.lessEqual:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)Z
            istore 7 /* in_delta_room_minus */
        start local 7 // boolean in_delta_room_minus
         7: .line 230
            goto 9
        end local 7 // boolean in_delta_room_minus
         8: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* numerator */
            aload 2 /* delta_minus */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.less:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)Z
            istore 7 /* in_delta_room_minus */
        start local 7 // boolean in_delta_room_minus
         9: .line 233
      StackMap locals: int
      StackMap stack:
            iload 4 /* is_even */
            ifeq 14
        10: .line 235
            aload 0 /* numerator */
            aload 3 /* delta_plus */
            aload 1 /* denominator */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.plusCompare:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)I
            iflt 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
        12: .line 234
      StackMap locals:
      StackMap stack: int
            istore 8 /* in_delta_room_plus */
        start local 8 // boolean in_delta_room_plus
        13: .line 236
            goto 17
        end local 8 // boolean in_delta_room_plus
        14: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* numerator */
            aload 3 /* delta_plus */
            aload 1 /* denominator */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.plusCompare:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)I
            ifle 15
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
        16: .line 237
      StackMap locals:
      StackMap stack: int
            istore 8 /* in_delta_room_plus */
        start local 8 // boolean in_delta_room_plus
        17: .line 240
      StackMap locals: int
      StackMap stack:
            iload 7 /* in_delta_room_minus */
            ifne 23
            iload 8 /* in_delta_room_plus */
            ifne 23
        18: .line 242
            aload 0 /* numerator */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.times10:()V
        19: .line 243
            aload 2 /* delta_minus */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.times10:()V
        20: .line 247
            aload 2 /* delta_minus */
            aload 3 /* delta_plus */
            if_acmpeq 2
        21: .line 248
            aload 3 /* delta_plus */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.times10:()V
        22: .line 250
            goto 2
      StackMap locals:
      StackMap stack:
        23: iload 7 /* in_delta_room_minus */
            ifeq 34
            iload 8 /* in_delta_room_plus */
            ifeq 34
        24: .line 253
            aload 0 /* numerator */
            aload 0 /* numerator */
            aload 1 /* denominator */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.plusCompare:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)I
            istore 9 /* compare */
        start local 9 // int compare
        25: .line 254
            iload 9 /* compare */
            iflt 33
        26: .line 256
            iload 9 /* compare */
            ifle 30
        27: .line 262
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 28
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
            iconst_1
            isub
            caload
            bipush 57
            if_icmpne 28
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        28: .line 263
      StackMap locals: int
      StackMap stack:
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
            iconst_1
            isub
            dup2
            caload
            iconst_1
            iadd
            i2c
            castore
        29: .line 264
            goto 33
        30: .line 270
      StackMap locals:
      StackMap stack:
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
            iconst_1
            isub
            caload
            bipush 48
            isub
            iconst_2
            irem
            ifeq 33
        31: .line 273
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 32
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
            iconst_1
            isub
            caload
            bipush 57
            if_icmpne 32
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        32: .line 274
      StackMap locals:
      StackMap stack:
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
            iconst_1
            isub
            dup2
            caload
            iconst_1
            iadd
            i2c
            castore
        33: .line 277
      StackMap locals:
      StackMap stack:
            return
        end local 9 // int compare
        34: .line 278
      StackMap locals:
      StackMap stack:
            iload 7 /* in_delta_room_minus */
            ifeq 36
        35: .line 280
            return
        36: .line 287
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 37
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
            iconst_1
            isub
            caload
            bipush 57
            if_icmpne 37
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        37: .line 288
      StackMap locals:
      StackMap stack:
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            aload 5 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
            iconst_1
            isub
            dup2
            caload
            iconst_1
            iadd
            i2c
            castore
        38: .line 289
            return
        end local 8 // boolean in_delta_room_plus
        end local 7 // boolean in_delta_room_minus
        end local 6 // char digit
        end local 5 // com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer buffer
        end local 4 // boolean is_even
        end local 3 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
        end local 2 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        end local 1 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        end local 0 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   39     0            numerator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   39     1          denominator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   39     2          delta_minus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   39     3           delta_plus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   39     4              is_even  Z
            0   39     5               buffer  Lcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;
            3   39     6                digit  C
            7    8     7  in_delta_room_minus  Z
            9   39     7  in_delta_room_minus  Z
           13   14     8   in_delta_room_plus  Z
           17   39     8   in_delta_room_plus  Z
           25   34     9              compare  I
    MethodParameters:
             Name  Flags
      numerator    final
      denominator  final
      delta_minus  final
      delta_plus   
      is_even      final
      buffer       final

  static void generateCountedDigits(int, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer);
    descriptor: (ILcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // int count
        start local 1 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        start local 2 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        start local 3 // com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer buffer
         0: .line 304
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 1
            iload 0 /* count */
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 305
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 8
         3: .line 307
      StackMap locals: int
      StackMap stack:
            aload 1 /* numerator */
            aload 2 /* denominator */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.divideModuloIntBignum:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)C
            istore 5 /* digit */
        start local 5 // char digit
         4: .line 308
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 5
            iload 5 /* digit */
            bipush 9
            if_icmple 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 311
      StackMap locals: int
      StackMap stack:
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            iload 4 /* i */
            iload 5 /* digit */
            bipush 48
            iadd
            i2c
            castore
         6: .line 313
            aload 1 /* numerator */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.times10:()V
        end local 5 // char digit
         7: .line 305
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 0 /* count */
            iconst_1
            isub
            if_icmplt 3
        end local 4 // int i
         9: .line 317
            aload 1 /* numerator */
            aload 2 /* denominator */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.divideModuloIntBignum:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)C
            istore 4 /* digit */
        start local 4 // char digit
        10: .line 318
            aload 1 /* numerator */
            aload 1 /* numerator */
            aload 2 /* denominator */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.plusCompare:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)I
            iflt 12
        11: .line 319
            iload 4 /* digit */
            iconst_1
            iadd
            i2c
            istore 4 /* digit */
        12: .line 321
      StackMap locals: int com.oracle.truffle.js.runtime.doubleconv.Bignum com.oracle.truffle.js.runtime.doubleconv.Bignum com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer int
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 13
            iload 4 /* digit */
            bipush 10
            if_icmple 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 322
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            iload 0 /* count */
            iconst_1
            isub
            iload 4 /* digit */
            bipush 48
            iadd
            i2c
            castore
        14: .line 325
            iload 0 /* count */
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
        15: goto 20
        16: .line 326
      StackMap locals: int
      StackMap stack:
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            iload 5 /* i */
            caload
            bipush 58
            if_icmpeq 17
            goto 21
        17: .line 327
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            iload 5 /* i */
            bipush 48
            castore
        18: .line 328
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            iload 5 /* i */
            iconst_1
            isub
            dup2
            caload
            iconst_1
            iadd
            i2c
            castore
        19: .line 325
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
        20: iload 5 /* i */
            ifgt 16
        end local 5 // int i
        21: .line 330
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            iconst_0
            caload
            bipush 58
            if_icmpne 24
        22: .line 332
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            iconst_0
            bipush 49
            castore
        23: .line 333
            aload 3 /* buffer */
            dup
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
            iconst_1
            iadd
            putfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
        24: .line 335
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            iload 0 /* count */
            putfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
        25: .line 336
            return
        end local 4 // char digit
        end local 3 // com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer buffer
        end local 2 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        end local 1 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        end local 0 // int count
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0        count  I
            0   26     1    numerator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   26     2  denominator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   26     3       buffer  Lcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;
            2    9     4            i  I
            4    7     5        digit  C
           10   26     4        digit  C
           15   21     5            i  I
    MethodParameters:
             Name  Flags
      count        final
      numerator    final
      denominator  final
      buffer       final

  static void bignumToFixed(int, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer);
    descriptor: (ILcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // int requested_digits
        start local 1 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        start local 2 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        start local 3 // com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer buffer
         0: .line 350
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
            ineg
            iload 0 /* requested_digits */
            if_icmple 4
         1: .line 356
            aload 3 /* buffer */
            iload 0 /* requested_digits */
            ineg
            putfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
         2: .line 357
            aload 3 /* buffer */
            iconst_0
            putfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
         3: .line 359
            goto 19
      StackMap locals:
      StackMap stack:
         4: aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
            ineg
            iload 0 /* requested_digits */
            if_icmpne 14
         5: .line 362
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 6
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
            iload 0 /* requested_digits */
            ineg
            if_icmpeq 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 365
      StackMap locals:
      StackMap stack:
            aload 2 /* denominator */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.times10:()V
         7: .line 366
            aload 1 /* numerator */
            aload 1 /* numerator */
            aload 2 /* denominator */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.plusCompare:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)I
            iflt 12
         8: .line 369
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.chars:[C
            iconst_0
            bipush 49
            castore
         9: .line 370
            aload 3 /* buffer */
            iconst_1
            putfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
        10: .line 371
            aload 3 /* buffer */
            dup
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
            iconst_1
            iadd
            putfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
        11: .line 372
            goto 19
        12: .line 374
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            iconst_0
            putfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.length:I
        13: .line 377
            goto 19
        14: .line 380
      StackMap locals:
      StackMap stack:
            aload 3 /* buffer */
            getfield com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer.decimalPoint:I
            iload 0 /* requested_digits */
            iadd
            istore 4 /* needed_digits */
        start local 4 // int needed_digits
        15: .line 381
            iload 4 /* needed_digits */
        16: .line 382
            aload 1 /* numerator */
            aload 2 /* denominator */
        17: .line 383
            aload 3 /* buffer */
        18: .line 381
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.generateCountedDigits:(ILcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;)V
        end local 4 // int needed_digits
        19: .line 385
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.truffle.js.runtime.doubleconv.DtoaBuffer buffer
        end local 2 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        end local 1 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        end local 0 // int requested_digits
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0  requested_digits  I
            0   20     1         numerator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   20     2       denominator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   20     3            buffer  Lcom/oracle/truffle/js/runtime/doubleconv/DtoaBuffer;
           15   19     4     needed_digits  I
    MethodParameters:
                  Name  Flags
      requested_digits  final
      numerator         final
      denominator       final
      buffer            final

  static int estimatePower(int);
    descriptor: (I)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // int exponent
         0: .line 429
            iload 0 /* exponent */
            bipush 53
            iadd
            iconst_1
            isub
            i2d
            ldc 0.30102999566398114
            dmul
            ldc 1.0E-10
            dsub
            invokestatic java.lang.Math.ceil:(D)D
            dstore 1 /* estimate */
        start local 1 // double estimate
         1: .line 430
            dload 1 /* estimate */
            d2i
            ireturn
        end local 1 // double estimate
        end local 0 // int exponent
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  exponent  I
            1    2     1  estimate  D
    MethodParameters:
          Name  Flags
      exponent  final

  static void initialScaledStartValuesPositiveExponent(long, int, int, boolean, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum);
    descriptor: (JIIZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=9, args_size=8
        start local 0 // long significand
        start local 2 // int exponent
        start local 3 // int estimated_power
        start local 4 // boolean need_boundary_deltas
        start local 5 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        start local 6 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        start local 7 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        start local 8 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
         0: .line 441
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 1
            iload 3 /* estimated_power */
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 446
      StackMap locals:
      StackMap stack:
            aload 5 /* numerator */
            lload 0 /* significand */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignUInt64:(J)V
         2: .line 447
            aload 5 /* numerator */
            iload 2 /* exponent */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
         3: .line 449
            aload 6 /* denominator */
            bipush 10
            iload 3 /* estimated_power */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignPowerUInt16:(II)V
         4: .line 451
            iload 4 /* need_boundary_deltas */
            ifeq 11
         5: .line 454
            aload 6 /* denominator */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
         6: .line 455
            aload 5 /* numerator */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
         7: .line 458
            aload 8 /* delta_plus */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignUInt16:(C)V
         8: .line 459
            aload 8 /* delta_plus */
            iload 2 /* exponent */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
         9: .line 461
            aload 7 /* delta_minus */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignUInt16:(C)V
        10: .line 462
            aload 7 /* delta_minus */
            iload 2 /* exponent */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
        11: .line 464
      StackMap locals:
      StackMap stack:
            return
        end local 8 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
        end local 7 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        end local 6 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        end local 5 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        end local 4 // boolean need_boundary_deltas
        end local 3 // int estimated_power
        end local 2 // int exponent
        end local 0 // long significand
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0           significand  J
            0   12     2              exponent  I
            0   12     3       estimated_power  I
            0   12     4  need_boundary_deltas  Z
            0   12     5             numerator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   12     6           denominator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   12     7           delta_minus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   12     8            delta_plus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
    MethodParameters:
                      Name  Flags
      significand           final
      exponent              final
      estimated_power       final
      need_boundary_deltas  final
      numerator             final
      denominator           final
      delta_minus           final
      delta_plus            final

  static void initialScaledStartValuesNegativeExponentPositivePower(long, int, int, boolean, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum);
    descriptor: (JIIZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=9, args_size=8
        start local 0 // long significand
        start local 2 // int exponent
        start local 3 // int estimated_power
        start local 4 // boolean need_boundary_deltas
        start local 5 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        start local 6 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        start local 7 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        start local 8 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
         0: .line 480
            aload 5 /* numerator */
            lload 0 /* significand */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignUInt64:(J)V
         1: .line 482
            aload 6 /* denominator */
            bipush 10
            iload 3 /* estimated_power */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignPowerUInt16:(II)V
         2: .line 483
            aload 6 /* denominator */
            iload 2 /* exponent */
            ineg
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
         3: .line 485
            iload 4 /* need_boundary_deltas */
            ifeq 8
         4: .line 488
            aload 6 /* denominator */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
         5: .line 489
            aload 5 /* numerator */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
         6: .line 494
            aload 8 /* delta_plus */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignUInt16:(C)V
         7: .line 496
            aload 7 /* delta_minus */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignUInt16:(C)V
         8: .line 498
      StackMap locals:
      StackMap stack:
            return
        end local 8 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
        end local 7 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        end local 6 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        end local 5 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        end local 4 // boolean need_boundary_deltas
        end local 3 // int estimated_power
        end local 2 // int exponent
        end local 0 // long significand
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    9     0           significand  J
            0    9     2              exponent  I
            0    9     3       estimated_power  I
            0    9     4  need_boundary_deltas  Z
            0    9     5             numerator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0    9     6           denominator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0    9     7           delta_minus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0    9     8            delta_plus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
    MethodParameters:
                      Name  Flags
      significand           final
      exponent              final
      estimated_power       final
      need_boundary_deltas  final
      numerator             final
      denominator           final
      delta_minus           final
      delta_plus            final

  static void initialScaledStartValuesNegativeExponentNegativePower(long, int, int, boolean, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum);
    descriptor: (JIIZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=10, args_size=8
        start local 0 // long significand
        start local 2 // int exponent
        start local 3 // int estimated_power
        start local 4 // boolean need_boundary_deltas
        start local 5 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        start local 6 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        start local 7 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        start local 8 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
         0: .line 511
            aload 5 /* numerator */
            astore 9 /* power_ten */
        start local 9 // com.oracle.truffle.js.runtime.doubleconv.Bignum power_ten
         1: .line 512
            aload 9 /* power_ten */
            bipush 10
            iload 3 /* estimated_power */
            ineg
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignPowerUInt16:(II)V
         2: .line 514
            iload 4 /* need_boundary_deltas */
            ifeq 5
         3: .line 518
            aload 8 /* delta_plus */
            aload 9 /* power_ten */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignBignum:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
         4: .line 519
            aload 7 /* delta_minus */
            aload 9 /* power_ten */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignBignum:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
         5: .line 527
      StackMap locals: com.oracle.truffle.js.runtime.doubleconv.Bignum
      StackMap stack:
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$assertionsDisabled:Z
            ifne 6
            aload 5 /* numerator */
            aload 9 /* power_ten */
            if_acmpeq 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 528
      StackMap locals:
      StackMap stack:
            aload 5 /* numerator */
            lload 0 /* significand */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.multiplyByUInt64:(J)V
         7: .line 531
            aload 6 /* denominator */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignUInt16:(C)V
         8: .line 532
            aload 6 /* denominator */
            iload 2 /* exponent */
            ineg
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
         9: .line 534
            iload 4 /* need_boundary_deltas */
            ifeq 12
        10: .line 537
            aload 5 /* numerator */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
        11: .line 538
            aload 6 /* denominator */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
        12: .line 545
      StackMap locals:
      StackMap stack:
            return
        end local 9 // com.oracle.truffle.js.runtime.doubleconv.Bignum power_ten
        end local 8 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
        end local 7 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        end local 6 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        end local 5 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        end local 4 // boolean need_boundary_deltas
        end local 3 // int estimated_power
        end local 2 // int exponent
        end local 0 // long significand
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   13     0           significand  J
            0   13     2              exponent  I
            0   13     3       estimated_power  I
            0   13     4  need_boundary_deltas  Z
            0   13     5             numerator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   13     6           denominator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   13     7           delta_minus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   13     8            delta_plus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            1   13     9             power_ten  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
    MethodParameters:
                      Name  Flags
      significand           final
      exponent              final
      estimated_power       final
      need_boundary_deltas  final
      numerator             final
      denominator           final
      delta_minus           final
      delta_plus            final

  static void initialScaledStartValues(long, int, boolean, int, boolean, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum);
    descriptor: (JIZIZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=10, args_size=9
        start local 0 // long significand
        start local 2 // int exponent
        start local 3 // boolean lower_boundary_is_closer
        start local 4 // int estimated_power
        start local 5 // boolean need_boundary_deltas
        start local 6 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        start local 7 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        start local 8 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        start local 9 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
         0: .line 595
            iload 2 /* exponent */
            iflt 5
         1: .line 597
            lload 0 /* significand */
            iload 2 /* exponent */
            iload 4 /* estimated_power */
            iload 5 /* need_boundary_deltas */
         2: .line 598
            aload 6 /* numerator */
            aload 7 /* denominator */
            aload 8 /* delta_minus */
            aload 9 /* delta_plus */
         3: .line 596
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.initialScaledStartValuesPositiveExponent:(JIIZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
         4: .line 599
            goto 13
      StackMap locals:
      StackMap stack:
         5: iload 4 /* estimated_power */
            iflt 10
         6: .line 601
            lload 0 /* significand */
            iload 2 /* exponent */
            iload 4 /* estimated_power */
            iload 5 /* need_boundary_deltas */
         7: .line 602
            aload 6 /* numerator */
            aload 7 /* denominator */
            aload 8 /* delta_minus */
            aload 9 /* delta_plus */
         8: .line 600
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.initialScaledStartValuesNegativeExponentPositivePower:(JIIZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
         9: .line 603
            goto 13
        10: .line 605
      StackMap locals:
      StackMap stack:
            lload 0 /* significand */
            iload 2 /* exponent */
            iload 4 /* estimated_power */
            iload 5 /* need_boundary_deltas */
        11: .line 606
            aload 6 /* numerator */
            aload 7 /* denominator */
            aload 8 /* delta_minus */
            aload 9 /* delta_plus */
        12: .line 604
            invokestatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.initialScaledStartValuesNegativeExponentNegativePower:(JIIZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
        13: .line 609
      StackMap locals:
      StackMap stack:
            iload 5 /* need_boundary_deltas */
            ifeq 17
            iload 3 /* lower_boundary_is_closer */
            ifeq 17
        14: .line 612
            aload 7 /* denominator */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
        15: .line 613
            aload 6 /* numerator */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
        16: .line 614
            aload 9 /* delta_plus */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.shiftLeft:(I)V
        17: .line 616
      StackMap locals:
      StackMap stack:
            return
        end local 9 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
        end local 8 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        end local 7 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        end local 6 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        end local 5 // boolean need_boundary_deltas
        end local 4 // int estimated_power
        end local 3 // boolean lower_boundary_is_closer
        end local 2 // int exponent
        end local 0 // long significand
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   18     0               significand  J
            0   18     2                  exponent  I
            0   18     3  lower_boundary_is_closer  Z
            0   18     4           estimated_power  I
            0   18     5      need_boundary_deltas  Z
            0   18     6                 numerator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   18     7               denominator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   18     8               delta_minus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   18     9                delta_plus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
    MethodParameters:
                          Name  Flags
      significand               final
      exponent                  final
      lower_boundary_is_closer  final
      estimated_power           final
      need_boundary_deltas      final
      numerator                 final
      denominator               final
      delta_minus               final
      delta_plus                final

  static int fixupMultiply10(int, boolean, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum, com.oracle.truffle.js.runtime.doubleconv.Bignum);
    descriptor: (IZLcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=8, args_size=6
        start local 0 // int estimated_power
        start local 1 // boolean is_even
        start local 2 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        start local 3 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        start local 4 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        start local 5 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
         0: .line 635
            iload 1 /* is_even */
            ifeq 5
         1: .line 638
            aload 2 /* numerator */
            aload 5 /* delta_plus */
            aload 3 /* denominator */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.plusCompare:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)I
            iflt 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 6 /* in_range */
        start local 6 // boolean in_range
         4: .line 639
            goto 8
        end local 6 // boolean in_range
         5: .line 640
      StackMap locals:
      StackMap stack:
            aload 2 /* numerator */
            aload 5 /* delta_plus */
            aload 3 /* denominator */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.plusCompare:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)I
            ifle 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* in_range */
        start local 6 // boolean in_range
         8: .line 642
      StackMap locals: int
      StackMap stack:
            iload 6 /* in_range */
            ifeq 11
         9: .line 645
            iload 0 /* estimated_power */
            iconst_1
            iadd
            istore 7 /* decimal_point */
        start local 7 // int decimal_point
        10: .line 646
            goto 19
        end local 7 // int decimal_point
        11: .line 647
      StackMap locals:
      StackMap stack:
            iload 0 /* estimated_power */
            istore 7 /* decimal_point */
        start local 7 // int decimal_point
        12: .line 648
            aload 2 /* numerator */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.times10:()V
        13: .line 649
            aload 4 /* delta_minus */
            aload 5 /* delta_plus */
            invokestatic com.oracle.truffle.js.runtime.doubleconv.Bignum.equal:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)Z
            ifeq 17
        14: .line 650
            aload 4 /* delta_minus */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.times10:()V
        15: .line 651
            aload 5 /* delta_plus */
            aload 4 /* delta_minus */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.assignBignum:(Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;)V
        16: .line 652
            goto 19
        17: .line 653
      StackMap locals: int
      StackMap stack:
            aload 4 /* delta_minus */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.times10:()V
        18: .line 654
            aload 5 /* delta_plus */
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.Bignum.times10:()V
        19: .line 657
      StackMap locals:
      StackMap stack:
            iload 7 /* decimal_point */
            ireturn
        end local 7 // int decimal_point
        end local 6 // boolean in_range
        end local 5 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_plus
        end local 4 // com.oracle.truffle.js.runtime.doubleconv.Bignum delta_minus
        end local 3 // com.oracle.truffle.js.runtime.doubleconv.Bignum denominator
        end local 2 // com.oracle.truffle.js.runtime.doubleconv.Bignum numerator
        end local 1 // boolean is_even
        end local 0 // int estimated_power
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0  estimated_power  I
            0   20     1          is_even  Z
            0   20     2        numerator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   20     3      denominator  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   20     4      delta_minus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            0   20     5       delta_plus  Lcom/oracle/truffle/js/runtime/doubleconv/Bignum;
            4    5     6         in_range  Z
            8   20     6         in_range  Z
           10   11     7    decimal_point  I
           12   20     7    decimal_point  I
    MethodParameters:
                 Name  Flags
      estimated_power  final
      is_even          final
      numerator        final
      denominator      final
      delta_minus      final
      delta_plus       final

  static int[] $SWITCH_TABLE$com$oracle$truffle$js$runtime$doubleconv$DtoaMode();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 76
            getstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$SWITCH_TABLE$com$oracle$truffle$js$runtime$doubleconv$DtoaMode:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.js.runtime.doubleconv.DtoaMode.values:()[Lcom/oracle/truffle/js/runtime/doubleconv/DtoaMode;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.js.runtime.doubleconv.DtoaMode.FIXED:Lcom/oracle/truffle/js/runtime/doubleconv/DtoaMode;
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.DtoaMode.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.js.runtime.doubleconv.DtoaMode.PRECISION:Lcom/oracle/truffle/js/runtime/doubleconv/DtoaMode;
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.DtoaMode.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.js.runtime.doubleconv.DtoaMode.SHORTEST:Lcom/oracle/truffle/js/runtime/doubleconv/DtoaMode;
            invokevirtual com.oracle.truffle.js.runtime.doubleconv.DtoaMode.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic com.oracle.truffle.js.runtime.doubleconv.BignumDtoa.$SWITCH_TABLE$com$oracle$truffle$js$runtime$doubleconv$DtoaMode:[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: "BignumDtoa.java"