public class sun.jvm.hotspot.utilities.soql.JSJavaInstance extends sun.jvm.hotspot.utilities.soql.JSJavaObject
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.soql.JSJavaInstance
  super_class: sun.jvm.hotspot.utilities.soql.JSJavaObject
{
  protected final sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass type;
    descriptor: Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public void <init>(sun.jvm.hotspot.oops.Instance, sun.jvm.hotspot.utilities.soql.JSJavaFactory);
    descriptor: (Lsun/jvm/hotspot/oops/Instance;Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
        start local 1 // sun.jvm.hotspot.oops.Instance instance
        start local 2 // sun.jvm.hotspot.utilities.soql.JSJavaFactory fac
         0: .line 33
            aload 0 /* this */
            aload 1 /* instance */
            aload 2 /* fac */
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaObject.<init>:(Lsun/jvm/hotspot/oops/Oop;Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;)V
         1: .line 34
            aload 0 /* this */
            aload 2 /* fac */
            aload 1 /* instance */
            invokevirtual sun.jvm.hotspot.oops.Instance.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            invokeinterface sun.jvm.hotspot.utilities.soql.JSJavaFactory.newJSJavaKlass:(Lsun/jvm/hotspot/oops/Klass;)Lsun/jvm/hotspot/utilities/soql/JSJavaKlass;
            checkcast sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass
            putfield sun.jvm.hotspot.utilities.soql.JSJavaInstance.type:Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
         2: .line 35
            return
        end local 2 // sun.jvm.hotspot.utilities.soql.JSJavaFactory fac
        end local 1 // sun.jvm.hotspot.oops.Instance instance
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;
            0    3     1  instance  Lsun/jvm/hotspot/oops/Instance;
            0    3     2       fac  Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
    MethodParameters:
          Name  Flags
      instance  
      fac       

  public final sun.jvm.hotspot.oops.Instance getInstance();
    descriptor: ()Lsun/jvm/hotspot/oops/Instance;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
         0: .line 38
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstance.getOop:()Lsun/jvm/hotspot/oops/Oop;
            checkcast sun.jvm.hotspot.oops.Instance
            areturn
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;

  public final sun.jvm.hotspot.utilities.soql.JSJavaClass getJSJavaClass();
    descriptor: ()Lsun/jvm/hotspot/utilities/soql/JSJavaClass;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
         0: .line 42
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.soql.JSJavaInstance.type:Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getJSJavaClass:()Lsun/jvm/hotspot/utilities/soql/JSJavaClass;
            areturn
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;

  public java.lang.Object get(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
        start local 1 // java.lang.String name
         0: .line 46
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstance.hasField:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 47
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstance.getFieldValue:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
         2: .line 49
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String name
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public java.lang.Object[] getIds();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
         0: .line 54
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstance.getFieldNames:()[Ljava/lang/String;
            astore 1 /* fieldNames */
        start local 1 // java.lang.String[] fieldNames
         1: .line 55
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaObject.getIds:()[Ljava/lang/Object;
            astore 2 /* superFields */
        start local 2 // java.lang.Object[] superFields
         2: .line 56
            aload 1 /* fieldNames */
            arraylength
            aload 2 /* superFields */
            arraylength
            iadd
            anewarray java.lang.Object
            astore 3 /* res */
        start local 3 // java.lang.Object[] res
         3: .line 57
            aload 1 /* fieldNames */
            iconst_0
            aload 3 /* res */
            iconst_0
            aload 1 /* fieldNames */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 58
            aload 2 /* superFields */
            iconst_0
            aload 3 /* res */
            aload 1 /* fieldNames */
            arraylength
            aload 2 /* superFields */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 59
            aload 3 /* res */
            areturn
        end local 3 // java.lang.Object[] res
        end local 2 // java.lang.Object[] superFields
        end local 1 // java.lang.String[] fieldNames
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;
            1    6     1   fieldNames  [Ljava/lang/String;
            2    6     2  superFields  [Ljava/lang/Object;
            3    6     3          res  [Ljava/lang/Object;

  public boolean has(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
        start local 1 // java.lang.String name
         0: .line 63
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstance.hasField:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 64
            iconst_1
            ireturn
         2: .line 66
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaObject.has:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;
            0    3     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void put(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object value
         0: .line 71
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstance.hasField:(Ljava/lang/String;)Z
            ifne 2
         1: .line 72
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* value */
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaObject.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 74
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String name
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;
            0    3     1   name  Ljava/lang/String;
            0    3     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      name   
      value  

  protected java.lang.Object getFieldValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
        start local 1 // java.lang.String name
         0: .line 78
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.soql.JSJavaInstance.type:Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
            aload 1 /* name */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstance.getInstance:()Lsun/jvm/hotspot/oops/Instance;
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceFieldValue:(Ljava/lang/String;Lsun/jvm/hotspot/oops/Instance;)Ljava/lang/Object;
         1: areturn
         2: .line 79
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldException
            pop
         3: .line 80
            getstatic sun.jvm.hotspot.utilities.soql.JSJavaInstance.UNDEFINED:Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String name
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;
            0    4     1  name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NoSuchFieldException
    MethodParameters:
      Name  Flags
      name  

  protected java.lang.String[] getFieldNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
         0: .line 85
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.soql.JSJavaInstance.type:Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceFieldNames:()[Ljava/lang/String;
            areturn
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;

  protected boolean hasField(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
        start local 1 // java.lang.String name
         0: .line 89
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.soql.JSJavaInstance.type:Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
            aload 1 /* name */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.hasInstanceField:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaInstance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaInstance;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  
}
SourceFile: "JSJavaInstance.java"