final class com.oracle.truffle.polyglot.PolyglotMap$Cache
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.PolyglotMap$Cache
  super_class: java.lang.Object
{
  final java.lang.Class<?> receiverClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  final java.lang.Class<?> keyClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  final java.lang.Class<?> valueClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  final java.lang.reflect.Type valueType;
    descriptor: Ljava/lang/reflect/Type;
    flags: (0x0010) ACC_FINAL

  final boolean memberKey;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean numberKey;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.CallTarget entrySet;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.CallTarget get;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.CallTarget put;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.CallTarget remove;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.CallTarget removeBoolean;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.CallTarget containsKey;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.CallTarget apply;
    descriptor: Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0010) ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 357
            ldc Lcom/oracle/truffle/polyglot/PolyglotMap;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.polyglot.PolyglotMap$Cache.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.Class<?>, java.lang.Class<?>, java.lang.Class<?>, java.lang.reflect.Type);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Type;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache this
         0: .line 70
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import com.oracle.truffle.polyglot.PolyglotMapFactory cannot be resolved\n\tThe import com.oracle.truffle.polyglot.PolyglotMapFactory cannot be resolved\n\tThe import com.oracle.truffle.polyglot.PolyglotMapFactory cannot be resolved\n\tThe import com.oracle.truffle.polyglot.PolyglotMapFactory cannot be resolved\n\tThe import com.oracle.truffle.polyglot.PolyglotMapFactory cannot be resolved\n\tPolyglotMapFactory cannot be resolved\n\tContainsKeyNodeGen cannot be resolved\n\tEntrySetNodeGen cannot be resolved\n\tPutNodeGen cannot be resolved\n\tRemoveNodeGen cannot be resolved\n\tRemoveBooleanNodeGen cannot be resolved\n\tPolyglotExecuteNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;)V
    MethodParameters:
               Name  Flags
      receiverClass  
      keyClass       
      valueClass     
      valueType      

  private static com.oracle.truffle.api.CallTarget initializeCall(com.oracle.truffle.polyglot.PolyglotMap$Cache$PolyglotMapNode);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotMap$Cache$PolyglotMapNode;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache$PolyglotMapNode node
         0: .line 391
            aload 0 /* node */
            invokestatic com.oracle.truffle.polyglot.HostToGuestRootNode.createTarget:(Lcom/oracle/truffle/polyglot/HostToGuestRootNode;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache$PolyglotMapNode node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  node  Lcom/oracle/truffle/polyglot/PolyglotMap$Cache$PolyglotMapNode;
    MethodParameters:
      Name  Flags
      node  

  static com.oracle.truffle.polyglot.PolyglotMap$Cache lookup(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.Class<?>, java.lang.Class<?>, java.lang.Class<?>, java.lang.reflect.Type);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=7, args_size=5
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        start local 1 // java.lang.Class receiverClass
        start local 2 // java.lang.Class keyClass
        start local 3 // java.lang.Class valueClass
        start local 4 // java.lang.reflect.Type valueType
         0: .line 395
            new com.oracle.truffle.polyglot.PolyglotMap$Cache$Key
            dup
            aload 1 /* receiverClass */
            aload 2 /* keyClass */
            aload 4 /* valueType */
            invokespecial com.oracle.truffle.polyglot.PolyglotMap$Cache$Key.<init>:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Type;)V
            astore 5 /* cacheKey */
        start local 5 // com.oracle.truffle.polyglot.PolyglotMap$Cache$Key cacheKey
         1: .line 396
            aload 0 /* languageContext */
            aload 5 /* cacheKey */
            ldc Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            invokestatic com.oracle.truffle.polyglot.HostToGuestRootNode.lookupHostCodeCache:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotMap$Cache
            astore 6 /* cache */
        start local 6 // com.oracle.truffle.polyglot.PolyglotMap$Cache cache
         2: .line 397
            aload 6 /* cache */
            ifnonnull 4
         3: .line 398
            aload 0 /* languageContext */
            aload 5 /* cacheKey */
            new com.oracle.truffle.polyglot.PolyglotMap$Cache
            dup
            aload 1 /* receiverClass */
            aload 2 /* keyClass */
            aload 3 /* valueClass */
            aload 4 /* valueType */
            invokespecial com.oracle.truffle.polyglot.PolyglotMap$Cache.<init>:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/reflect/Type;)V
            ldc Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            invokestatic com.oracle.truffle.polyglot.HostToGuestRootNode.installHostCodeCache:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotMap$Cache
            astore 6 /* cache */
         4: .line 400
      StackMap locals: com.oracle.truffle.polyglot.PolyglotMap$Cache$Key com.oracle.truffle.polyglot.PolyglotMap$Cache
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotMap$Cache.$assertionsDisabled:Z
            ifne 5
            aload 6 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.receiverClass:Ljava/lang/Class;
            aload 1 /* receiverClass */
            if_acmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 401
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotMap$Cache.$assertionsDisabled:Z
            ifne 6
            aload 6 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.keyClass:Ljava/lang/Class;
            aload 2 /* keyClass */
            if_acmpeq 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 402
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotMap$Cache.$assertionsDisabled:Z
            ifne 7
            aload 6 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.valueClass:Ljava/lang/Class;
            aload 3 /* valueClass */
            if_acmpeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 403
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotMap$Cache.$assertionsDisabled:Z
            ifne 8
            aload 6 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.valueType:Ljava/lang/reflect/Type;
            aload 4 /* valueType */
            if_acmpeq 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 404
      StackMap locals:
      StackMap stack:
            aload 6 /* cache */
            areturn
        end local 6 // com.oracle.truffle.polyglot.PolyglotMap$Cache cache
        end local 5 // com.oracle.truffle.polyglot.PolyglotMap$Cache$Key cacheKey
        end local 4 // java.lang.reflect.Type valueType
        end local 3 // java.lang.Class valueClass
        end local 2 // java.lang.Class keyClass
        end local 1 // java.lang.Class receiverClass
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    9     1    receiverClass  Ljava/lang/Class<*>;
            0    9     2         keyClass  Ljava/lang/Class<*>;
            0    9     3       valueClass  Ljava/lang/Class<*>;
            0    9     4        valueType  Ljava/lang/reflect/Type;
            1    9     5         cacheKey  Lcom/oracle/truffle/polyglot/PolyglotMap$Cache$Key;
            2    9     6            cache  Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
    Signature: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;)Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
    MethodParameters:
                 Name  Flags
      languageContext  
      receiverClass    
      keyClass         
      valueClass       
      valueType        
}
SourceFile: "PolyglotMap.java"
NestHost: com.oracle.truffle.polyglot.PolyglotMap
InnerClasses:
  final Cache = com.oracle.truffle.polyglot.PolyglotMap$Cache of com.oracle.truffle.polyglot.PolyglotMap
  private Apply = com.oracle.truffle.polyglot.PolyglotMap$Cache$Apply of com.oracle.truffle.polyglot.PolyglotMap$Cache
  abstract ContainsKeyNode = com.oracle.truffle.polyglot.PolyglotMap$Cache$ContainsKeyNode of com.oracle.truffle.polyglot.PolyglotMap$Cache
  abstract EntrySet = com.oracle.truffle.polyglot.PolyglotMap$Cache$EntrySet of com.oracle.truffle.polyglot.PolyglotMap$Cache
  abstract GetNode = com.oracle.truffle.polyglot.PolyglotMap$Cache$GetNode of com.oracle.truffle.polyglot.PolyglotMap$Cache
  private final Key = com.oracle.truffle.polyglot.PolyglotMap$Cache$Key of com.oracle.truffle.polyglot.PolyglotMap$Cache
  abstract PolyglotMapNode = com.oracle.truffle.polyglot.PolyglotMap$Cache$PolyglotMapNode of com.oracle.truffle.polyglot.PolyglotMap$Cache
  abstract Put = com.oracle.truffle.polyglot.PolyglotMap$Cache$Put of com.oracle.truffle.polyglot.PolyglotMap$Cache
  abstract RemoveBoolean = com.oracle.truffle.polyglot.PolyglotMap$Cache$RemoveBoolean of com.oracle.truffle.polyglot.PolyglotMap$Cache
  abstract RemoveNode = com.oracle.truffle.polyglot.PolyglotMap$Cache$RemoveNode of com.oracle.truffle.polyglot.PolyglotMap$Cache