abstract class com.oracle.truffle.polyglot.PolyglotMap$Cache$Put extends com.oracle.truffle.polyglot.PolyglotMap$Cache$PolyglotMapNode
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.polyglot.PolyglotMap$Cache$Put
  super_class: com.oracle.truffle.polyglot.PolyglotMap$Cache$PolyglotMapNode
{
  void <init>(com.oracle.truffle.polyglot.PolyglotMap$Cache);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache$Put this
        start local 1 // com.oracle.truffle.polyglot.PolyglotMap$Cache cache
         0: .line 593
            aload 0 /* this */
            aload 1 /* cache */
            invokespecial com.oracle.truffle.polyglot.PolyglotMap$Cache$PolyglotMapNode.<init>:(Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;)V
         1: .line 594
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotMap$Cache cache
        end local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache$Put this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/polyglot/PolyglotMap$Cache$Put;
            0    2     1  cache  Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
    MethodParameters:
       Name  Flags
      cache  

  protected java.lang.String getOperationName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache$Put this
         0: .line 598
            ldc "put"
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache$Put this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotMap$Cache$Put;

  protected java.lang.Object doCached(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.Object, java.lang.Object[], com.oracle.truffle.api.interop.InteropLibrary, com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode, com.oracle.truffle.api.profiles.BranchProfile);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropLibrary;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=10, args_size=7
        start local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache$Put this
        start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        start local 2 // java.lang.Object receiver
        start local 3 // java.lang.Object[] args
        start local 4 // com.oracle.truffle.api.interop.InteropLibrary interop
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode toGuest
        start local 6 // com.oracle.truffle.api.profiles.BranchProfile error
         0: .line 607
            aload 3 /* args */
            iconst_2
            aaload
            astore 7 /* key */
        start local 7 // java.lang.Object key
         1: .line 608
            aload 5 /* toGuest */
            aload 1 /* languageContext */
            aload 3 /* args */
            iconst_3
            aaload
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode.execute:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* guestValue */
        start local 8 // java.lang.Object guestValue
         2: .line 610
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.cache:Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.memberKey:Z
            ifeq 6
            aload 4 /* interop */
            aload 2 /* receiver */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMembers:(Ljava/lang/Object;)Z
            ifeq 6
         3: .line 611
            aload 0 /* this */
            aload 7 /* key */
            invokevirtual com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.isObjectKey:(Ljava/lang/Object;)Z
            ifeq 10
         4: .line 612
            aload 4 /* interop */
            aload 2 /* receiver */
            aload 7 /* key */
            checkcast java.lang.String
            aload 8 /* guestValue */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.writeMember:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 613
            aconst_null
            areturn
         6: .line 615
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.cache:Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.numberKey:Z
            ifeq 10
            aload 4 /* interop */
            aload 2 /* receiver */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasArrayElements:(Ljava/lang/Object;)Z
            ifeq 10
         7: .line 616
            aload 0 /* this */
            aload 7 /* key */
            invokevirtual com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.isArrayKey:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 617
            aload 4 /* interop */
            aload 2 /* receiver */
            aload 7 /* key */
            invokestatic com.oracle.truffle.polyglot.PolyglotMap.intValue:(Ljava/lang/Object;)I
            i2l
            aload 8 /* guestValue */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.writeArrayElement:(Ljava/lang/Object;JLjava/lang/Object;)V
         9: .line 618
            aconst_null
            areturn
        10: .line 621
      StackMap locals:
      StackMap stack:
            aload 6 /* error */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
        11: .line 622
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.cache:Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.keyClass:Ljava/lang/Class;
            aload 7 /* key */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 13
            aload 7 /* key */
            instanceof java.lang.Number
            ifne 12
            aload 7 /* key */
            instanceof java.lang.String
            ifeq 13
        12: .line 623
      StackMap locals:
      StackMap stack:
            aload 1 /* languageContext */
            aload 2 /* receiver */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.cache:Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.keyClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.cache:Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.valueType:Ljava/lang/reflect/Type;
            ldc "put"
            invokestatic com.oracle.truffle.polyglot.HostInteropErrors.mapUnsupported:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        13: .line 625
      StackMap locals:
      StackMap stack:
            aload 1 /* languageContext */
            aload 2 /* receiver */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.cache:Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.keyClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.cache:Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.valueType:Ljava/lang/reflect/Type;
            aload 7 /* key */
            invokestatic com.oracle.truffle.polyglot.HostInteropErrors.invalidMapIdentifier:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        14: .line 627
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.InteropException
            astore 9 /* e */
        start local 9 // com.oracle.truffle.api.interop.InteropException e
        15: .line 628
            aload 6 /* error */
            invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
        16: .line 629
            aload 1 /* languageContext */
            aload 2 /* receiver */
            aload 9 /* e */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.cache:Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            aload 7 /* key */
            aload 8 /* guestValue */
            invokestatic com.oracle.truffle.polyglot.PolyglotMap$Cache$Put.error:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropException;Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // com.oracle.truffle.api.interop.InteropException e
        end local 8 // java.lang.Object guestValue
        end local 7 // java.lang.Object key
        end local 6 // com.oracle.truffle.api.profiles.BranchProfile error
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode toGuest
        end local 4 // com.oracle.truffle.api.interop.InteropLibrary interop
        end local 3 // java.lang.Object[] args
        end local 2 // java.lang.Object receiver
        end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 0 // com.oracle.truffle.polyglot.PolyglotMap$Cache$Put this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lcom/oracle/truffle/polyglot/PolyglotMap$Cache$Put;
            0   17     1  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   17     2         receiver  Ljava/lang/Object;
            0   17     3             args  [Ljava/lang/Object;
            0   17     4          interop  Lcom/oracle/truffle/api/interop/InteropLibrary;
            0   17     5          toGuest  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToGuestValueNode;
            0   17     6            error  Lcom/oracle/truffle/api/profiles/BranchProfile;
            1   17     7              key  Ljava/lang/Object;
            2   17     8       guestValue  Ljava/lang/Object;
           15   17     9                e  Lcom/oracle/truffle/api/interop/InteropException;
      Exception table:
        from    to  target  type
           2     5      14  Class com.oracle.truffle.api.interop.UnknownIdentifierException
           6     9      14  Class com.oracle.truffle.api.interop.UnknownIdentifierException
          10    14      14  Class com.oracle.truffle.api.interop.UnknownIdentifierException
           2     5      14  Class com.oracle.truffle.api.interop.InvalidArrayIndexException
           6     9      14  Class com.oracle.truffle.api.interop.InvalidArrayIndexException
          10    14      14  Class com.oracle.truffle.api.interop.InvalidArrayIndexException
           2     5      14  Class com.oracle.truffle.api.interop.UnsupportedMessageException
           6     9      14  Class com.oracle.truffle.api.interop.UnsupportedMessageException
          10    14      14  Class com.oracle.truffle.api.interop.UnsupportedMessageException
           2     5      14  Class com.oracle.truffle.api.interop.UnsupportedTypeException
           6     9      14  Class com.oracle.truffle.api.interop.UnsupportedTypeException
          10    14      14  Class com.oracle.truffle.api.interop.UnsupportedTypeException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(limit = "LIMIT")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
      3:
        com.oracle.truffle.api.library.CachedLibrary(value = "receiver")
      4:
        com.oracle.truffle.api.dsl.Cached()
      5:
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
                 Name  Flags
      languageContext  
      receiver         
      args             
      interop          
      toGuest          
      error            

  static java.lang.RuntimeException error(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.Object, com.oracle.truffle.api.interop.InteropException, com.oracle.truffle.polyglot.PolyglotMap$Cache, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Lcom/oracle/truffle/api/interop/InteropException;Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        start local 1 // java.lang.Object receiver
        start local 2 // com.oracle.truffle.api.interop.InteropException e
        start local 3 // com.oracle.truffle.polyglot.PolyglotMap$Cache cache
        start local 4 // java.lang.Object key
        start local 5 // java.lang.Object guestValue
         0: .line 635
            aload 2 /* e */
            instanceof com.oracle.truffle.api.interop.UnknownIdentifierException
            ifne 1
            aload 2 /* e */
            instanceof com.oracle.truffle.api.interop.InvalidArrayIndexException
            ifeq 2
         1: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* languageContext */
            aload 1 /* receiver */
            aload 3 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.keyClass:Ljava/lang/Class;
            aload 3 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.valueType:Ljava/lang/reflect/Type;
            aload 4 /* key */
            invokestatic com.oracle.truffle.polyglot.HostInteropErrors.invalidMapIdentifier:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         2: .line 637
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            instanceof com.oracle.truffle.api.interop.UnsupportedMessageException
            ifeq 4
         3: .line 638
            aload 0 /* languageContext */
            aload 1 /* receiver */
            aload 3 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.keyClass:Ljava/lang/Class;
            aload 3 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.valueType:Ljava/lang/reflect/Type;
            ldc "put"
            invokestatic com.oracle.truffle.polyglot.HostInteropErrors.mapUnsupported:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         4: .line 639
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            instanceof com.oracle.truffle.api.interop.UnsupportedTypeException
            ifeq 6
         5: .line 640
            aload 0 /* languageContext */
            aload 1 /* receiver */
            aload 3 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.keyClass:Ljava/lang/Class;
            aload 3 /* cache */
            getfield com.oracle.truffle.polyglot.PolyglotMap$Cache.valueType:Ljava/lang/reflect/Type;
            aload 4 /* key */
            aload 5 /* guestValue */
            invokestatic com.oracle.truffle.polyglot.HostInteropErrors.invalidMapValue:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         6: .line 642
      StackMap locals:
      StackMap stack:
            ldc "unhandled error"
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.Object guestValue
        end local 4 // java.lang.Object key
        end local 3 // com.oracle.truffle.polyglot.PolyglotMap$Cache cache
        end local 2 // com.oracle.truffle.api.interop.InteropException e
        end local 1 // java.lang.Object receiver
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    7     1         receiver  Ljava/lang/Object;
            0    7     2                e  Lcom/oracle/truffle/api/interop/InteropException;
            0    7     3            cache  Lcom/oracle/truffle/polyglot/PolyglotMap$Cache;
            0    7     4              key  Ljava/lang/Object;
            0    7     5       guestValue  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                 Name  Flags
      languageContext  
      receiver         
      e                
      cache            
      key              
      guestValue       
}
SourceFile: "PolyglotMap.java"
NestHost: com.oracle.truffle.polyglot.PolyglotMap
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  abstract ToGuestValueNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToGuestValueNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
  final Cache = com.oracle.truffle.polyglot.PolyglotMap$Cache of com.oracle.truffle.polyglot.PolyglotMap
  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