abstract class com.oracle.truffle.regex.util.TruffleReadOnlyMap$ReadCacheNode extends com.oracle.truffle.api.nodes.Node
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.regex.util.TruffleReadOnlyMap$ReadCacheNode
  super_class: com.oracle.truffle.api.nodes.Node
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap$ReadCacheNode this
         0: .line 126
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
            return
        end local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap$ReadCacheNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap$ReadCacheNode;

  abstract java.lang.Object execute(com.oracle.truffle.regex.util.TruffleReadOnlyMap, java.lang.String);
    descriptor: (Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws com.oracle.truffle.api.interop.UnknownIdentifierException
    MethodParameters:
          Name  Flags
      receiver  
      symbol    

  static java.lang.Object readIdentity(com.oracle.truffle.regex.util.TruffleReadOnlyMap, java.lang.String, com.oracle.truffle.regex.util.TruffleReadOnlyMap, java.lang.String, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;Ljava/lang/String;Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=5, args_size=5
        start local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap receiver
        start local 1 // java.lang.String symbol
        start local 2 // com.oracle.truffle.regex.util.TruffleReadOnlyMap cachedReceiver
        start local 3 // java.lang.String cachedSymbol
        start local 4 // java.lang.Object result
         0: .line 136
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Object result
        end local 3 // java.lang.String cachedSymbol
        end local 2 // com.oracle.truffle.regex.util.TruffleReadOnlyMap cachedReceiver
        end local 1 // java.lang.String symbol
        end local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap receiver
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0        receiver  Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;
            0    1     1          symbol  Ljava/lang/String;
            0    1     2  cachedReceiver  Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;
            0    1     3    cachedSymbol  Ljava/lang/String;
            0    1     4          result  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"receiver == cachedReceiver", "symbol == cachedSymbol", "result != null"}, limit = "6")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached(value = "receiver")
      3:
        com.oracle.truffle.api.dsl.Cached(value = "symbol")
      4:
        com.oracle.truffle.api.dsl.Cached(value = "readDirect(cachedReceiver, cachedSymbol)")
    MethodParameters:
                Name  Flags
      receiver        
      symbol          
      cachedReceiver  
      cachedSymbol    
      result          

  static java.lang.Object readEquals(com.oracle.truffle.regex.util.TruffleReadOnlyMap, java.lang.String, com.oracle.truffle.regex.util.TruffleReadOnlyMap, java.lang.String, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;Ljava/lang/String;Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=5, args_size=5
        start local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap receiver
        start local 1 // java.lang.String symbol
        start local 2 // com.oracle.truffle.regex.util.TruffleReadOnlyMap cachedReceiver
        start local 3 // java.lang.String cachedSymbol
        start local 4 // java.lang.Object result
         0: .line 145
            aload 4 /* result */
            areturn
        end local 4 // java.lang.Object result
        end local 3 // java.lang.String cachedSymbol
        end local 2 // com.oracle.truffle.regex.util.TruffleReadOnlyMap cachedReceiver
        end local 1 // java.lang.String symbol
        end local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap receiver
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0        receiver  Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;
            0    1     1          symbol  Ljava/lang/String;
            0    1     2  cachedReceiver  Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;
            0    1     3    cachedSymbol  Ljava/lang/String;
            0    1     4          result  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"receiver == cachedReceiver", "symbol.equals(cachedSymbol)", "result != null"}, limit = "6", replaces = {"readIdentity"})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.dsl.Cached(value = "receiver")
      3:
        com.oracle.truffle.api.dsl.Cached(value = "symbol")
      4:
        com.oracle.truffle.api.dsl.Cached(value = "readDirect(cachedReceiver, cachedSymbol)")
    MethodParameters:
                Name  Flags
      receiver        
      symbol          
      cachedReceiver  
      cachedSymbol    
      result          

  static java.lang.Object read(com.oracle.truffle.regex.util.TruffleReadOnlyMap, java.lang.String);
    descriptor: (Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap receiver
        start local 1 // java.lang.String symbol
         0: .line 150
            aload 0 /* receiver */
            aload 1 /* symbol */
            invokestatic com.oracle.truffle.regex.util.TruffleReadOnlyMap$ReadCacheNode.readDirect:(Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* value */
        start local 2 // java.lang.Object value
         1: .line 151
            aload 2 /* value */
            ifnull 3
         2: .line 152
            aload 2 /* value */
            areturn
         3: .line 154
      StackMap locals: java.lang.Object
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         4: .line 155
            aload 1 /* symbol */
            invokestatic com.oracle.truffle.api.interop.UnknownIdentifierException.create:(Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnknownIdentifierException;
            athrow
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String symbol
        end local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  receiver  Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;
            0    5     1    symbol  Ljava/lang/String;
            1    5     2     value  Ljava/lang/Object;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnknownIdentifierException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(replaces = {"readEquals"})
    MethodParameters:
          Name  Flags
      receiver  
      symbol    

  static java.lang.Object readDirect(com.oracle.truffle.regex.util.TruffleReadOnlyMap, java.lang.String);
    descriptor: (Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap receiver
        start local 1 // java.lang.String symbol
         0: .line 159
            aload 0 /* receiver */
            getfield com.oracle.truffle.regex.util.TruffleReadOnlyMap.map:Ljava/util/Map;
            aload 1 /* symbol */
            invokestatic com.oracle.truffle.regex.util.Boundaries.mapGet:(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String symbol
        end local 0 // com.oracle.truffle.regex.util.TruffleReadOnlyMap receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  receiver  Lcom/oracle/truffle/regex/util/TruffleReadOnlyMap;
            0    1     1    symbol  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      receiver  
      symbol    
}
SourceFile: "TruffleReadOnlyMap.java"
NestHost: com.oracle.truffle.regex.util.TruffleReadOnlyMap
InnerClasses:
  abstract ReadCacheNode = com.oracle.truffle.regex.util.TruffleReadOnlyMap$ReadCacheNode of com.oracle.truffle.regex.util.TruffleReadOnlyMap
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.GenerateUncached()