class com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey extends com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey
  super_class: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode
{
  private com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry keyCache;
    descriptor: Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  void <init>(com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry);
    descriptor: (Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry keyCache
         0: .line 696
            aload 0 /* this */
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.<init>:()V
         1: .line 697
            aload 0 /* this */
            aload 1 /* keyCache */
            putfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
         2: .line 698
            return
        end local 1 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry keyCache
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0    3     1  keyCache  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
    MethodParameters:
          Name  Flags
      keyCache  

  public static com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode create();
    descriptor: ()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 701
            new com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey
            dup
            aconst_null
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.<init>:(Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode create(java.lang.Object, com.oracle.truffle.api.object.Shape);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.lang.Object key
        start local 1 // com.oracle.truffle.api.object.Shape cachedShape
         0: .line 705
            new com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey
            dup
            aload 0 /* key */
            aload 1 /* cachedShape */
            aconst_null
            iconst_1
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.create:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;Z)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.<init>:(Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;)V
            areturn
        end local 1 // com.oracle.truffle.api.object.Shape cachedShape
        end local 0 // java.lang.Object key
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0          key  Ljava/lang/Object;
            0    1     1  cachedShape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
             Name  Flags
      key          
      cachedShape  

  public java.lang.Object getOrDefault(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
        start local 2 // com.oracle.truffle.api.object.Shape cachedShape
        start local 3 // java.lang.Object key
        start local 4 // java.lang.Object defaultValue
         0: .line 711
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 5 /* start */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
         1: .line 712
            aload 5 /* start */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            if_acmpeq 12
         2: .line 713
            aload 5 /* start */
            astore 6 /* c */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         3: goto 7
         4: .line 714
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 6 /* c */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.acceptsKey:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 715
            aload 6 /* c */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         6: .line 713
      StackMap locals:
      StackMap stack:
            aload 6 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 6 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 6 /* c */
            ifnonnull 4
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         8: .line 718
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 719
            aload 0 /* this */
            aload 3 /* key */
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.insertIntoKeyCache:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 6 /* impl */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        10: .line 720
            aload 6 /* impl */
            ifnull 12
        11: .line 721
            aload 6 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        12: .line 724
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
        end local 4 // java.lang.Object defaultValue
        end local 3 // java.lang.Object key
        end local 2 // com.oracle.truffle.api.object.Shape cachedShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0   13     1        object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2   cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   13     3           key  Ljava/lang/Object;
            0   13     4  defaultValue  Ljava/lang/Object;
            1   13     5         start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            3    8     6             c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
           10   12     6          impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
              Name  Flags
      object        
      cachedShape   
      key           
      defaultValue  

  public int getIntOrDefault(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
        start local 2 // com.oracle.truffle.api.object.Shape cachedShape
        start local 3 // java.lang.Object key
        start local 4 // java.lang.Object defaultValue
         0: .line 730
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 5 /* start */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
         1: .line 731
            aload 5 /* start */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            if_acmpeq 12
         2: .line 732
            aload 5 /* start */
            astore 6 /* c */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         3: goto 7
         4: .line 733
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 6 /* c */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.acceptsKey:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 734
            aload 6 /* c */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.getIntOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
         6: .line 732
      StackMap locals:
      StackMap stack:
            aload 6 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 6 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 6 /* c */
            ifnonnull 4
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         8: .line 737
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 738
            aload 0 /* this */
            aload 3 /* key */
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.insertIntoKeyCache:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 6 /* impl */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        10: .line 739
            aload 6 /* impl */
            ifnull 12
        11: .line 740
            aload 6 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getIntOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        12: .line 743
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.getIntOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
        end local 4 // java.lang.Object defaultValue
        end local 3 // java.lang.Object key
        end local 2 // com.oracle.truffle.api.object.Shape cachedShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0   13     1        object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2   cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   13     3           key  Ljava/lang/Object;
            0   13     4  defaultValue  Ljava/lang/Object;
            1   13     5         start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            3    8     6             c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
           10   12     6          impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
              Name  Flags
      object        
      cachedShape   
      key           
      defaultValue  

  public long getLongOrDefault(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
        start local 2 // com.oracle.truffle.api.object.Shape cachedShape
        start local 3 // java.lang.Object key
        start local 4 // java.lang.Object defaultValue
         0: .line 749
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 5 /* start */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
         1: .line 750
            aload 5 /* start */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            if_acmpeq 12
         2: .line 751
            aload 5 /* start */
            astore 6 /* c */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         3: goto 7
         4: .line 752
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 6 /* c */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.acceptsKey:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 753
            aload 6 /* c */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.getLongOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)J
            lreturn
         6: .line 751
      StackMap locals:
      StackMap stack:
            aload 6 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 6 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 6 /* c */
            ifnonnull 4
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         8: .line 756
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 757
            aload 0 /* this */
            aload 3 /* key */
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.insertIntoKeyCache:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 6 /* impl */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        10: .line 758
            aload 6 /* impl */
            ifnull 12
        11: .line 759
            aload 6 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getLongOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)J
            lreturn
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        12: .line 762
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.getLongOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)J
            lreturn
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
        end local 4 // java.lang.Object defaultValue
        end local 3 // java.lang.Object key
        end local 2 // com.oracle.truffle.api.object.Shape cachedShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0   13     1        object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2   cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   13     3           key  Ljava/lang/Object;
            0   13     4  defaultValue  Ljava/lang/Object;
            1   13     5         start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            3    8     6             c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
           10   12     6          impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
              Name  Flags
      object        
      cachedShape   
      key           
      defaultValue  

  public double getDoubleOrDefault(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
        start local 2 // com.oracle.truffle.api.object.Shape cachedShape
        start local 3 // java.lang.Object key
        start local 4 // java.lang.Object defaultValue
         0: .line 768
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 5 /* start */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
         1: .line 769
            aload 5 /* start */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            if_acmpeq 12
         2: .line 770
            aload 5 /* start */
            astore 6 /* c */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         3: goto 7
         4: .line 771
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 6 /* c */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.acceptsKey:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 772
            aload 6 /* c */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.getDoubleOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)D
            dreturn
         6: .line 770
      StackMap locals:
      StackMap stack:
            aload 6 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 6 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 6 /* c */
            ifnonnull 4
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         8: .line 775
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 776
            aload 0 /* this */
            aload 3 /* key */
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.insertIntoKeyCache:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 6 /* impl */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        10: .line 777
            aload 6 /* impl */
            ifnull 12
        11: .line 778
            aload 6 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getDoubleOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)D
            dreturn
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        12: .line 781
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* defaultValue */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.getDoubleOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;)D
            dreturn
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
        end local 4 // java.lang.Object defaultValue
        end local 3 // java.lang.Object key
        end local 2 // com.oracle.truffle.api.object.Shape cachedShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0   13     1        object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2   cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   13     3           key  Ljava/lang/Object;
            0   13     4  defaultValue  Ljava/lang/Object;
            1   13     5         start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            3    8     6             c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
           10   12     6          impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    Exceptions:
      throws com.oracle.truffle.api.nodes.UnexpectedResultException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
              Name  Flags
      object        
      cachedShape   
      key           
      defaultValue  

  public boolean put(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, java.lang.Object, long);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;J)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
        start local 2 // com.oracle.truffle.api.object.Shape cachedShape
        start local 3 // java.lang.Object key
        start local 4 // java.lang.Object value
        start local 5 // long putFlags
         0: .line 787
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 7 /* start */
        start local 7 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
         1: .line 788
            aload 7 /* start */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            if_acmpeq 12
         2: .line 789
            aload 7 /* start */
            astore 8 /* c */
        start local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         3: goto 7
         4: .line 790
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 8 /* c */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.acceptsKey:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 791
            aload 8 /* c */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* value */
            lload 5 /* putFlags */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.put:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;J)Z
            ireturn
         6: .line 789
      StackMap locals:
      StackMap stack:
            aload 8 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 8 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 8 /* c */
            ifnonnull 4
        end local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         8: .line 794
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 795
            aload 0 /* this */
            aload 3 /* key */
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.insertIntoKeyCache:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 8 /* impl */
        start local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        10: .line 796
            aload 8 /* impl */
            ifnull 12
        11: .line 797
            aload 8 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* value */
            lload 5 /* putFlags */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.put:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;J)Z
            ireturn
        end local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        12: .line 800
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            aload 4 /* value */
            lload 5 /* putFlags */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.put:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;J)Z
            ireturn
        end local 7 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
        end local 5 // long putFlags
        end local 4 // java.lang.Object value
        end local 3 // java.lang.Object key
        end local 2 // com.oracle.truffle.api.object.Shape cachedShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0   13     1       object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2  cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   13     3          key  Ljava/lang/Object;
            0   13     4        value  Ljava/lang/Object;
            0   13     5     putFlags  J
            1   13     7        start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            3    8     8            c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
           10   12     8         impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      key          
      value        
      putFlags     

  public boolean containsKey(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
        start local 2 // com.oracle.truffle.api.object.Shape cachedShape
        start local 3 // java.lang.Object key
         0: .line 806
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 4 /* start */
        start local 4 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
         1: .line 807
            aload 4 /* start */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            if_acmpeq 12
         2: .line 808
            aload 4 /* start */
            astore 5 /* c */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         3: goto 7
         4: .line 809
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 5 /* c */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.acceptsKey:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 810
            aload 5 /* c */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.containsKey:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Z
            ireturn
         6: .line 808
      StackMap locals:
      StackMap stack:
            aload 5 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 5 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 5 /* c */
            ifnonnull 4
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         8: .line 813
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 814
            aload 0 /* this */
            aload 3 /* key */
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.insertIntoKeyCache:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 5 /* impl */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        10: .line 815
            aload 5 /* impl */
            ifnull 12
        11: .line 816
            aload 5 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.containsKey:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Z
            ireturn
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        12: .line 819
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.containsKey:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Z
            ireturn
        end local 4 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
        end local 3 // java.lang.Object key
        end local 2 // com.oracle.truffle.api.object.Shape cachedShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0   13     1       object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2  cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   13     3          key  Ljava/lang/Object;
            1   13     4        start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            3    8     5            c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
           10   12     5         impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      key          

  public com.oracle.truffle.api.object.Property getProperty(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
        start local 2 // com.oracle.truffle.api.object.Shape cachedShape
        start local 3 // java.lang.Object key
         0: .line 825
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 4 /* start */
        start local 4 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
         1: .line 826
            aload 4 /* start */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            if_acmpeq 12
         2: .line 827
            aload 4 /* start */
            astore 5 /* c */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         3: goto 7
         4: .line 828
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 5 /* c */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.acceptsKey:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 829
            aload 5 /* c */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.getProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            areturn
         6: .line 827
      StackMap locals:
      StackMap stack:
            aload 5 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 5 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 5 /* c */
            ifnonnull 4
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         8: .line 832
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 833
            aload 0 /* this */
            aload 3 /* key */
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.insertIntoKeyCache:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 5 /* impl */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        10: .line 834
            aload 5 /* impl */
            ifnull 12
        11: .line 835
            aload 5 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            areturn
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        12: .line 838
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.getProperty:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            areturn
        end local 4 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
        end local 3 // java.lang.Object key
        end local 2 // com.oracle.truffle.api.object.Shape cachedShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0   13     1       object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2  cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   13     3          key  Ljava/lang/Object;
            1   13     4        start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            3    8     5            c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
           10   12     5         impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      key          

  public boolean setPropertyFlags(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, int);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
        start local 2 // com.oracle.truffle.api.object.Shape cachedShape
        start local 3 // java.lang.Object key
        start local 4 // int propertyFlags
         0: .line 844
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 5 /* start */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
         1: .line 845
            aload 5 /* start */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            if_acmpeq 12
         2: .line 846
            aload 5 /* start */
            astore 6 /* c */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         3: goto 7
         4: .line 847
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 6 /* c */
            aload 3 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.acceptsKey:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 848
            aload 6 /* c */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            iload 4 /* propertyFlags */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.setPropertyFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;I)Z
            ireturn
         6: .line 846
      StackMap locals:
      StackMap stack:
            aload 6 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 6 /* c */
      StackMap locals:
      StackMap stack:
         7: aload 6 /* c */
            ifnonnull 4
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         8: .line 851
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         9: .line 852
            aload 0 /* this */
            aload 3 /* key */
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.insertIntoKeyCache:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 6 /* impl */
        start local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        10: .line 853
            aload 6 /* impl */
            ifnull 12
        11: .line 854
            aload 6 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            iload 4 /* propertyFlags */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.setPropertyFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;I)Z
            ireturn
        end local 6 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        12: .line 857
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            iload 4 /* propertyFlags */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.setPropertyFlags:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;I)Z
            ireturn
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry start
        end local 4 // int propertyFlags
        end local 3 // java.lang.Object key
        end local 2 // com.oracle.truffle.api.object.Shape cachedShape
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0   13     1         object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   13     2    cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   13     3            key  Ljava/lang/Object;
            0   13     4  propertyFlags  I
            1   13     5          start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            3    8     6              c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
           10   12     6           impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
               Name  Flags
      object         
      cachedShape    
      key            
      propertyFlags  

  private com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode insertIntoKeyCache(java.lang.Object, com.oracle.truffle.api.object.Shape);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
        start local 1 // java.lang.Object key
        start local 2 // com.oracle.truffle.api.object.Shape cachedShape
         0: .line 861
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 862
            aload 0 /* this */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.getLock:()Ljava/util/concurrent/locks/Lock;
            astore 3 /* lock */
        start local 3 // java.util.concurrent.locks.Lock lock
         2: .line 863
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         3: .line 865
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 4 /* tail */
        start local 4 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry tail
         4: .line 866
            iconst_0
            istore 5 /* cachedCount */
        start local 5 // int cachedCount
         5: .line 867
            iconst_0
            istore 6 /* generic */
        start local 6 // boolean generic
         6: .line 868
            iconst_1
            istore 7 /* useIdentity */
        start local 7 // boolean useIdentity
         7: .line 870
            aload 4 /* tail */
            astore 8 /* c */
        start local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         8: goto 20
         9: .line 871
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey java.lang.Object com.oracle.truffle.api.object.Shape java.util.concurrent.locks.Lock com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry int int int com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 8 /* c */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            if_acmpne 12
        10: .line 872
            iconst_1
            istore 6 /* generic */
        11: .line 873
            goto 21
        12: .line 875
      StackMap locals:
      StackMap stack:
            iinc 5 /* cachedCount */ 1
        13: .line 876
            aload 8 /* c */
            aload 1 /* key */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.acceptsKey:(Ljava/lang/Object;)Z
            ifeq 17
        14: .line 877
            aload 8 /* c */
            astore 10
        15: .line 908
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        16: .line 877
            aload 10
            areturn
        17: .line 879
      StackMap locals:
      StackMap stack:
            aload 8 /* c */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.isIdentity:()Z
            ifne 19
        18: .line 880
            iconst_0
            istore 7 /* useIdentity */
        19: .line 870
      StackMap locals:
      StackMap stack:
            aload 8 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 8 /* c */
      StackMap locals:
      StackMap stack:
        20: aload 8 /* c */
            ifnonnull 9
        end local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
        21: .line 885
      StackMap locals:
      StackMap stack:
            iload 5 /* cachedCount */
            iconst_1
            if_icmple 26
            iload 7 /* useIdentity */
            ifeq 26
        22: .line 888
            aload 4 /* tail */
            aload 1 /* key */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.hasDuplicateCacheKeys:(Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;Ljava/lang/Object;)Z
            ifeq 26
        23: .line 889
            aconst_null
            astore 4 /* tail */
        24: .line 890
            iconst_0
            istore 5 /* cachedCount */
        25: .line 891
            iconst_0
            istore 7 /* useIdentity */
        26: .line 895
      StackMap locals:
      StackMap stack:
            iload 5 /* cachedCount */
            iconst_3
            if_icmplt 29
        27: .line 896
            iconst_1
            istore 6 /* generic */
        28: .line 897
            aload 0 /* this */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.getUncached:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            putfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
        29: .line 899
      StackMap locals:
      StackMap stack:
            iload 6 /* generic */
            ifeq 32
        30: .line 908
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        31: .line 900
            aconst_null
            areturn
        32: .line 903
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            aload 2 /* cachedShape */
            aload 4 /* tail */
            iload 7 /* useIdentity */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.create:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;Z)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            astore 8 /* newEntry */
        start local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey newEntry
        33: .line 904
            aload 0 /* this */
            aload 8 /* newEntry */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            pop
        34: .line 905
            aload 0 /* this */
            aload 8 /* newEntry */
            putfield com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey.keyCache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
        35: .line 906
            aload 0 /* this */
            astore 10
        36: .line 908
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        37: .line 906
            aload 10
            areturn
        end local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey newEntry
        end local 7 // boolean useIdentity
        end local 6 // boolean generic
        end local 5 // int cachedCount
        end local 4 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry tail
        38: .line 907
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey java.lang.Object com.oracle.truffle.api.object.Shape java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
            astore 9
        39: .line 908
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        40: .line 909
            aload 9
            athrow
        end local 3 // java.util.concurrent.locks.Lock lock
        end local 2 // com.oracle.truffle.api.object.Shape cachedShape
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   41     0         this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$AnyKey;
            0   41     1          key  Ljava/lang/Object;
            0   41     2  cachedShape  Lcom/oracle/truffle/api/object/Shape;
            2   41     3         lock  Ljava/util/concurrent/locks/Lock;
            4   38     4         tail  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            5   38     5  cachedCount  I
            6   38     6      generic  Z
            7   38     7  useIdentity  Z
            8   21     8            c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
           33   38     8     newEntry  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
      Exception table:
        from    to  target  type
           3    15      38  any
          17    30      38  any
          32    36      38  any
    MethodParameters:
             Name  Flags
      key          
      cachedShape  

  private static boolean hasDuplicateCacheKeys(com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry tail
        start local 1 // java.lang.Object key
         0: .line 913
            invokestatic org.graalvm.collections.EconomicSet.create:()Lorg/graalvm/collections/EconomicSet;
            astore 2 /* keySet */
        start local 2 // org.graalvm.collections.EconomicSet keySet
         1: .line 914
            aload 0 /* tail */
            astore 3 /* c */
        start local 3 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         2: goto 8
         3: .line 915
      StackMap locals: org.graalvm.collections.EconomicSet com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
      StackMap stack:
            aload 3 /* c */
            instanceof com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey
            ifeq 7
         4: .line 916
            aload 3 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey
            astore 4 /* cacheEntry */
        start local 4 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey cacheEntry
         5: .line 917
            aload 2 /* keySet */
            aload 4 /* cacheEntry */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
            invokeinterface org.graalvm.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 918
            iconst_1
            ireturn
        end local 4 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey cacheEntry
         7: .line 914
      StackMap locals:
      StackMap stack:
            aload 3 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            astore 3 /* c */
      StackMap locals:
      StackMap stack:
         8: aload 3 /* c */
            ifnonnull 3
        end local 3 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry c
         9: .line 922
            aload 2 /* keySet */
            aload 1 /* key */
            invokeinterface org.graalvm.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            ifeq 10
            iconst_0
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: ireturn
        end local 2 // org.graalvm.collections.EconomicSet keySet
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry tail
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        tail  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            0   12     1         key  Ljava/lang/Object;
            1   12     2      keySet  Lorg/graalvm/collections/EconomicSet<Ljava/lang/Object;>;
            2    9     3           c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            5    7     4  cacheEntry  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
    MethodParameters:
      Name  Flags
      tail  
      key   
}
SourceFile: "DynamicObjectLibraryImpl.java"
NestHost: com.oracle.truffle.object.DynamicObjectLibraryImpl
InnerClasses:
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  AnyKey = com.oracle.truffle.object.DynamicObjectLibraryImpl$AnyKey of com.oracle.truffle.object.DynamicObjectLibraryImpl
  Generic = com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic of com.oracle.truffle.object.DynamicObjectLibraryImpl
  abstract KeyCacheEntry = com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry of com.oracle.truffle.object.DynamicObjectLibraryImpl
  abstract KeyCacheNode = com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode of com.oracle.truffle.object.DynamicObjectLibraryImpl
  abstract SpecificKey = com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey of com.oracle.truffle.object.DynamicObjectLibraryImpl