final class com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection extends com.oracle.truffle.polyglot.InstrumentCache$InstrumentReflection
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection
  super_class: com.oracle.truffle.polyglot.InstrumentCache$InstrumentReflection
{
  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ClassLoader loader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String className;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile java.lang.Class<? extends com.oracle.truffle.api.instrumentation.TruffleInstrument> instrumentClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

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

  void <init>(java.lang.String, java.lang.ClassLoader, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
        start local 1 // java.lang.String name
        start local 2 // java.lang.ClassLoader loader
        start local 3 // java.lang.String className
         0: .line 304
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.InstrumentCache$InstrumentReflection.<init>:()V
         1: .line 305
            aload 1 /* name */
            ldc "Name must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 306
            aload 2 /* loader */
            ldc "Loader must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 307
            aload 3 /* className */
            ldc "ClassName must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 308
            aload 0 /* this */
            aload 1 /* name */
            putfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.name:Ljava/lang/String;
         5: .line 309
            aload 0 /* this */
            aload 2 /* loader */
            putfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.loader:Ljava/lang/ClassLoader;
         6: .line 310
            aload 0 /* this */
            aload 3 /* className */
            putfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.className:Ljava/lang/String;
         7: .line 311
            return
        end local 3 // java.lang.String className
        end local 2 // java.lang.ClassLoader loader
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/oracle/truffle/polyglot/InstrumentCache$LegacyLoader$LegacyInstrumentReflection;
            0    8     1       name  Ljava/lang/String;
            0    8     2     loader  Ljava/lang/ClassLoader;
            0    8     3  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      name       
      loader     
      className  

  com.oracle.truffle.api.instrumentation.TruffleInstrument newInstance();
    descriptor: ()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
         0: .line 316
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.getInstrumentationClass:()Ljava/lang/Class;
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.TruffleInstrument
         1: areturn
         2: .line 317
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 318
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot create instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " language implementation. Public default constructor expected in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.className:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/InstrumentCache$LegacyLoader$LegacyInstrumentReflection;
            3    4     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  java.lang.Class<? extends com.oracle.truffle.api.instrumentation.TruffleInstrument> aotInitializeAtBuildTime();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
         0: .line 324
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.initializeInstrumentClass:()V
         1: .line 325
            getstatic com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.instrumentClass:Ljava/lang/Class;
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.instrumentClass:Ljava/lang/Class;
            areturn
        end local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/InstrumentCache$LegacyLoader$LegacyInstrumentReflection;
    Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;>;

  private java.lang.Class<? extends com.oracle.truffle.api.instrumentation.TruffleInstrument> getInstrumentationClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
         0: .line 330
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            ifne 2
         1: .line 331
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.initializeInstrumentClass:()V
         2: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.instrumentClass:Ljava/lang/Class;
            areturn
        end local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/InstrumentCache$LegacyLoader$LegacyInstrumentReflection;
    Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;>;

  private void initializeInstrumentClass();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
         0: .line 337
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.instrumentClass:Ljava/lang/Class;
            ifnonnull 12
         1: .line 338
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 339
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.instrumentClass:Ljava/lang/Class;
            ifnonnull 8
         3: .line 341
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.loader:Ljava/lang/ClassLoader;
            invokestatic com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader.exportTruffle:(Ljava/lang/ClassLoader;)V
         4: .line 342
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.className:Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.loader:Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            ldc Lcom/oracle/truffle/api/instrumentation/TruffleInstrument;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            putfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.instrumentClass:Ljava/lang/Class;
         5: .line 343
            goto 8
      StackMap locals: com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection
      StackMap stack: java.lang.Exception
         6: astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         7: .line 344
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot initialize "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " instrument with implementation "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection.className:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception ex
         8: .line 338
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 349
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/oracle/truffle/polyglot/InstrumentCache$LegacyLoader$LegacyInstrumentReflection;
            7    8     2    ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.Exception
           2     9      10  any
          10    11      10  any
}
SourceFile: "InstrumentCache.java"
NestHost: com.oracle.truffle.polyglot.InstrumentCache
InnerClasses:
  private abstract InstrumentReflection = com.oracle.truffle.polyglot.InstrumentCache$InstrumentReflection of com.oracle.truffle.polyglot.InstrumentCache
  private final LegacyLoader = com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader of com.oracle.truffle.polyglot.InstrumentCache
  private final LegacyInstrumentReflection = com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader$LegacyInstrumentReflection of com.oracle.truffle.polyglot.InstrumentCache$LegacyLoader