public abstract class com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode extends com.oracle.truffle.js.nodes.JavaScriptBaseNode
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode
  super_class: com.oracle.truffle.js.nodes.JavaScriptBaseNode
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
         0: .line 52
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.nodes.JavaScriptBaseNode.<init>:()V
            return
        end local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/nodes/cast/JSNumberToBigIntNode;

  public abstract java.lang.Object execute(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      value  

  public final com.oracle.truffle.js.runtime.BigInt executeBigInt(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/BigInt;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
        start local 1 // java.lang.Object value
         0: .line 57
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.BigInt
            areturn
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/cast/JSNumberToBigIntNode;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  public static com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode create();
    descriptor: ()Lcom/oracle/truffle/js/nodes/cast/JSNumberToBigIntNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 61
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tJSNumberToBigIntNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected com.oracle.truffle.js.runtime.BigInt doInteger(int);
    descriptor: (I)Lcom/oracle/truffle/js/runtime/BigInt;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
        start local 1 // int value
         0: .line 66
            iload 1 /* value */
            i2l
            invokestatic com.oracle.truffle.js.runtime.BigInt.valueOf:(J)Lcom/oracle/truffle/js/runtime/BigInt;
            areturn
        end local 1 // int value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/cast/JSNumberToBigIntNode;
            0    1     1  value  I
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
    MethodParameters:
       Name  Flags
      value  

  protected com.oracle.truffle.js.runtime.BigInt doDoubleAsLong(double);
    descriptor: (D)Lcom/oracle/truffle/js/runtime/BigInt;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
        start local 1 // double value
         0: .line 71
            dload 1 /* value */
            d2l
            invokestatic com.oracle.truffle.js.runtime.BigInt.valueOf:(J)Lcom/oracle/truffle/js/runtime/BigInt;
            areturn
        end local 1 // double value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/js/nodes/cast/JSNumberToBigIntNode;
            0    1     1  value  D
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isDoubleRepresentableAsLong(value)"})
    MethodParameters:
       Name  Flags
      value  

  protected com.oracle.truffle.js.runtime.BigInt doDoubleOther(double);
    descriptor: (D)Lcom/oracle/truffle/js/runtime/BigInt;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
        start local 1 // double value
         0: .line 77
            dload 1 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isInteger:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 78
            ldc "BigInt out of range"
            invokestatic com.oracle.truffle.js.runtime.Errors.createRangeError:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         2: .line 80
      StackMap locals:
      StackMap stack:
            dload 1 /* value */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lstore 3 /* bits */
        start local 3 // long bits
         3: .line 81
            lload 3 /* bits */
            ldc -9223372036854775808
            land
            lconst_0
            lcmp
            ifeq 4
            iconst_1
            goto 5
      StackMap locals: long
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* negative */
        start local 5 // boolean negative
         6: .line 82
            sipush 1023
            istore 6 /* exponentOffset */
        start local 6 // int exponentOffset
         7: .line 83
            bipush 52
            istore 7 /* mantissaLength */
        start local 7 // int mantissaLength
         8: .line 84
            lload 3 /* bits */
            ldc 9218868437227405312
            land
            iload 7 /* mantissaLength */
            lshr
            l2i
            iload 6 /* exponentOffset */
            isub
            iload 7 /* mantissaLength */
            isub
            istore 8 /* exponent */
        start local 8 // int exponent
         9: .line 85
            lload 3 /* bits */
            ldc 4503599627370495
            land
            ldc 4503599627370496
            lor
            lstore 9 /* mantissa */
        start local 9 // long mantissa
        10: .line 86
            iload 5 /* negative */
            ifeq 11
            lload 9 /* mantissa */
            lneg
            goto 12
      StackMap locals: com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode double long int int int int long
      StackMap stack:
        11: lload 9 /* mantissa */
      StackMap locals:
      StackMap stack: long
        12: invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            iload 8 /* exponent */
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            astore 11 /* bigInteger */
        start local 11 // java.math.BigInteger bigInteger
        13: .line 87
            new com.oracle.truffle.js.runtime.BigInt
            dup
            aload 11 /* bigInteger */
            invokespecial com.oracle.truffle.js.runtime.BigInt.<init>:(Ljava/math/BigInteger;)V
            areturn
        end local 11 // java.math.BigInteger bigInteger
        end local 9 // long mantissa
        end local 8 // int exponent
        end local 7 // int mantissaLength
        end local 6 // int exponentOffset
        end local 5 // boolean negative
        end local 3 // long bits
        end local 1 // double value
        end local 0 // com.oracle.truffle.js.nodes.cast.JSNumberToBigIntNode this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Lcom/oracle/truffle/js/nodes/cast/JSNumberToBigIntNode;
            0   14     1           value  D
            3   14     3            bits  J
            6   14     5        negative  Z
            7   14     6  exponentOffset  I
            8   14     7  mantissaLength  I
            9   14     8        exponent  I
           10   14     9        mantissa  J
           13   14    11      bigInteger  Ljava/math/BigInteger;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
      com.oracle.truffle.api.dsl.Specialization(guards = {"!isDoubleRepresentableAsLong(value)"})
    MethodParameters:
       Name  Flags
      value  

  protected static com.oracle.truffle.js.runtime.BigInt doNull(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/BigInt;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 92
            getstatic com.oracle.truffle.js.runtime.BigInt.ZERO:Lcom/oracle/truffle/js/runtime/BigInt;
            areturn
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"isJSNull(value)"})
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "JSNumberToBigIntNode.java"
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives