public abstract class com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage extends com.oracle.truffle.api.TruffleLanguage<com.oracle.truffle.api.test.polyglot.LoggingTest$LoggingContext>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage
  super_class: com.oracle.truffle.api.TruffleLanguage
{
  static final java.lang.String[] LOGGER_NAMES;
    descriptor: [Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.util.logging.Level[] LOGGER_LEVELS;
    descriptor: [Ljava/util/logging/Level;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static java.util.function.BiPredicate<com.oracle.truffle.api.test.polyglot.LoggingTest$LoggingContext, com.oracle.truffle.api.TruffleLogger[]> action;
    descriptor: Ljava/util/function/BiPredicate;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/function/BiPredicate<Lcom/oracle/truffle/api/test/polyglot/LoggingTest$LoggingContext;[Lcom/oracle/truffle/api/TruffleLogger;>;

  private final com.oracle.truffle.api.TruffleLogger[] allLoggers;
    descriptor: [Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 1342
            bipush 7
            anewarray java.lang.String
            dup
            iconst_0
            ldc "a"
            aastore
            dup
            iconst_1
            ldc "a.a"
            aastore
            dup
            iconst_2
            ldc "a.b"
            aastore
            dup
            iconst_3
            ldc "a.a.a"
            aastore
            dup
            iconst_4
            ldc "b"
            aastore
            dup
            iconst_5
            ldc "b.a"
            aastore
            dup
            bipush 6
            ldc "b.a.a.a"
            aastore
            putstatic com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage.LOGGER_NAMES:[Ljava/lang/String;
         1: .line 1343
            bipush 6
            anewarray java.util.logging.Level
            dup
            iconst_0
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            aastore
            dup
            iconst_1
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aastore
            dup
            iconst_2
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            aastore
            dup
            iconst_3
            getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
            aastore
            dup
            iconst_4
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
            aastore
            dup
            iconst_5
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            aastore
            putstatic com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage.LOGGER_LEVELS:[Ljava/util/logging/Level;
         2: .line 1344
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage this
        start local 1 // java.lang.String id
         0: .line 1347
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.TruffleLanguage.<init>:()V
         1: .line 1348
            new java.util.ArrayList
            dup
            getstatic com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage.LOGGER_NAMES:[Ljava/lang/String;
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* loggers */
        start local 2 // java.util.ArrayList loggers
         2: .line 1349
            getstatic com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage.LOGGER_NAMES:[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage java.lang.String java.util.ArrayList top int int java.lang.String[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* loggerName */
        start local 3 // java.lang.String loggerName
         4: .line 1350
            aload 2 /* loggers */
            aload 1 /* id */
            aload 3 /* loggerName */
            invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String loggerName
         5: .line 1349
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 3
         7: .line 1352
            aload 0 /* this */
            aload 2 /* loggers */
            iconst_0
            anewarray com.oracle.truffle.api.TruffleLogger
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLogger[]
            putfield com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage.allLoggers:[Lcom/oracle/truffle/api/TruffleLogger;
         8: .line 1353
            return
        end local 2 // java.util.ArrayList loggers
        end local 1 // java.lang.String id
        end local 0 // com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/oracle/truffle/api/test/polyglot/LoggingTest$AbstractLoggingLanguage;
            0    9     1          id  Ljava/lang/String;
            2    9     2     loggers  Ljava/util/ArrayList<Lcom/oracle/truffle/api/TruffleLogger;>;
            4    5     3  loggerName  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      id    final

  protected com.oracle.truffle.api.test.polyglot.LoggingTest$LoggingContext createContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/test/polyglot/LoggingTest$LoggingContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 1357
            new com.oracle.truffle.api.test.polyglot.LoggingTest$LoggingContext
            dup
            aload 1 /* env */
            invokespecial com.oracle.truffle.api.test.polyglot.LoggingTest$LoggingContext.<init>:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/test/polyglot/LoggingTest$AbstractLoggingLanguage;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
      Name  Flags
      env   

  protected com.oracle.truffle.api.CallTarget parse(com.oracle.truffle.api.TruffleLanguage$ParsingRequest);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
         0: .line 1362
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 2 /* language */
        start local 2 // java.lang.Class language
         1: .line 1363
            new com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* language */
            invokespecial com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage$1.<init>:(Lcom/oracle/truffle/api/test/polyglot/LoggingTest$AbstractLoggingLanguage;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Class;)V
            astore 3 /* root */
        start local 3 // com.oracle.truffle.api.nodes.RootNode root
         2: .line 1376
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 3 /* root */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            areturn
        end local 3 // com.oracle.truffle.api.nodes.RootNode root
        end local 2 // java.lang.Class language
        end local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest request
        end local 0 // com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/api/test/polyglot/LoggingTest$AbstractLoggingLanguage;
            0    3     1   request  Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;
            1    3     2  language  Ljava/lang/Class<+Lcom/oracle/truffle/api/test/polyglot/LoggingTest$AbstractLoggingLanguage;>;
            2    3     3      root  Lcom/oracle/truffle/api/nodes/RootNode;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      request  

  private void doLog();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=1
        start local 0 // com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage this
         0: .line 1380
            getstatic com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage.LOGGER_LEVELS:[Ljava/util/logging/Level;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 8
      StackMap locals: com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage top int int java.util.logging.Level[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* level */
        start local 1 // java.util.logging.Level level
         2: .line 1381
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage.allLoggers:[Lcom/oracle/truffle/api/TruffleLogger;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 6
      StackMap locals: com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage java.util.logging.Level int int java.util.logging.Level[] top int int com.oracle.truffle.api.TruffleLogger[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* logger */
        start local 5 // com.oracle.truffle.api.TruffleLogger logger
         4: .line 1382
            aload 5 /* logger */
            aload 1 /* level */
            aload 5 /* logger */
            invokevirtual com.oracle.truffle.api.TruffleLogger.getName:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        end local 5 // com.oracle.truffle.api.TruffleLogger logger
         5: .line 1381
            iinc 6 1
      StackMap locals:
      StackMap stack:
         6: iload 6
            iload 7
            if_icmplt 3
        end local 1 // java.util.logging.Level level
         7: .line 1380
            iinc 2 1
      StackMap locals: com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage top int int java.util.logging.Level[]
      StackMap stack:
         8: iload 2
            iload 3
            if_icmplt 1
         9: .line 1385
            return
        end local 0 // com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/oracle/truffle/api/test/polyglot/LoggingTest$AbstractLoggingLanguage;
            2    7     1   level  Ljava/util/logging/Level;
            4    5     5  logger  Lcom/oracle/truffle/api/TruffleLogger;

  protected java.lang.Object createContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage.createContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/test/polyglot/LoggingTest$LoggingContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lcom/oracle/truffle/api/TruffleLanguage<Lcom/oracle/truffle/api/test/polyglot/LoggingTest$LoggingContext;>;
SourceFile: "LoggingTest.java"
NestHost: com.oracle.truffle.api.test.polyglot.LoggingTest
InnerClasses:
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  public final ParsingRequest = com.oracle.truffle.api.TruffleLanguage$ParsingRequest of com.oracle.truffle.api.TruffleLanguage
  public abstract AbstractLoggingLanguage = com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage of com.oracle.truffle.api.test.polyglot.LoggingTest
  com.oracle.truffle.api.test.polyglot.LoggingTest$AbstractLoggingLanguage$1
  public final LoggingContext = com.oracle.truffle.api.test.polyglot.LoggingTest$LoggingContext of com.oracle.truffle.api.test.polyglot.LoggingTest