public final class com.oracle.truffle.api.TruffleLogger
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.TruffleLogger
  super_class: java.lang.Object
{
  private static final java.lang.String ROOT_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ""

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

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

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

  private static final java.lang.ref.ReferenceQueue<com.oracle.truffle.api.TruffleLogger> loggersRefQueue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ref/ReferenceQueue<Lcom/oracle/truffle/api/TruffleLogger;>;

  private static final java.lang.Object childrenLock;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private final com.oracle.truffle.api.TruffleLogger$LoggerCache loggerCache;
    descriptor: Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile int levelNum;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private volatile com.oracle.truffle.api.Assumption levelNumStable;
    descriptor: Lcom/oracle/truffle/api/Assumption;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private volatile java.util.logging.Level levelObj;
    descriptor: Ljava/util/logging/Level;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile com.oracle.truffle.api.TruffleLogger parent;
    descriptor: Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private java.util.Collection<com.oracle.truffle.api.TruffleLogger$ChildLoggerRef> children;
    descriptor: Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Collection<Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;>;

  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=2, locals=0, args_size=0
         0: .line 83
            ldc Lcom/oracle/truffle/api/TruffleLogger;
            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.api.TruffleLogger.$assertionsDisabled:Z
         3: .line 87
            getstatic java.util.logging.Level.OFF:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Level.intValue:()I
            putstatic com.oracle.truffle.api.TruffleLogger.OFF_VALUE:I
         4: .line 88
            getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Level.intValue:()I
            putstatic com.oracle.truffle.api.TruffleLogger.DEFAULT_VALUE:I
         5: .line 89
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putstatic com.oracle.truffle.api.TruffleLogger.loggersRefQueue:Ljava/lang/ref/ReferenceQueue;
         6: .line 90
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.oracle.truffle.api.TruffleLogger.childrenLock:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String, com.oracle.truffle.api.TruffleLogger$LoggerCache);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String loggerName
        start local 2 // com.oracle.truffle.api.TruffleLogger$LoggerCache loggerCache
         0: .line 100
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 101
            aload 0 /* this */
            aload 1 /* loggerName */
            putfield com.oracle.truffle.api.TruffleLogger.name:Ljava/lang/String;
         2: .line 102
            aload 0 /* this */
            aload 2 /* loggerCache */
            putfield com.oracle.truffle.api.TruffleLogger.loggerCache:Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
         3: .line 103
            aload 0 /* this */
            getstatic com.oracle.truffle.api.TruffleLogger.DEFAULT_VALUE:I
            putfield com.oracle.truffle.api.TruffleLogger.levelNum:I
         4: .line 104
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new java.lang.StringBuilder
            dup
            ldc "Log Level Value stable for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* loggerName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.api.TruffleLogger.levelNumStable:Lcom/oracle/truffle/api/Assumption;
         5: .line 105
            return
        end local 2 // com.oracle.truffle.api.TruffleLogger$LoggerCache loggerCache
        end local 1 // java.lang.String loggerName
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/oracle/truffle/api/TruffleLogger;
            0    6     1   loggerName  Ljava/lang/String;
            0    6     2  loggerCache  Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
    MethodParameters:
             Name  Flags
      loggerName   final
      loggerCache  final

  private void <init>(com.oracle.truffle.api.TruffleLogger$LoggerCache);
    descriptor: (Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // com.oracle.truffle.api.TruffleLogger$LoggerCache loggerCache
         0: .line 108
            aload 0 /* this */
            ldc ""
            aload 1 /* loggerCache */
            invokespecial com.oracle.truffle.api.TruffleLogger.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;)V
         1: .line 109
            return
        end local 1 // com.oracle.truffle.api.TruffleLogger$LoggerCache loggerCache
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  loggerCache  Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
    MethodParameters:
             Name  Flags
      loggerCache  

  public static com.oracle.truffle.api.TruffleLogger getLogger(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String id
         0: .line 122
            aload 0 /* id */
            aconst_null
            invokestatic com.oracle.truffle.api.TruffleLogger$LoggerCache.getInstance:()Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;)Lcom/oracle/truffle/api/TruffleLogger;
            areturn
        end local 0 // java.lang.String id
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    id  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      id    final

  public static com.oracle.truffle.api.TruffleLogger getLogger(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String id
        start local 1 // java.lang.Class forClass
         0: .line 137
            aload 1 /* forClass */
            ldc "Class must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 138
            aload 0 /* id */
            aload 1 /* forClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
            areturn
        end local 1 // java.lang.Class forClass
        end local 0 // java.lang.String id
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0        id  Ljava/lang/String;
            0    2     1  forClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)Lcom/oracle/truffle/api/TruffleLogger;
    MethodParameters:
          Name  Flags
      id        final
      forClass  final

  public static com.oracle.truffle.api.TruffleLogger getLogger(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String id
        start local 1 // java.lang.String loggerName
         0: .line 154
            aload 0 /* id */
            aload 1 /* loggerName */
            invokestatic com.oracle.truffle.api.TruffleLogger$LoggerCache.getInstance:()Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            invokestatic com.oracle.truffle.api.TruffleLogger.getLogger:(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;)Lcom/oracle/truffle/api/TruffleLogger;
            areturn
        end local 1 // java.lang.String loggerName
        end local 0 // java.lang.String id
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0          id  Ljava/lang/String;
            0    1     1  loggerName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      id          final
      loggerName  final

  static com.oracle.truffle.api.TruffleLogger getLogger(java.lang.String, java.lang.String, com.oracle.truffle.api.TruffleLogger$LoggerCache);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;)Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String id
        start local 1 // java.lang.String loggerName
        start local 2 // com.oracle.truffle.api.TruffleLogger$LoggerCache loggerCache
         0: .line 158
            aload 0 /* id */
            ldc "LanguageId must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 159
            aload 2 /* loggerCache */
            aload 0 /* id */
            aload 1 /* loggerName */
            invokevirtual com.oracle.truffle.api.TruffleLogger$LoggerCache.getOrCreateLogger:(Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
            areturn
        end local 2 // com.oracle.truffle.api.TruffleLogger$LoggerCache loggerCache
        end local 1 // java.lang.String loggerName
        end local 0 // java.lang.String id
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0           id  Ljava/lang/String;
            0    2     1   loggerName  Ljava/lang/String;
            0    2     2  loggerCache  Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
    MethodParameters:
             Name  Flags
      id           
      loggerName   
      loggerCache  

  static com.oracle.truffle.api.TruffleLogger$LoggerCache createLoggerCache(, java.util.Map<java.lang.String, java.util.logging.Level>);
    descriptor: (Ljava/lang/Object;Ljava/util/Map;)Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.Object loggerCache
        start local 1 // java.util.Map logLevels
         0: .line 163
            new com.oracle.truffle.api.TruffleLogger$LoggerCache
            dup
            aload 0 /* loggerCache */
            invokespecial com.oracle.truffle.api.TruffleLogger$LoggerCache.<init>:(Ljava/lang/Object;)V
            astore 2 /* cache */
        start local 2 // com.oracle.truffle.api.TruffleLogger$LoggerCache cache
         1: .line 164
            aload 1 /* logLevels */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 5
         2: .line 165
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* loggerCache */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getLoggerOwner:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* vmObject */
        start local 3 // java.lang.Object vmObject
         3: .line 166
            getstatic com.oracle.truffle.api.TruffleLogger.$assertionsDisabled:Z
            ifne 4
            aload 3 /* vmObject */
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 167
      StackMap locals: com.oracle.truffle.api.TruffleLogger$LoggerCache java.lang.Object
      StackMap stack:
            aload 2 /* cache */
            aload 3 /* vmObject */
            aload 1 /* logLevels */
            invokevirtual com.oracle.truffle.api.TruffleLogger$LoggerCache.addLogLevelsForContext:(Ljava/lang/Object;Ljava/util/Map;)V
        end local 3 // java.lang.Object vmObject
         5: .line 169
      StackMap locals:
      StackMap stack:
            aload 2 /* cache */
            areturn
        end local 2 // com.oracle.truffle.api.TruffleLogger$LoggerCache cache
        end local 1 // java.util.Map logLevels
        end local 0 // java.lang.Object loggerCache
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0  loggerCache  Ljava/lang/Object;
            0    6     1    logLevels  Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
            1    6     2        cache  Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            3    5     3     vmObject  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;)Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
    MethodParameters:
             Name  Flags
      loggerCache  
      logLevels    

  public void config(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String message
         0: .line 182
            aload 0 /* this */
            getstatic java.util.logging.Level.CONFIG:Ljava/util/logging/Level;
            aload 1 /* message */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 183
            return
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  final

  public void config(java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.function.Supplier messageSupplier
         0: .line 196
            aload 0 /* this */
            getstatic java.util.logging.Level.CONFIG:Ljava/util/logging/Level;
            aload 1 /* messageSupplier */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
         1: .line 197
            return
        end local 1 // java.util.function.Supplier messageSupplier
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      messageSupplier  final

  public void entering(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String sourceClass
        start local 2 // java.lang.String sourceMethod
         0: .line 211
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 1 /* sourceClass */
            aload 2 /* sourceMethod */
            ldc "ENTRY"
            invokevirtual com.oracle.truffle.api.TruffleLogger.logp:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 212
            return
        end local 2 // java.lang.String sourceMethod
        end local 1 // java.lang.String sourceClass
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1   sourceClass  Ljava/lang/String;
            0    2     2  sourceMethod  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      sourceClass   final
      sourceMethod  final

  public void entering(java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String sourceClass
        start local 2 // java.lang.String sourceMethod
        start local 3 // java.lang.Object parameter
         0: .line 227
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 1 /* sourceClass */
            aload 2 /* sourceMethod */
            ldc "ENTRY {0}"
            aload 3 /* parameter */
            invokevirtual com.oracle.truffle.api.TruffleLogger.logp:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 228
            return
        end local 3 // java.lang.Object parameter
        end local 2 // java.lang.String sourceMethod
        end local 1 // java.lang.String sourceClass
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1   sourceClass  Ljava/lang/String;
            0    2     2  sourceMethod  Ljava/lang/String;
            0    2     3     parameter  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      sourceClass   final
      sourceMethod  final
      parameter     final

  public void entering(java.lang.String, java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String sourceClass
        start local 2 // java.lang.String sourceMethod
        start local 3 // java.lang.Object[] parameters
         0: .line 243
            ldc "ENTRY"
            astore 4 /* msg */
        start local 4 // java.lang.String msg
         1: .line 244
            aload 3 /* parameters */
            ifnonnull 4
         2: .line 245
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 1 /* sourceClass */
            aload 2 /* sourceMethod */
            aload 4 /* msg */
            invokevirtual com.oracle.truffle.api.TruffleLogger.logp:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         3: .line 246
            return
         4: .line 248
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 6
         5: .line 249
            return
         6: .line 251
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 10
         8: .line 252
      StackMap locals: int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 4 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* msg */
         9: .line 251
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            aload 3 /* parameters */
            arraylength
            if_icmplt 8
        end local 5 // int i
        11: .line 254
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 1 /* sourceClass */
            aload 2 /* sourceMethod */
            aload 4 /* msg */
            aload 3 /* parameters */
            invokevirtual com.oracle.truffle.api.TruffleLogger.logp:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 255
            return
        end local 4 // java.lang.String msg
        end local 3 // java.lang.Object[] parameters
        end local 2 // java.lang.String sourceMethod
        end local 1 // java.lang.String sourceClass
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0   13     1   sourceClass  Ljava/lang/String;
            0   13     2  sourceMethod  Ljava/lang/String;
            0   13     3    parameters  [Ljava/lang/Object;
            1   13     4           msg  Ljava/lang/String;
            7   11     5             i  I
    MethodParameters:
              Name  Flags
      sourceClass   final
      sourceMethod  final
      parameters    final

  public void exiting(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String sourceClass
        start local 2 // java.lang.String sourceMethod
         0: .line 269
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 1 /* sourceClass */
            aload 2 /* sourceMethod */
            ldc "RETURN"
            invokevirtual com.oracle.truffle.api.TruffleLogger.logp:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 270
            return
        end local 2 // java.lang.String sourceMethod
        end local 1 // java.lang.String sourceClass
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1   sourceClass  Ljava/lang/String;
            0    2     2  sourceMethod  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      sourceClass   final
      sourceMethod  final

  public void exiting(java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String sourceClass
        start local 2 // java.lang.String sourceMethod
        start local 3 // java.lang.Object result
         0: .line 285
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 1 /* sourceClass */
            aload 2 /* sourceMethod */
            ldc "RETURN {0}"
            aload 3 /* result */
            invokevirtual com.oracle.truffle.api.TruffleLogger.logp:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 286
            return
        end local 3 // java.lang.Object result
        end local 2 // java.lang.String sourceMethod
        end local 1 // java.lang.String sourceClass
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1   sourceClass  Ljava/lang/String;
            0    2     2  sourceMethod  Ljava/lang/String;
            0    2     3        result  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      sourceClass   final
      sourceMethod  final
      result        final

  public void fine(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String message
         0: .line 298
            aload 0 /* this */
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            aload 1 /* message */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 299
            return
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  final

  public void fine(java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.function.Supplier messageSupplier
         0: .line 312
            aload 0 /* this */
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            aload 1 /* messageSupplier */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
         1: .line 313
            return
        end local 1 // java.util.function.Supplier messageSupplier
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      messageSupplier  final

  public void finer(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String message
         0: .line 325
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 1 /* message */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 326
            return
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  final

  public void finer(java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.function.Supplier messageSupplier
         0: .line 339
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 1 /* messageSupplier */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
         1: .line 340
            return
        end local 1 // java.util.function.Supplier messageSupplier
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      messageSupplier  final

  public void finest(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String message
         0: .line 352
            aload 0 /* this */
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            aload 1 /* message */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 353
            return
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  final

  public void finest(java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.function.Supplier messageSupplier
         0: .line 366
            aload 0 /* this */
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            aload 1 /* messageSupplier */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
         1: .line 367
            return
        end local 1 // java.util.function.Supplier messageSupplier
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      messageSupplier  final

  public void info(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String message
         0: .line 379
            aload 0 /* this */
            getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
            aload 1 /* message */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 380
            return
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  final

  public void info(java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.function.Supplier messageSupplier
         0: .line 393
            aload 0 /* this */
            getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
            aload 1 /* messageSupplier */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
         1: .line 394
            return
        end local 1 // java.util.function.Supplier messageSupplier
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      messageSupplier  final

  public void severe(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String message
         0: .line 406
            aload 0 /* this */
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
            aload 1 /* message */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 407
            return
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  final

  public void severe(java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.function.Supplier messageSupplier
         0: .line 420
            aload 0 /* this */
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
            aload 1 /* messageSupplier */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
         1: .line 421
            return
        end local 1 // java.util.function.Supplier messageSupplier
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      messageSupplier  final

  public <T extends java.lang.Throwable> T throwing(java.lang.String, java.lang.String, );
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String sourceClass
        start local 2 // java.lang.String sourceMethod
        start local 3 // java.lang.Throwable thrown
         0: .line 436
            aload 0 /* this */
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 1 /* sourceClass */
            aload 2 /* sourceMethod */
            ldc "THROW"
            aload 3 /* thrown */
            invokevirtual com.oracle.truffle.api.TruffleLogger.logp:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
         1: .line 437
            aload 3 /* thrown */
            areturn
        end local 3 // java.lang.Throwable thrown
        end local 2 // java.lang.String sourceMethod
        end local 1 // java.lang.String sourceClass
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1   sourceClass  Ljava/lang/String;
            0    2     2  sourceMethod  Ljava/lang/String;
            0    2     3        thrown  TT;
    Signature: <T:Ljava/lang/Throwable;>(Ljava/lang/String;Ljava/lang/String;TT;)TT;
    MethodParameters:
              Name  Flags
      sourceClass   final
      sourceMethod  final
      thrown        final

  public void warning(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.lang.String message
         0: .line 450
            aload 0 /* this */
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            aload 1 /* message */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         1: .line 451
            return
        end local 1 // java.lang.String message
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  final

  public void warning(java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.function.Supplier messageSupplier
         0: .line 464
            aload 0 /* this */
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            aload 1 /* messageSupplier */
            invokevirtual com.oracle.truffle.api.TruffleLogger.log:(Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
         1: .line 465
            return
        end local 1 // java.util.function.Supplier messageSupplier
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      messageSupplier  final

  public void log(java.util.logging.Level, java.lang.String);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String message
         0: .line 478
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 479
            return
         2: .line 481
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* message */
            aconst_null
            aconst_null
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 482
            return
        end local 2 // java.lang.String message
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1    level  Ljava/util/logging/Level;
            0    4     2  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      level    final
      message  final

  public void log(java.util.logging.Level, java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.util.function.Supplier messageSupplier
         0: .line 496
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 497
            return
         2: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* messageSupplier */
            aconst_null
            aconst_null
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/util/function/Supplier;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 500
            return
        end local 2 // java.util.function.Supplier messageSupplier
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1            level  Ljava/util/logging/Level;
            0    4     2  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/logging/Level;Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      level            final
      messageSupplier  final

  public void log(java.util.logging.Level, java.lang.String, java.lang.Object);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String message
        start local 3 // java.lang.Object parameter
         0: .line 514
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 515
            return
         2: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* message */
            aconst_null
            aconst_null
            aload 3 /* parameter */
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 518
            return
        end local 3 // java.lang.Object parameter
        end local 2 // java.lang.String message
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1      level  Ljava/util/logging/Level;
            0    4     2    message  Ljava/lang/String;
            0    4     3  parameter  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      level      final
      message    final
      parameter  final

  public void log(java.util.logging.Level, java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String message
        start local 3 // java.lang.Object[] parameters
         0: .line 532
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 533
            return
         2: .line 535
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* message */
            aconst_null
            aconst_null
            aload 3 /* parameters */
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 536
            return
        end local 3 // java.lang.Object[] parameters
        end local 2 // java.lang.String message
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1       level  Ljava/util/logging/Level;
            0    4     2     message  Ljava/lang/String;
            0    4     3  parameters  [Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      level       final
      message     final
      parameters  final

  public void log(java.util.logging.Level, java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String message
        start local 3 // java.lang.Throwable thrown
         0: .line 550
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 551
            return
         2: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* message */
            aconst_null
            aconst_null
            aload 3 /* thrown */
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
         3: .line 554
            return
        end local 3 // java.lang.Throwable thrown
        end local 2 // java.lang.String message
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1    level  Ljava/util/logging/Level;
            0    4     2  message  Ljava/lang/String;
            0    4     3   thrown  Ljava/lang/Throwable;
    MethodParameters:
         Name  Flags
      level    final
      message  final
      thrown   final

  public void log(java.util.logging.Level, java.lang.Throwable, java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/Throwable;Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.Throwable thrown
        start local 3 // java.util.function.Supplier messageSupplier
         0: .line 569
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 570
            return
         2: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 3 /* messageSupplier */
            aconst_null
            aconst_null
            aload 2 /* thrown */
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/util/function/Supplier;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
         3: .line 573
            return
        end local 3 // java.util.function.Supplier messageSupplier
        end local 2 // java.lang.Throwable thrown
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1            level  Ljava/util/logging/Level;
            0    4     2           thrown  Ljava/lang/Throwable;
            0    4     3  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/logging/Level;Ljava/lang/Throwable;Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      level            final
      thrown           final
      messageSupplier  final

  public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String sourceClass
        start local 3 // java.lang.String sourceMethod
        start local 4 // java.lang.String message
         0: .line 588
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 589
            return
         2: .line 591
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 4 /* message */
            aload 2 /* sourceClass */
            aload 3 /* sourceMethod */
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 592
            return
        end local 4 // java.lang.String message
        end local 3 // java.lang.String sourceMethod
        end local 2 // java.lang.String sourceClass
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1         level  Ljava/util/logging/Level;
            0    4     2   sourceClass  Ljava/lang/String;
            0    4     3  sourceMethod  Ljava/lang/String;
            0    4     4       message  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      level         final
      sourceClass   final
      sourceMethod  final
      message       final

  public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String sourceClass
        start local 3 // java.lang.String sourceMethod
        start local 4 // java.util.function.Supplier messageSupplier
         0: .line 608
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 609
            return
         2: .line 611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 4 /* messageSupplier */
            aload 2 /* sourceClass */
            aload 3 /* sourceMethod */
            aconst_null
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/util/function/Supplier;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 612
            return
        end local 4 // java.util.function.Supplier messageSupplier
        end local 3 // java.lang.String sourceMethod
        end local 2 // java.lang.String sourceClass
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1            level  Ljava/util/logging/Level;
            0    4     2      sourceClass  Ljava/lang/String;
            0    4     3     sourceMethod  Ljava/lang/String;
            0    4     4  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      level            final
      sourceClass      final
      sourceMethod     final
      messageSupplier  final

  public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String sourceClass
        start local 3 // java.lang.String sourceMethod
        start local 4 // java.lang.String message
        start local 5 // java.lang.Object parameter
         0: .line 628
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 629
            return
         2: .line 631
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 4 /* message */
            aload 2 /* sourceClass */
            aload 3 /* sourceMethod */
            aload 5 /* parameter */
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 632
            return
        end local 5 // java.lang.Object parameter
        end local 4 // java.lang.String message
        end local 3 // java.lang.String sourceMethod
        end local 2 // java.lang.String sourceClass
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1         level  Ljava/util/logging/Level;
            0    4     2   sourceClass  Ljava/lang/String;
            0    4     3  sourceMethod  Ljava/lang/String;
            0    4     4       message  Ljava/lang/String;
            0    4     5     parameter  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      level         final
      sourceClass   final
      sourceMethod  final
      message       final
      parameter     final

  public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String sourceClass
        start local 3 // java.lang.String sourceMethod
        start local 4 // java.lang.String message
        start local 5 // java.lang.Object[] parameters
         0: .line 648
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 649
            return
         2: .line 651
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 4 /* message */
            aload 2 /* sourceClass */
            aload 3 /* sourceMethod */
            aload 5 /* parameters */
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 652
            return
        end local 5 // java.lang.Object[] parameters
        end local 4 // java.lang.String message
        end local 3 // java.lang.String sourceMethod
        end local 2 // java.lang.String sourceClass
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1         level  Ljava/util/logging/Level;
            0    4     2   sourceClass  Ljava/lang/String;
            0    4     3  sourceMethod  Ljava/lang/String;
            0    4     4       message  Ljava/lang/String;
            0    4     5    parameters  [Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      level         final
      sourceClass   final
      sourceMethod  final
      message       final
      parameters    

  public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String sourceClass
        start local 3 // java.lang.String sourceMethod
        start local 4 // java.lang.String message
        start local 5 // java.lang.Throwable thrown
         0: .line 668
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 669
            return
         2: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 4 /* message */
            aload 2 /* sourceClass */
            aload 3 /* sourceMethod */
            aload 5 /* thrown */
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
         3: .line 672
            return
        end local 5 // java.lang.Throwable thrown
        end local 4 // java.lang.String message
        end local 3 // java.lang.String sourceMethod
        end local 2 // java.lang.String sourceClass
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1         level  Ljava/util/logging/Level;
            0    4     2   sourceClass  Ljava/lang/String;
            0    4     3  sourceMethod  Ljava/lang/String;
            0    4     4       message  Ljava/lang/String;
            0    4     5        thrown  Ljava/lang/Throwable;
    MethodParameters:
              Name  Flags
      level         final
      sourceClass   final
      sourceMethod  final
      message       final
      thrown        final

  public void logp(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.Throwable, java.util.function.Supplier<java.lang.String>);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String sourceClass
        start local 3 // java.lang.String sourceMethod
        start local 4 // java.lang.Throwable thrown
        start local 5 // java.util.function.Supplier messageSupplier
         0: .line 689
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggable:(Ljava/util/logging/Level;)Z
            ifne 2
         1: .line 690
            return
         2: .line 692
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            aload 5 /* messageSupplier */
            aload 2 /* sourceClass */
            aload 3 /* sourceMethod */
            aload 4 /* thrown */
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/util/function/Supplier;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
         3: .line 693
            return
        end local 5 // java.util.function.Supplier messageSupplier
        end local 4 // java.lang.Throwable thrown
        end local 3 // java.lang.String sourceMethod
        end local 2 // java.lang.String sourceClass
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1            level  Ljava/util/logging/Level;
            0    4     2      sourceClass  Ljava/lang/String;
            0    4     3     sourceMethod  Ljava/lang/String;
            0    4     4           thrown  Ljava/lang/Throwable;
            0    4     5  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;Ljava/util/function/Supplier<Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      level            final
      sourceClass      final
      sourceMethod     final
      thrown           final
      messageSupplier  final

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLogger this
         0: .line 702
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.name:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLogger;

  public com.oracle.truffle.api.TruffleLogger getParent();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLogger this
         0: .line 713
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/TruffleLogger;

  public boolean isLoggable(java.util.logging.Level);
    descriptor: (Ljava/util/logging/Level;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
         0: .line 724
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLogger.getLevelNum:()I
            istore 2 /* value */
        start local 2 // int value
         1: .line 725
            aload 1 /* level */
            invokevirtual java.util.logging.Level.intValue:()I
            iload 2 /* value */
            if_icmplt 2
            iload 2 /* value */
            getstatic com.oracle.truffle.api.TruffleLogger.OFF_VALUE:I
            if_icmpne 3
         2: .line 726
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         3: .line 728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger.isLoggableSlowPath:(Ljava/util/logging/Level;)Z
            ireturn
        end local 2 // int value
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/api/TruffleLogger;
            0    4     1  level  Ljava/util/logging/Level;
            1    4     2  value  I
    MethodParameters:
       Name  Flags
      level  final

  private boolean isLoggableSlowPath(java.util.logging.Level);
    descriptor: (Ljava/util/logging/Level;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
         0: .line 733
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.loggerCache:Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLogger.getName:()Ljava/lang/String;
            aload 1 /* level */
            invokevirtual com.oracle.truffle.api.TruffleLogger$LoggerCache.isLoggable:(Ljava/lang/String;Ljava/util/logging/Level;)Z
            ireturn
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/api/TruffleLogger;
            0    1     1  level  Ljava/util/logging/Level;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      level  final

  private void doLog(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String message
        start local 3 // java.lang.String className
        start local 4 // java.lang.String methodName
        start local 5 // java.lang.Object param
         0: .line 743
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* message */
            aload 3 /* className */
            aload 4 /* methodName */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* param */
            aastore
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 744
            return
        end local 5 // java.lang.Object param
        end local 4 // java.lang.String methodName
        end local 3 // java.lang.String className
        end local 2 // java.lang.String message
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1       level  Ljava/util/logging/Level;
            0    2     2     message  Ljava/lang/String;
            0    2     3   className  Ljava/lang/String;
            0    2     4  methodName  Ljava/lang/String;
            0    2     5       param  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      level       final
      message     final
      className   final
      methodName  final
      param       final

  private void doLog(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=7, args_size=6
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String message
        start local 3 // java.lang.String className
        start local 4 // java.lang.String methodName
        start local 5 // java.lang.Object[] params
         0: .line 753
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
         1: .line 754
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.loggerCache:Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            invokevirtual com.oracle.truffle.api.TruffleLogger$LoggerCache.getSPI:()Ljava/lang/Object;
         2: .line 755
            aload 1 /* level */
         3: .line 756
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLogger.getName:()Ljava/lang/String;
         4: .line 757
            aload 2 /* message */
         5: .line 758
            aload 3 /* className */
         6: .line 759
            aload 4 /* methodName */
         7: .line 760
            aload 5 /* params */
         8: .line 761
            aconst_null
         9: .line 753
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.createLogRecord:(Ljava/lang/Object;Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/util/logging/LogRecord;
            astore 6 /* logRecord */
        start local 6 // java.util.logging.LogRecord logRecord
        10: .line 762
            aload 0 /* this */
            aload 6 /* logRecord */
            invokevirtual com.oracle.truffle.api.TruffleLogger.callHandlers:(Ljava/util/logging/LogRecord;)V
        11: .line 763
            return
        end local 6 // java.util.logging.LogRecord logRecord
        end local 5 // java.lang.Object[] params
        end local 4 // java.lang.String methodName
        end local 3 // java.lang.String className
        end local 2 // java.lang.String message
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lcom/oracle/truffle/api/TruffleLogger;
            0   12     1       level  Ljava/util/logging/Level;
            0   12     2     message  Ljava/lang/String;
            0   12     3   className  Ljava/lang/String;
            0   12     4  methodName  Ljava/lang/String;
            0   12     5      params  [Ljava/lang/Object;
           10   12     6   logRecord  Ljava/util/logging/LogRecord;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      level       final
      message     final
      className   final
      methodName  final
      params      final

  private void doLog(java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=7, args_size=6
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.lang.String message
        start local 3 // java.lang.String className
        start local 4 // java.lang.String methodName
        start local 5 // java.lang.Throwable thrown
         0: .line 772
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
         1: .line 773
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.loggerCache:Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            invokevirtual com.oracle.truffle.api.TruffleLogger$LoggerCache.getSPI:()Ljava/lang/Object;
         2: .line 774
            aload 1 /* level */
         3: .line 775
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLogger.getName:()Ljava/lang/String;
         4: .line 776
            aload 2 /* message */
         5: .line 777
            aload 3 /* className */
         6: .line 778
            aload 4 /* methodName */
         7: .line 779
            aconst_null
         8: .line 780
            aload 5 /* thrown */
         9: .line 772
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.createLogRecord:(Ljava/lang/Object;Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/util/logging/LogRecord;
            astore 6 /* logRecord */
        start local 6 // java.util.logging.LogRecord logRecord
        10: .line 781
            aload 0 /* this */
            aload 6 /* logRecord */
            invokevirtual com.oracle.truffle.api.TruffleLogger.callHandlers:(Ljava/util/logging/LogRecord;)V
        11: .line 782
            return
        end local 6 // java.util.logging.LogRecord logRecord
        end local 5 // java.lang.Throwable thrown
        end local 4 // java.lang.String methodName
        end local 3 // java.lang.String className
        end local 2 // java.lang.String message
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lcom/oracle/truffle/api/TruffleLogger;
            0   12     1       level  Ljava/util/logging/Level;
            0   12     2     message  Ljava/lang/String;
            0   12     3   className  Ljava/lang/String;
            0   12     4  methodName  Ljava/lang/String;
            0   12     5      thrown  Ljava/lang/Throwable;
           10   12     6   logRecord  Ljava/util/logging/LogRecord;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
            Name  Flags
      level       final
      message     final
      className   final
      methodName  final
      thrown      final

  private void doLog(java.util.logging.Level, java.util.function.Supplier<java.lang.String>, java.lang.String, java.lang.String, );
    descriptor: (Ljava/util/logging/Level;Ljava/util/function/Supplier;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.util.function.Supplier messageSupplier
        start local 3 // java.lang.String className
        start local 4 // java.lang.String methodName
        start local 5 // java.lang.Object param
         0: .line 791
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* messageSupplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 3 /* className */
            aload 4 /* methodName */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* param */
            aastore
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 792
            return
        end local 5 // java.lang.Object param
        end local 4 // java.lang.String methodName
        end local 3 // java.lang.String className
        end local 2 // java.util.function.Supplier messageSupplier
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1            level  Ljava/util/logging/Level;
            0    2     2  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
            0    2     3        className  Ljava/lang/String;
            0    2     4       methodName  Ljava/lang/String;
            0    2     5            param  Ljava/lang/Object;
    Signature: (Ljava/util/logging/Level;Ljava/util/function/Supplier<Ljava/lang/String;>;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                 Name  Flags
      level            final
      messageSupplier  final
      className        final
      methodName       final
      param            final

  private void doLog(java.util.logging.Level, java.util.function.Supplier<java.lang.String>, java.lang.String, java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/util/logging/Level;Ljava/util/function/Supplier;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // java.util.function.Supplier messageSupplier
        start local 3 // java.lang.String className
        start local 4 // java.lang.String methodName
        start local 5 // java.lang.Throwable thrown
         0: .line 801
            aload 0 /* this */
            aload 1 /* level */
            aload 2 /* messageSupplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 3 /* className */
            aload 4 /* methodName */
            aload 5 /* thrown */
            invokevirtual com.oracle.truffle.api.TruffleLogger.doLog:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
         1: .line 802
            return
        end local 5 // java.lang.Throwable thrown
        end local 4 // java.lang.String methodName
        end local 3 // java.lang.String className
        end local 2 // java.util.function.Supplier messageSupplier
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/api/TruffleLogger;
            0    2     1            level  Ljava/util/logging/Level;
            0    2     2  messageSupplier  Ljava/util/function/Supplier<Ljava/lang/String;>;
            0    2     3        className  Ljava/lang/String;
            0    2     4       methodName  Ljava/lang/String;
            0    2     5           thrown  Ljava/lang/Throwable;
    Signature: (Ljava/util/logging/Level;Ljava/util/function/Supplier<Ljava/lang/String;>;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                 Name  Flags
      level            final
      messageSupplier  final
      className        final
      methodName       final
      thrown           final

  private void callHandlers(java.util.logging.LogRecord);
    descriptor: (Ljava/util/logging/LogRecord;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.LogRecord record
         0: .line 805
            ldc "Log handler should never be called from compiled code."
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         1: .line 806
            aload 0 /* this */
            astore 2 /* current */
        start local 2 // com.oracle.truffle.api.TruffleLogger current
         2: goto 6
         3: .line 807
      StackMap locals: com.oracle.truffle.api.TruffleLogger
      StackMap stack:
            aload 2 /* current */
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.loggerCache:Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            getfield com.oracle.truffle.api.TruffleLogger$LoggerCache.polyglotRootLogger:Lcom/oracle/truffle/api/TruffleLogger;
            if_acmpne 5
         4: .line 808
            invokestatic com.oracle.truffle.api.LanguageAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.loggerCache:Lcom/oracle/truffle/api/TruffleLogger$LoggerCache;
            invokevirtual com.oracle.truffle.api.TruffleLogger$LoggerCache.getSPI:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getLogHandler:(Ljava/lang/Object;)Ljava/util/logging/Handler;
            aload 1 /* record */
            invokevirtual java.util.logging.Handler.publish:(Ljava/util/logging/LogRecord;)V
         5: .line 806
      StackMap locals:
      StackMap stack:
            aload 2 /* current */
            invokevirtual com.oracle.truffle.api.TruffleLogger.getParent:()Lcom/oracle/truffle/api/TruffleLogger;
            astore 2 /* current */
      StackMap locals:
      StackMap stack:
         6: aload 2 /* current */
            ifnonnull 3
        end local 2 // com.oracle.truffle.api.TruffleLogger current
         7: .line 811
            return
        end local 1 // java.util.logging.LogRecord record
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/oracle/truffle/api/TruffleLogger;
            0    8     1   record  Ljava/util/logging/LogRecord;
            2    7     2  current  Lcom/oracle/truffle/api/TruffleLogger;
    MethodParameters:
        Name  Flags
      record  final

  private void removeChild(com.oracle.truffle.api.TruffleLogger$ChildLoggerRef);
    descriptor: (Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef child
         0: .line 814
            getstatic com.oracle.truffle.api.TruffleLogger.childrenLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 815
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.children:Ljava/util/Collection;
            ifnull 9
         2: .line 816
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.children:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3 /* it */
        start local 3 // java.util.Iterator it
         3: goto 8
         4: .line 817
      StackMap locals: java.lang.Object java.util.Iterator
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            aload 1 /* child */
            if_acmpne 8
         5: .line 818
            aload 3 /* it */
            invokeinterface java.util.Iterator.remove:()V
         6: .line 819
            aload 2
            monitorexit
         7: return
         8: .line 816
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 3 // java.util.Iterator it
         9: .line 814
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 824
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef child
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lcom/oracle/truffle/api/TruffleLogger;
            0   14     1  child  Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;
            3    9     3     it  Ljava/util/Iterator<Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;>;
      Exception table:
        from    to  target  type
           1     7      11  any
           8    10      11  any
          11    12      11  any
    MethodParameters:
       Name  Flags
      child  final

  private void updateLevelNum(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // boolean singleContext
         0: .line 828
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.levelObj:Ljava/util/logging/Level;
            ifnull 5
         1: .line 829
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.levelObj:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Level.intValue:()I
            istore 2 /* value */
        start local 2 // int value
         2: .line 830
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            ifnull 9
            iload 1 /* singleContext */
            ifne 9
         3: .line 831
            iload 2 /* value */
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            invokevirtual com.oracle.truffle.api.TruffleLogger.getLevelNum:()I
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* value */
         4: .line 833
            goto 9
        end local 2 // int value
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            ifnull 8
         6: .line 834
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            invokevirtual com.oracle.truffle.api.TruffleLogger.getLevelNum:()I
            istore 2 /* value */
        start local 2 // int value
         7: .line 835
            goto 9
        end local 2 // int value
         8: .line 836
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.TruffleLogger.DEFAULT_VALUE:I
            istore 2 /* value */
        start local 2 // int value
         9: .line 838
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* value */
            invokevirtual com.oracle.truffle.api.TruffleLogger.setLevelNum:(I)Z
            pop
        10: .line 839
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.children:Ljava/util/Collection;
            ifnull 17
        11: .line 840
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.children:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: com.oracle.truffle.api.TruffleLogger int int top java.util.Iterator
      StackMap stack:
        12: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLogger$ChildLoggerRef
            astore 3 /* ref */
        start local 3 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef ref
        13: .line 841
            aload 3 /* ref */
            invokevirtual com.oracle.truffle.api.TruffleLogger$ChildLoggerRef.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLogger
            astore 5 /* logger */
        start local 5 // com.oracle.truffle.api.TruffleLogger logger
        14: .line 842
            aload 5 /* logger */
            ifnull 16
        15: .line 843
            aload 5 /* logger */
            iload 1 /* singleContext */
            invokevirtual com.oracle.truffle.api.TruffleLogger.updateLevelNum:(Z)V
        end local 5 // com.oracle.truffle.api.TruffleLogger logger
        end local 3 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef ref
        16: .line 840
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        17: .line 847
      StackMap locals: com.oracle.truffle.api.TruffleLogger int int
      StackMap stack:
            return
        end local 2 // int value
        end local 1 // boolean singleContext
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lcom/oracle/truffle/api/TruffleLogger;
            0   18     1  singleContext  Z
            2    5     2          value  I
            7    8     2          value  I
            9   18     2          value  I
           13   16     3            ref  Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;
           14   16     5         logger  Lcom/oracle/truffle/api/TruffleLogger;
    MethodParameters:
               Name  Flags
      singleContext  

  private int getLevelNum();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLogger this
         0: .line 850
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.levelNumStable:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifne 2
         1: .line 851
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 853
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.levelNum:I
            ireturn
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/TruffleLogger;

  private boolean setLevelNum(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // int value
         0: .line 857
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.levelNum:I
            iload 1 /* value */
            if_icmpeq 6
         1: .line 858
            aload 0 /* this */
            iload 1 /* value */
            putfield com.oracle.truffle.api.TruffleLogger.levelNum:I
         2: .line 859
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.levelNumStable:Lcom/oracle/truffle/api/Assumption;
            astore 2 /* currentAssumtion */
        start local 2 // com.oracle.truffle.api.Assumption currentAssumtion
         3: .line 860
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            new java.lang.StringBuilder
            dup
            ldc "Log Level Value stable for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLogger.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.api.TruffleLogger.levelNumStable:Lcom/oracle/truffle/api/Assumption;
         4: .line 861
            aload 2 /* currentAssumtion */
            invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
         5: .line 862
            iconst_1
            ireturn
        end local 2 // com.oracle.truffle.api.Assumption currentAssumtion
         6: .line 864
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // int value
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lcom/oracle/truffle/api/TruffleLogger;
            0    7     1             value  I
            3    6     2  currentAssumtion  Lcom/oracle/truffle/api/Assumption;
    MethodParameters:
       Name  Flags
      value  final

  private void setLevel(java.util.logging.Level, boolean);
    descriptor: (Ljava/util/logging/Level;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // java.util.logging.Level level
        start local 2 // boolean singleContext
         0: .line 868
            getstatic com.oracle.truffle.api.TruffleLogger.childrenLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 869
            aload 0 /* this */
            aload 1 /* level */
            putfield com.oracle.truffle.api.TruffleLogger.levelObj:Ljava/util/logging/Level;
         2: .line 870
            aload 0 /* this */
            iload 2 /* singleContext */
            invokevirtual com.oracle.truffle.api.TruffleLogger.updateLevelNum:(Z)V
         3: .line 868
            aload 3
            monitorexit
         4: goto 7
      StackMap locals: com.oracle.truffle.api.TruffleLogger java.util.logging.Level int java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 3
            monitorexit
         6: athrow
         7: .line 872
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean singleContext
        end local 1 // java.util.logging.Level level
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/oracle/truffle/api/TruffleLogger;
            0    8     1          level  Ljava/util/logging/Level;
            0    8     2  singleContext  Z
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
               Name  Flags
      level          final
      singleContext  final

  private void setParent(com.oracle.truffle.api.TruffleLogger, boolean);
    descriptor: (Lcom/oracle/truffle/api/TruffleLogger;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLogger this
        start local 1 // com.oracle.truffle.api.TruffleLogger newParent
        start local 2 // boolean singleContext
         0: .line 875
            aload 1 /* newParent */
            ldc "Parent must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 876
            getstatic com.oracle.truffle.api.TruffleLogger.childrenLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 877
            aconst_null
            astore 4 /* found */
        start local 4 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef found
         3: .line 878
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            ifnull 13
         4: .line 879
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            getfield com.oracle.truffle.api.TruffleLogger.children:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5 /* it */
        start local 5 // java.util.Iterator it
         5: goto 12
         6: .line 880
      StackMap locals: java.lang.Object com.oracle.truffle.api.TruffleLogger$ChildLoggerRef java.util.Iterator
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLogger$ChildLoggerRef
            astore 6 /* childRef */
        start local 6 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef childRef
         7: .line 881
            aload 6 /* childRef */
            invokevirtual com.oracle.truffle.api.TruffleLogger$ChildLoggerRef.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLogger
            astore 7 /* childLogger */
        start local 7 // com.oracle.truffle.api.TruffleLogger childLogger
         8: .line 882
            aload 7 /* childLogger */
            aload 0 /* this */
            if_acmpne 12
         9: .line 883
            aload 6 /* childRef */
            astore 4 /* found */
        10: .line 884
            aload 5 /* it */
            invokeinterface java.util.Iterator.remove:()V
        11: .line 885
            goto 13
        end local 7 // com.oracle.truffle.api.TruffleLogger childLogger
        end local 6 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef childRef
        12: .line 879
      StackMap locals:
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 5 // java.util.Iterator it
        13: .line 889
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newParent */
            putfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
        14: .line 890
            aload 4 /* found */
            ifnonnull 16
        15: .line 891
            new com.oracle.truffle.api.TruffleLogger$ChildLoggerRef
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.TruffleLogger$ChildLoggerRef.<init>:(Lcom/oracle/truffle/api/TruffleLogger;)V
            astore 4 /* found */
        16: .line 893
      StackMap locals:
      StackMap stack:
            aload 4 /* found */
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            invokevirtual com.oracle.truffle.api.TruffleLogger$ChildLoggerRef.setParent:(Lcom/oracle/truffle/api/TruffleLogger;)V
        17: .line 894
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            getfield com.oracle.truffle.api.TruffleLogger.children:Ljava/util/Collection;
            ifnonnull 19
        18: .line 895
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield com.oracle.truffle.api.TruffleLogger.children:Ljava/util/Collection;
        19: .line 897
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger.parent:Lcom/oracle/truffle/api/TruffleLogger;
            getfield com.oracle.truffle.api.TruffleLogger.children:Ljava/util/Collection;
            aload 4 /* found */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        20: .line 898
            aload 0 /* this */
            iload 2 /* singleContext */
            invokevirtual com.oracle.truffle.api.TruffleLogger.updateLevelNum:(Z)V
        end local 4 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef found
        21: .line 876
            aload 3
            monitorexit
        22: goto 25
      StackMap locals: com.oracle.truffle.api.TruffleLogger com.oracle.truffle.api.TruffleLogger int java.lang.Object
      StackMap stack: java.lang.Throwable
        23: aload 3
            monitorexit
        24: athrow
        25: .line 900
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean singleContext
        end local 1 // com.oracle.truffle.api.TruffleLogger newParent
        end local 0 // com.oracle.truffle.api.TruffleLogger this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Lcom/oracle/truffle/api/TruffleLogger;
            0   26     1      newParent  Lcom/oracle/truffle/api/TruffleLogger;
            0   26     2  singleContext  Z
            3   21     4          found  Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;
            5   13     5             it  Ljava/util/Iterator<Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;>;
            7   12     6       childRef  Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;
            8   12     7    childLogger  Lcom/oracle/truffle/api/TruffleLogger;
      Exception table:
        from    to  target  type
           2    22      23  any
          23    24      23  any
    MethodParameters:
               Name  Flags
      newParent      final
      singleContext  final

  private static void cleanupFreedReferences();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 903
            iconst_0
            istore 0 /* i */
        start local 0 // int i
         1: goto 7
         2: .line 904
      StackMap locals: int
      StackMap stack:
            getstatic com.oracle.truffle.api.TruffleLogger.loggersRefQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            checkcast com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef
            astore 1 /* ref */
        start local 1 // com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef ref
         3: .line 905
            aload 1 /* ref */
            ifnonnull 5
         4: .line 906
            goto 8
         5: .line 908
      StackMap locals: com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef
      StackMap stack:
            aload 1 /* ref */
            invokevirtual com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef.close:()V
        end local 1 // com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef ref
         6: .line 903
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 0 /* i */
            bipush 100
            if_icmplt 2
        end local 0 // int i
         8: .line 910
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    8     0     i  I
            3    6     1   ref  Lcom/oracle/truffle/api/TruffleLogger$AbstractLoggerRef;
}
SourceFile: "TruffleLogger.java"
NestMembers:
  com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef  com.oracle.truffle.api.TruffleLogger$ChildLoggerRef  com.oracle.truffle.api.TruffleLogger$LoggerCache  com.oracle.truffle.api.TruffleLogger$LoggerCache$ContextWeakReference  com.oracle.truffle.api.TruffleLogger$LoggerCache$LoggerNode  com.oracle.truffle.api.TruffleLogger$LoggerCache$NamedLoggerRef
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  private abstract AbstractLoggerRef = com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef of com.oracle.truffle.api.TruffleLogger
  private final ChildLoggerRef = com.oracle.truffle.api.TruffleLogger$ChildLoggerRef of com.oracle.truffle.api.TruffleLogger
  final LoggerCache = com.oracle.truffle.api.TruffleLogger$LoggerCache of com.oracle.truffle.api.TruffleLogger
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor