public class sun.jvm.hotspot.utilities.soql.JSJavaHeap extends sun.jvm.hotspot.utilities.soql.DefaultScriptObject
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.soql.JSJavaHeap
  super_class: sun.jvm.hotspot.utilities.soql.DefaultScriptObject
{
  private static final int FIELD_CAPACITY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int FIELD_USED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int FIELD_FOR_EACH_OBJECT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int FIELD_FOR_EACH_CLASS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int FIELD_UNDEFINED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static java.util.Map fields;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final sun.jvm.hotspot.utilities.soql.JSJavaFactory factory;
    descriptor: Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static java.lang.reflect.Method forEachObjectMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method forEachClassMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=1, args_size=0
         0: .line 226
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.fields:Ljava/util/Map;
         1: .line 237
            ldc "capacity"
            iconst_0
            invokestatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.addField:(Ljava/lang/String;I)V
         2: .line 238
            ldc "used"
            iconst_1
            invokestatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.addField:(Ljava/lang/String;I)V
         3: .line 239
            ldc "forEachObject"
            iconst_2
            invokestatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.addField:(Ljava/lang/String;I)V
         4: .line 240
            ldc "forEachClass"
            iconst_3
            invokestatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.addField:(Ljava/lang/String;I)V
         5: .line 242
            ldc Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
            astore 0 /* myClass */
        start local 0 // java.lang.Class myClass
         6: .line 243
            aload 0 /* myClass */
            ldc "forEachObject"
         7: .line 244
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc [Ljava/lang/Object;
            aastore
         8: .line 243
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putstatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.forEachObjectMethod:Ljava/lang/reflect/Method;
         9: .line 245
            aload 0 /* myClass */
            ldc "forEachClass"
        10: .line 246
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc [Ljava/lang/Object;
            aastore
        11: .line 245
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putstatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.forEachClassMethod:Ljava/lang/reflect/Method;
        end local 0 // java.lang.Class myClass
        12: .line 247
            goto 17
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        13: astore 0 /* re */
        start local 0 // java.lang.RuntimeException re
        14: .line 248
            aload 0 /* re */
            athrow
        end local 0 // java.lang.RuntimeException re
        15: .line 249
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 0 /* exp */
        start local 0 // java.lang.Exception exp
        16: .line 250
            new java.lang.RuntimeException
            dup
            aload 0 /* exp */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Exception exp
        17: .line 264
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            6   12     0  myClass  Ljava/lang/Class;
           14   15     0       re  Ljava/lang/RuntimeException;
           16   17     0      exp  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5    12      13  Class java.lang.RuntimeException
           5    12      15  Class java.lang.Exception

  public void <init>(sun.jvm.hotspot.utilities.soql.JSJavaFactory);
    descriptor: (Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
        start local 1 // sun.jvm.hotspot.utilities.soql.JSJavaFactory fac
         0: .line 45
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.soql.DefaultScriptObject.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* fac */
            putfield sun.jvm.hotspot.utilities.soql.JSJavaHeap.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
         2: .line 47
            return
        end local 1 // sun.jvm.hotspot.utilities.soql.JSJavaFactory fac
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
            0    3     1   fac  Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
    MethodParameters:
      Name  Flags
      fac   

  public java.lang.Object get(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
        start local 1 // java.lang.String name
         0: .line 50
            aload 1 /* name */
            invokestatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.getFieldID:(Ljava/lang/String;)I
            istore 2 /* fieldID */
        start local 2 // int fieldID
         1: .line 51
            iload 2 /* fieldID */
            tableswitch { // -1 - 3
                   -1: 6
                    0: 2
                    1: 3
                    2: 4
                    3: 5
              default: 6
          }
         2: .line 53
      StackMap locals: int
      StackMap stack:
            new java.lang.Long
            dup
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaHeap.getCapacity:()J
            invokespecial java.lang.Long.<init>:(J)V
            areturn
         3: .line 55
      StackMap locals:
      StackMap stack:
            new java.lang.Long
            dup
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaHeap.getUsed:()J
            invokespecial java.lang.Long.<init>:(J)V
            areturn
         4: .line 57
      StackMap locals:
      StackMap stack:
            new sun.jvm.hotspot.utilities.soql.MethodCallable
            dup
            aload 0 /* this */
            getstatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.forEachObjectMethod:Ljava/lang/reflect/Method;
            invokespecial sun.jvm.hotspot.utilities.soql.MethodCallable.<init>:(Ljava/lang/Object;Ljava/lang/reflect/Method;)V
            areturn
         5: .line 59
      StackMap locals:
      StackMap stack:
            new sun.jvm.hotspot.utilities.soql.MethodCallable
            dup
            aload 0 /* this */
            getstatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.forEachClassMethod:Ljava/lang/reflect/Method;
            invokespecial sun.jvm.hotspot.utilities.soql.MethodCallable.<init>:(Ljava/lang/Object;Ljava/lang/reflect/Method;)V
            areturn
         6: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokespecial sun.jvm.hotspot.utilities.soql.DefaultScriptObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 2 // int fieldID
        end local 1 // java.lang.String name
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
            0    7     1     name  Ljava/lang/String;
            1    7     2  fieldID  I
    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.JSJavaHeap this
         0: .line 67
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.soql.DefaultScriptObject.getIds:()[Ljava/lang/Object;
            astore 1 /* superIds */
        start local 1 // java.lang.Object[] superIds
         1: .line 68
            getstatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.fields:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
            astore 2 /* tmp */
        start local 2 // java.lang.Object[] tmp
         2: .line 69
            aload 1 /* superIds */
            arraylength
            aload 2 /* tmp */
            arraylength
            iadd
            anewarray java.lang.Object
            astore 3 /* res */
        start local 3 // java.lang.Object[] res
         3: .line 70
            aload 2 /* tmp */
            iconst_0
            aload 3 /* res */
            iconst_0
            aload 2 /* tmp */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 71
            aload 1 /* superIds */
            iconst_0
            aload 3 /* res */
            aload 2 /* tmp */
            arraylength
            aload 1 /* superIds */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 72
            aload 3 /* res */
            areturn
        end local 3 // java.lang.Object[] res
        end local 2 // java.lang.Object[] tmp
        end local 1 // java.lang.Object[] superIds
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
            1    6     1  superIds  [Ljava/lang/Object;
            2    6     2       tmp  [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.JSJavaHeap this
        start local 1 // java.lang.String name
         0: .line 76
            aload 1 /* name */
            invokestatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.getFieldID:(Ljava/lang/String;)I
            iconst_m1
            if_icmpeq 2
         1: .line 77
            iconst_1
            ireturn
         2: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokespecial sun.jvm.hotspot.utilities.soql.DefaultScriptObject.has:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
            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.JSJavaHeap this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object value
         0: .line 84
            aload 1 /* name */
            invokestatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.getFieldID:(Ljava/lang/String;)I
            iconst_m1
            if_icmpne 2
         1: .line 85
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* value */
            invokespecial sun.jvm.hotspot.utilities.soql.DefaultScriptObject.put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 87
      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.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
            0    3     1   name  Ljava/lang/String;
            0    3     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      name   
      value  

  public void forEachObject(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
        start local 1 // java.lang.Object[] args
         0: .line 90
            iconst_1
            istore 2 /* subtypes */
        start local 2 // boolean subtypes
         1: .line 91
            aconst_null
            astore 3 /* kls */
        start local 3 // sun.jvm.hotspot.oops.Klass kls
         2: .line 92
            aconst_null
            astore 4 /* func */
        start local 4 // sun.jvm.hotspot.utilities.soql.Callable func
         3: .line 93
            aload 1 /* args */
            arraylength
            tableswitch { // 1 - 3
                    1: 15
                    2: 7
                    3: 4
              default: 20
          }
         4: .line 95
      StackMap locals: int sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.utilities.soql.Callable
      StackMap stack:
            aload 1 /* args */
            iconst_2
            aaload
            astore 5 /* b */
        start local 5 // java.lang.Object b
         5: .line 96
            aload 5 /* b */
            ifnull 7
            aload 5 /* b */
            instanceof java.lang.Boolean
            ifeq 7
         6: .line 97
            aload 5 /* b */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 2 /* subtypes */
        end local 5 // java.lang.Object b
         7: .line 101
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iconst_1
            aaload
            astore 5 /* k */
        start local 5 // java.lang.Object k
         8: .line 102
            aload 5 /* k */
            ifnonnull 9
            return
         9: .line 103
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 5 /* k */
            instanceof sun.jvm.hotspot.utilities.soql.JSJavaKlass
            ifeq 12
        10: .line 104
            aload 5 /* k */
            checkcast sun.jvm.hotspot.utilities.soql.JSJavaKlass
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaKlass.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            astore 3 /* kls */
        11: .line 105
            goto 15
      StackMap locals:
      StackMap stack:
        12: aload 5 /* k */
            instanceof java.lang.String
            ifeq 15
        13: .line 106
            aload 5 /* k */
            checkcast java.lang.String
            invokestatic sun.jvm.hotspot.utilities.SystemDictionaryHelper.findInstanceKlass:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 3 /* kls */
        14: .line 107
            aload 3 /* kls */
            ifnonnull 15
            return
        end local 5 // java.lang.Object k
        15: .line 111
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iconst_0
            aaload
            astore 5 /* f */
        start local 5 // java.lang.Object f
        16: .line 112
            aload 5 /* f */
            ifnull 19
            aload 5 /* f */
            instanceof sun.jvm.hotspot.utilities.soql.Callable
            ifeq 19
        17: .line 113
            aload 5 /* f */
            checkcast sun.jvm.hotspot.utilities.soql.Callable
            astore 4 /* func */
        18: .line 114
            goto 21
        19: .line 116
      StackMap locals: java.lang.Object
      StackMap stack:
            return
        end local 5 // java.lang.Object f
        20: .line 122
      StackMap locals:
      StackMap stack:
            return
        21: .line 125
      StackMap locals:
      StackMap stack:
            aload 4 /* func */
            astore 5 /* finalFunc */
        start local 5 // sun.jvm.hotspot.utilities.soql.Callable finalFunc
        22: .line 126
            new sun.jvm.hotspot.utilities.soql.JSJavaHeap$1
            dup
            aload 0 /* this */
            aload 5 /* finalFunc */
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaHeap$1.<init>:(Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;Lsun/jvm/hotspot/utilities/soql/Callable;)V
            astore 6 /* visitor */
        start local 6 // sun.jvm.hotspot.oops.HeapVisitor visitor
        23: .line 139
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()Lsun/jvm/hotspot/oops/ObjectHeap;
            astore 7 /* heap */
        start local 7 // sun.jvm.hotspot.oops.ObjectHeap heap
        24: .line 140
            aload 3 /* kls */
            ifnonnull 26
        25: .line 141
            ldc "java.lang.Object"
            invokestatic sun.jvm.hotspot.utilities.SystemDictionaryHelper.findInstanceKlass:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 3 /* kls */
        26: .line 143
      StackMap locals: sun.jvm.hotspot.utilities.soql.Callable sun.jvm.hotspot.oops.HeapVisitor sun.jvm.hotspot.oops.ObjectHeap
      StackMap stack:
            aload 7 /* heap */
            aload 6 /* visitor */
            aload 3 /* kls */
            iload 2 /* subtypes */
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.iterateObjectsOfKlass:(Lsun/jvm/hotspot/oops/HeapVisitor;Lsun/jvm/hotspot/oops/Klass;Z)V
        27: .line 144
            return
        end local 7 // sun.jvm.hotspot.oops.ObjectHeap heap
        end local 6 // sun.jvm.hotspot.oops.HeapVisitor visitor
        end local 5 // sun.jvm.hotspot.utilities.soql.Callable finalFunc
        end local 4 // sun.jvm.hotspot.utilities.soql.Callable func
        end local 3 // sun.jvm.hotspot.oops.Klass kls
        end local 2 // boolean subtypes
        end local 1 // java.lang.Object[] args
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0       this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
            0   28     1       args  [Ljava/lang/Object;
            1   28     2   subtypes  Z
            2   28     3        kls  Lsun/jvm/hotspot/oops/Klass;
            3   28     4       func  Lsun/jvm/hotspot/utilities/soql/Callable;
            5    7     5          b  Ljava/lang/Object;
            8   15     5          k  Ljava/lang/Object;
           16   20     5          f  Ljava/lang/Object;
           22   28     5  finalFunc  Lsun/jvm/hotspot/utilities/soql/Callable;
           23   28     6    visitor  Lsun/jvm/hotspot/oops/HeapVisitor;
           24   28     7       heap  Lsun/jvm/hotspot/oops/ObjectHeap;
    MethodParameters:
      Name  Flags
      args  

  public void forEachClass(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
        start local 1 // java.lang.Object[] args
         0: .line 147
            iconst_0
            istore 2 /* withLoader */
        start local 2 // boolean withLoader
         1: .line 148
            aconst_null
            astore 3 /* func */
        start local 3 // sun.jvm.hotspot.utilities.soql.Callable func
         2: .line 149
            aload 1 /* args */
            arraylength
            tableswitch { // 1 - 2
                    1: 6
                    2: 3
              default: 11
          }
         3: .line 151
      StackMap locals: int sun.jvm.hotspot.utilities.soql.Callable
      StackMap stack:
            aload 1 /* args */
            iconst_1
            aaload
            astore 4 /* b */
        start local 4 // java.lang.Object b
         4: .line 152
            aload 4 /* b */
            instanceof java.lang.Boolean
            ifeq 6
         5: .line 153
            aload 4 /* b */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 2 /* withLoader */
        end local 4 // java.lang.Object b
         6: .line 157
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iconst_0
            aaload
            astore 4 /* f */
        start local 4 // java.lang.Object f
         7: .line 158
            aload 4 /* f */
            instanceof sun.jvm.hotspot.utilities.soql.Callable
            ifeq 10
         8: .line 159
            aload 4 /* f */
            checkcast sun.jvm.hotspot.utilities.soql.Callable
            astore 3 /* func */
         9: .line 160
            goto 12
        10: .line 161
      StackMap locals: java.lang.Object
      StackMap stack:
            return
        end local 4 // java.lang.Object f
        11: .line 166
      StackMap locals:
      StackMap stack:
            return
        12: .line 169
      StackMap locals:
      StackMap stack:
            aload 3 /* func */
            astore 4 /* finalFunc */
        start local 4 // sun.jvm.hotspot.utilities.soql.Callable finalFunc
        13: .line 170
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getClassLoaderDataGraph:()Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            astore 5 /* cldg */
        start local 5 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldg
        14: .line 171
            iload 2 /* withLoader */
            ifeq 17
        15: .line 172
            aload 5 /* cldg */
            new sun.jvm.hotspot.utilities.soql.JSJavaHeap$2
            dup
            aload 0 /* this */
            aload 4 /* finalFunc */
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaHeap$2.<init>:(Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;Lsun/jvm/hotspot/utilities/soql/Callable;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
        16: .line 193
            goto 18
        17: .line 194
      StackMap locals: sun.jvm.hotspot.utilities.soql.Callable sun.jvm.hotspot.classfile.ClassLoaderDataGraph
      StackMap stack:
            aload 5 /* cldg */
            new sun.jvm.hotspot.utilities.soql.JSJavaHeap$3
            dup
            aload 0 /* this */
            aload 4 /* finalFunc */
            invokespecial sun.jvm.hotspot.utilities.soql.JSJavaHeap$3.<init>:(Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;Lsun/jvm/hotspot/utilities/soql/Callable;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
        18: .line 213
      StackMap locals:
      StackMap stack:
            return
        end local 5 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldg
        end local 4 // sun.jvm.hotspot.utilities.soql.Callable finalFunc
        end local 3 // sun.jvm.hotspot.utilities.soql.Callable func
        end local 2 // boolean withLoader
        end local 1 // java.lang.Object[] args
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
            0   19     1        args  [Ljava/lang/Object;
            1   19     2  withLoader  Z
            2   19     3        func  Lsun/jvm/hotspot/utilities/soql/Callable;
            4    6     4           b  Ljava/lang/Object;
            7   11     4           f  Ljava/lang/Object;
           13   19     4   finalFunc  Lsun/jvm/hotspot/utilities/soql/Callable;
           14   19     5        cldg  Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
    MethodParameters:
      Name  Flags
      args  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
         0: .line 216
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuffer buf
         1: .line 217
            aload 1 /* buf */
            ldc "Java Heap (capacity="
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 218
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaHeap.getCapacity:()J
            invokevirtual java.lang.StringBuffer.append:(J)Ljava/lang/StringBuffer;
            pop
         3: .line 219
            aload 1 /* buf */
            ldc ", used="
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         4: .line 220
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaHeap.getUsed:()J
            invokevirtual java.lang.StringBuffer.append:(J)Ljava/lang/StringBuffer;
            pop
         5: .line 221
            aload 1 /* buf */
            ldc ")"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         6: .line 222
            aload 1 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuffer buf
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
            1    7     1   buf  Ljava/lang/StringBuffer;

  private static void addField(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // int fieldId
         0: .line 228
            getstatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.fields:Ljava/util/Map;
            aload 0 /* name */
            new java.lang.Integer
            dup
            iload 1 /* fieldId */
            invokespecial java.lang.Integer.<init>:(I)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 229
            return
        end local 1 // int fieldId
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     name  Ljava/lang/String;
            0    2     1  fieldId  I
    MethodParameters:
         Name  Flags
      name     
      fieldId  

  private static int getFieldID(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String name
         0: .line 232
            getstatic sun.jvm.hotspot.utilities.soql.JSJavaHeap.fields:Ljava/util/Map;
            aload 0 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 1 /* res */
        start local 1 // java.lang.Integer res
         1: .line 233
            aload 1 /* res */
            ifnull 2
            aload 1 /* res */
            invokevirtual java.lang.Integer.intValue:()I
            goto 3
      StackMap locals: java.lang.Integer
      StackMap stack:
         2: iconst_m1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // java.lang.Integer res
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  name  Ljava/lang/String;
            1    4     1   res  Ljava/lang/Integer;
    MethodParameters:
      Name  Flags
      name  

  private long getCapacity();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
         0: .line 255
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getUniverse:()Lsun/jvm/hotspot/memory/Universe;
            invokevirtual sun.jvm.hotspot.memory.Universe.heap:()Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            invokevirtual sun.jvm.hotspot.gc.shared.CollectedHeap.capacity:()J
            lreturn
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;

  private long getUsed();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
         0: .line 259
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getUniverse:()Lsun/jvm/hotspot/memory/Universe;
            invokevirtual sun.jvm.hotspot.memory.Universe.heap:()Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            invokevirtual sun.jvm.hotspot.gc.shared.CollectedHeap.used:()J
            lreturn
        end local 0 // sun.jvm.hotspot.utilities.soql.JSJavaHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/soql/JSJavaHeap;
}
SourceFile: "JSJavaHeap.java"
NestMembers:
  sun.jvm.hotspot.utilities.soql.JSJavaHeap$1  sun.jvm.hotspot.utilities.soql.JSJavaHeap$2  sun.jvm.hotspot.utilities.soql.JSJavaHeap$3
InnerClasses:
  public abstract ClassVisitor = sun.jvm.hotspot.classfile.ClassLoaderDataGraph$ClassVisitor of sun.jvm.hotspot.classfile.ClassLoaderDataGraph
  sun.jvm.hotspot.utilities.soql.JSJavaHeap$1
  sun.jvm.hotspot.utilities.soql.JSJavaHeap$2
  sun.jvm.hotspot.utilities.soql.JSJavaHeap$3