abstract class com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey extends com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey
  super_class: com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry
{
  final java.lang.Object cachedKey;
    descriptor: Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL

  com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData cache;
    descriptor: Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
    flags: (0x0000) 
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  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 926
            ldc Lcom/oracle/truffle/object/DynamicObjectLibraryImpl;
            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.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.Object, com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey this
        start local 1 // java.lang.Object key
        start local 2 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry next
         0: .line 932
            aload 0 /* this */
            aload 2 /* next */
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry.<init>:(Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;)V
         1: .line 933
            aload 0 /* this */
            aload 1 /* key */
            putfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
         2: .line 934
            return
        end local 2 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry next
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0    3     1   key  Ljava/lang/Object;
            0    3     2  next  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
    MethodParameters:
      Name  Flags
      key   
      next  

  static com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey create(java.lang.Object, com.oracle.truffle.api.object.Shape, com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry, boolean);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;Z)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.Object key
        start local 1 // com.oracle.truffle.api.object.Shape shape
        start local 2 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry next
        start local 3 // boolean useIdentity
         0: .line 937
            aload 0 /* key */
            ifnull 6
         1: .line 938
            aload 1 /* shape */
            aload 0 /* key */
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            astore 4 /* property */
        start local 4 // com.oracle.truffle.api.object.Property property
         2: .line 939
            aload 4 /* property */
            ifnull 6
         3: .line 940
            iload 3 /* useIdentity */
            ifeq 4
            new com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$ExistingKeyIdentity
            dup
            aload 0 /* key */
            aload 4 /* property */
            aload 2 /* next */
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$ExistingKeyIdentity.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;)V
            goto 5
      StackMap locals: com.oracle.truffle.api.object.Property
      StackMap stack:
         4: new com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$ExistingKey
            dup
            aload 0 /* key */
            aload 4 /* property */
            aload 2 /* next */
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$ExistingKey.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;)V
      StackMap locals:
      StackMap stack: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$ExistingKey
         5: areturn
        end local 4 // com.oracle.truffle.api.object.Property property
         6: .line 943
      StackMap locals:
      StackMap stack:
            iload 3 /* useIdentity */
            ifeq 7
            new com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$MissingKeyIdentity
            dup
            aload 0 /* key */
            aload 2 /* next */
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$MissingKeyIdentity.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;)V
            goto 8
      StackMap locals:
      StackMap stack:
         7: new com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$MissingKey
            dup
            aload 0 /* key */
            aload 2 /* next */
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$MissingKey.<init>:(Ljava/lang/Object;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;)V
      StackMap locals:
      StackMap stack: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$MissingKey
         8: areturn
        end local 3 // boolean useIdentity
        end local 2 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheEntry next
        end local 1 // com.oracle.truffle.api.object.Shape shape
        end local 0 // java.lang.Object key
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0          key  Ljava/lang/Object;
            0    9     1        shape  Lcom/oracle/truffle/api/object/Shape;
            0    9     2         next  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheEntry;
            0    9     3  useIdentity  Z
            2    6     4     property  Lcom/oracle/truffle/api/object/Property;
    MethodParameters:
             Name  Flags
      key          
      shape        
      next         
      useIdentity  

  protected final boolean assertCachedKeyAndShapeForRead(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: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey 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 949
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 1
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 2 /* cachedShape */
            if_acmpeq 1
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.api.object.Shape.isShared:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 950
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
            aload 3 /* key */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.keyEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 951
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        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$SpecificKey this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0    3     1       object  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     2  cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0    3     3          key  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      key          

  protected final boolean assertCachedKeyAndShapeForWrite(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: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey 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 955
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 1
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 2 /* cachedShape */
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 956
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
            aload 3 /* key */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.keyEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 957
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        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$SpecificKey this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0    3     1       object  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     2  cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0    3     3          key  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      key          

  public boolean acceptsKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey this
        start local 1 // java.lang.Object key
         0: .line 962
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
            aload 1 /* key */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.keyEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  protected boolean putImpl(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, java.lang.Object, long, com.oracle.truffle.api.object.Property);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;Ljava/lang/Object;JLcom/oracle/truffle/api/object/Property;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=16, args_size=7
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey 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
        start local 7 // com.oracle.truffle.api.object.Property oldProperty
         0: .line 1166
            aload 2 /* cachedShape */
            astore 8 /* oldShape */
        start local 8 // com.oracle.truffle.api.object.Shape oldShape
         1: .line 1167
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            astore 9 /* start */
        start local 9 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
         2: .line 1168
            aload 9 /* start */
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.GENERIC:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            if_acmpeq 3
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
            ifne 4
         3: .line 1169
      StackMap locals: com.oracle.truffle.api.object.Shape com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 1 /* object */
            aload 3 /* key */
            aload 4 /* value */
            lload 5 /* putFlags */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.putUncached:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;J)Z
            ireturn
         4: .line 1171
      StackMap locals:
      StackMap stack:
            aload 9 /* start */
            astore 10 /* c */
        start local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
         5: goto 31
         6: .line 1172
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 10 /* c */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.isValid:()Z
            ifne 8
         7: .line 1173
            goto 32
         8: .line 1174
      StackMap locals:
      StackMap stack:
            aload 10 /* c */
            instanceof com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            ifeq 30
            aload 10 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData.putFlags:J
            lload 5 /* putFlags */
            lcmp
            ifne 30
         9: .line 1175
            aload 10 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData.property:Lcom/oracle/truffle/api/object/Property;
            astore 11 /* newProperty */
        start local 11 // com.oracle.truffle.api.object.Property newProperty
        10: .line 1176
            aload 11 /* newProperty */
            ifnonnull 13
        11: .line 1177
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 12
            lload 5 /* putFlags */
            invokestatic com.oracle.truffle.object.Flags.isSetExisting:(J)Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 1178
      StackMap locals: com.oracle.truffle.api.object.Property
      StackMap stack:
            iconst_0
            ireturn
        13: .line 1180
      StackMap locals:
      StackMap stack:
            aload 11 /* newProperty */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.getLocation:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/LocationImpl;
            astore 12 /* location */
        start local 12 // com.oracle.truffle.object.LocationImpl location
        14: .line 1181
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 8 /* oldShape */
            if_acmpne 15
            iconst_1
            goto 16
      StackMap locals: com.oracle.truffle.object.LocationImpl
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: istore 13 /* guardCondition */
        start local 13 // boolean guardCondition
        17: .line 1182
            aload 12 /* location */
            aload 4 /* value */
            invokevirtual com.oracle.truffle.object.LocationImpl.canStore:(Ljava/lang/Object;)Z
            ifeq 30
        18: .line 1183
            aload 10 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.newShape:Lcom/oracle/truffle/api/object/Shape;
            astore 14 /* newShape */
        start local 14 // com.oracle.truffle.api.object.Shape newShape
        19: .line 1184
            aload 14 /* newShape */
            aload 8 /* oldShape */
            if_acmpeq 22
        20: .line 1185
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 8 /* oldShape */
            aload 14 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        21: .line 1186
            goto 24
      StackMap locals: int com.oracle.truffle.api.object.Shape
      StackMap stack:
        22: aload 12 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 24
        23: .line 1187
            goto 30
        24: .line 1190
      StackMap locals:
      StackMap stack:
            aload 12 /* location */
            aload 1 /* object */
            aload 4 /* value */
            iload 13 /* guardCondition */
            invokevirtual com.oracle.truffle.object.LocationImpl.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
        25: .line 1191
            goto 28
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.SlowPathException
        26: astore 15 /* e */
        start local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        27: .line 1192
            aload 15 /* e */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.shouldNotHappen:(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        28: .line 1194
      StackMap locals:
      StackMap stack:
            aload 10 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        29: .line 1195
            iconst_1
            ireturn
        end local 14 // com.oracle.truffle.api.object.Shape newShape
        end local 13 // boolean guardCondition
        end local 12 // com.oracle.truffle.object.LocationImpl location
        end local 11 // com.oracle.truffle.api.object.Property newProperty
        30: .line 1171
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.Shape java.lang.Object java.lang.Object long com.oracle.truffle.api.object.Property com.oracle.truffle.api.object.Shape com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 10 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$CacheData;
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
            astore 10 /* c */
      StackMap locals:
      StackMap stack:
        31: aload 10 /* c */
            ifnonnull 6
        end local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
        32: .line 1200
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        33: .line 1201
            aload 0 /* this */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 4 /* value */
            lload 5 /* putFlags */
            aload 7 /* oldProperty */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.insertIntoPutCache:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;JLcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 10 /* impl */
        start local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        34: .line 1202
            aload 10 /* 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 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        end local 9 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
        end local 8 // com.oracle.truffle.api.object.Shape oldShape
        end local 7 // com.oracle.truffle.api.object.Property oldProperty
        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$SpecificKey this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0   35     1          object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   35     2     cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   35     3             key  Ljava/lang/Object;
            0   35     4           value  Ljava/lang/Object;
            0   35     5        putFlags  J
            0   35     7     oldProperty  Lcom/oracle/truffle/api/object/Property;
            1   35     8        oldShape  Lcom/oracle/truffle/api/object/Shape;
            2   35     9           start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            5   32    10               c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
           10   30    11     newProperty  Lcom/oracle/truffle/api/object/Property;
           14   30    12        location  Lcom/oracle/truffle/object/LocationImpl;
           17   30    13  guardCondition  Z
           19   30    14        newShape  Lcom/oracle/truffle/api/object/Shape;
           27   28    15               e  Lcom/oracle/truffle/api/nodes/SlowPathException;
           34   35    10            impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
      Exception table:
        from    to  target  type
          24    25      26  Class com.oracle.truffle.api.object.IncompatibleLocationException
          24    25      26  Class com.oracle.truffle.api.object.FinalLocationException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      key          
      value        
      putFlags     
      oldProperty  

  protected boolean putIntImpl(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, int, long, com.oracle.truffle.api.object.Property);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;IJLcom/oracle/truffle/api/object/Property;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=16, args_size=7
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey 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 value
        start local 5 // long putFlags
        start local 7 // com.oracle.truffle.api.object.Property oldProperty
         0: .line 1207
            aload 2 /* cachedShape */
            astore 8 /* oldShape */
        start local 8 // com.oracle.truffle.api.object.Shape oldShape
         1: .line 1208
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            astore 9 /* start */
        start local 9 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
         2: .line 1209
            aload 9 /* start */
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.GENERIC:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            if_acmpeq 3
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
            ifne 4
         3: .line 1210
      StackMap locals: com.oracle.truffle.api.object.Shape com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 1 /* object */
            aload 3 /* key */
            iload 4 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            lload 5 /* putFlags */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.putUncached:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;J)Z
            ireturn
         4: .line 1212
      StackMap locals:
      StackMap stack:
            aload 9 /* start */
            astore 10 /* c */
        start local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
         5: goto 67
         6: .line 1213
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 10 /* c */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.isValid:()Z
            ifne 8
         7: .line 1214
            goto 68
         8: .line 1215
      StackMap locals:
      StackMap stack:
            aload 10 /* c */
            instanceof com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            ifeq 66
            aload 10 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData.putFlags:J
            lload 5 /* putFlags */
            lcmp
            ifne 66
         9: .line 1216
            aload 10 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData.property:Lcom/oracle/truffle/api/object/Property;
            astore 11 /* newProperty */
        start local 11 // com.oracle.truffle.api.object.Property newProperty
        10: .line 1217
            aload 11 /* newProperty */
            ifnonnull 13
        11: .line 1218
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 12
            lload 5 /* putFlags */
            invokestatic com.oracle.truffle.object.Flags.isSetExisting:(J)Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 1219
      StackMap locals: com.oracle.truffle.api.object.Property
      StackMap stack:
            iconst_0
            ireturn
        13: .line 1221
      StackMap locals:
      StackMap stack:
            aload 11 /* newProperty */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.getLocation:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/LocationImpl;
            astore 12 /* location */
        start local 12 // com.oracle.truffle.object.LocationImpl location
        14: .line 1222
            aload 10 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.newShape:Lcom/oracle/truffle/api/object/Shape;
            astore 13 /* newShape */
        start local 13 // com.oracle.truffle.api.object.Shape newShape
        15: .line 1223
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 8 /* oldShape */
            if_acmpne 16
            iconst_1
            goto 17
      StackMap locals: com.oracle.truffle.object.LocationImpl com.oracle.truffle.api.object.Shape
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 14 /* guardCondition */
        start local 14 // boolean guardCondition
        18: .line 1224
            aload 12 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isIntLocation:()Z
            ifeq 30
        19: .line 1225
            aload 13 /* newShape */
            aload 8 /* oldShape */
            if_acmpeq 22
        20: .line 1226
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 8 /* oldShape */
            aload 13 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        21: .line 1227
            goto 24
      StackMap locals: int
      StackMap stack:
        22: aload 12 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 24
        23: .line 1228
            goto 66
        24: .line 1231
      StackMap locals:
      StackMap stack:
            aload 12 /* location */
            aload 1 /* object */
            iload 4 /* value */
            iload 14 /* guardCondition */
            invokevirtual com.oracle.truffle.object.LocationImpl.setInt:(Lcom/oracle/truffle/api/object/DynamicObject;IZ)V
        25: .line 1232
            goto 28
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.SlowPathException
        26: astore 15 /* e */
        start local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        27: .line 1233
            aload 15 /* e */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.shouldNotHappen:(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        28: .line 1235
      StackMap locals:
      StackMap stack:
            aload 10 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        29: .line 1236
            iconst_1
            ireturn
        30: .line 1237
      StackMap locals:
      StackMap stack:
            aload 12 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isImplicitCastIntToLong:()Z
            ifeq 42
        31: .line 1238
            aload 13 /* newShape */
            aload 8 /* oldShape */
            if_acmpeq 34
        32: .line 1239
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 8 /* oldShape */
            aload 13 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        33: .line 1240
            goto 36
      StackMap locals:
      StackMap stack:
        34: aload 12 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 36
        35: .line 1241
            goto 66
        36: .line 1244
      StackMap locals:
      StackMap stack:
            aload 12 /* location */
            aload 1 /* object */
            iload 4 /* value */
            i2l
            iload 14 /* guardCondition */
            invokevirtual com.oracle.truffle.object.LocationImpl.setLong:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)V
        37: .line 1245
            goto 40
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.SlowPathException
        38: astore 15 /* e */
        start local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        39: .line 1246
            aload 15 /* e */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.shouldNotHappen:(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        40: .line 1248
      StackMap locals:
      StackMap stack:
            aload 10 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        41: .line 1249
            iconst_1
            ireturn
        42: .line 1250
      StackMap locals:
      StackMap stack:
            aload 12 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isImplicitCastIntToDouble:()Z
            ifeq 54
        43: .line 1251
            aload 13 /* newShape */
            aload 8 /* oldShape */
            if_acmpeq 46
        44: .line 1252
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 8 /* oldShape */
            aload 13 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        45: .line 1253
            goto 48
      StackMap locals:
      StackMap stack:
        46: aload 12 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 48
        47: .line 1254
            goto 66
        48: .line 1257
      StackMap locals:
      StackMap stack:
            aload 12 /* location */
            aload 1 /* object */
            iload 4 /* value */
            i2d
            iload 14 /* guardCondition */
            invokevirtual com.oracle.truffle.object.LocationImpl.setDouble:(Lcom/oracle/truffle/api/object/DynamicObject;DZ)V
        49: .line 1258
            goto 52
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.SlowPathException
        50: astore 15 /* e */
        start local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        51: .line 1259
            aload 15 /* e */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.shouldNotHappen:(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        52: .line 1261
      StackMap locals:
      StackMap stack:
            aload 10 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        53: .line 1262
            iconst_1
            ireturn
        54: .line 1263
      StackMap locals:
      StackMap stack:
            aload 12 /* location */
            iload 4 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.object.LocationImpl.canStore:(Ljava/lang/Object;)Z
            ifeq 66
        55: .line 1264
            aload 13 /* newShape */
            aload 8 /* oldShape */
            if_acmpeq 58
        56: .line 1265
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 8 /* oldShape */
            aload 13 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        57: .line 1266
            goto 60
      StackMap locals:
      StackMap stack:
        58: aload 12 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 60
        59: .line 1267
            goto 66
        60: .line 1270
      StackMap locals:
      StackMap stack:
            aload 12 /* location */
            aload 1 /* object */
            iload 4 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 14 /* guardCondition */
            invokevirtual com.oracle.truffle.object.LocationImpl.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
        61: .line 1271
            goto 64
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.SlowPathException
        62: astore 15 /* e */
        start local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        63: .line 1272
            aload 15 /* e */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.shouldNotHappen:(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 15 // com.oracle.truffle.api.nodes.SlowPathException e
        64: .line 1274
      StackMap locals:
      StackMap stack:
            aload 10 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        65: .line 1275
            iconst_1
            ireturn
        end local 14 // boolean guardCondition
        end local 13 // com.oracle.truffle.api.object.Shape newShape
        end local 12 // com.oracle.truffle.object.LocationImpl location
        end local 11 // com.oracle.truffle.api.object.Property newProperty
        66: .line 1212
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.Shape java.lang.Object int long com.oracle.truffle.api.object.Property com.oracle.truffle.api.object.Shape com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 10 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$CacheData;
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
            astore 10 /* c */
      StackMap locals:
      StackMap stack:
        67: aload 10 /* c */
            ifnonnull 6
        end local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
        68: .line 1280
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        69: .line 1281
            aload 0 /* this */
            aload 1 /* object */
            aload 2 /* cachedShape */
            iload 4 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            lload 5 /* putFlags */
            aload 7 /* oldProperty */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.insertIntoPutCache:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;JLcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 10 /* impl */
        start local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        70: .line 1282
            aload 10 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            iload 4 /* value */
            lload 5 /* putFlags */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.putInt:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;IJ)Z
            ireturn
        end local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        end local 9 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
        end local 8 // com.oracle.truffle.api.object.Shape oldShape
        end local 7 // com.oracle.truffle.api.object.Property oldProperty
        end local 5 // long putFlags
        end local 4 // int 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$SpecificKey this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   71     0            this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0   71     1          object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   71     2     cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   71     3             key  Ljava/lang/Object;
            0   71     4           value  I
            0   71     5        putFlags  J
            0   71     7     oldProperty  Lcom/oracle/truffle/api/object/Property;
            1   71     8        oldShape  Lcom/oracle/truffle/api/object/Shape;
            2   71     9           start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            5   68    10               c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
           10   66    11     newProperty  Lcom/oracle/truffle/api/object/Property;
           14   66    12        location  Lcom/oracle/truffle/object/LocationImpl;
           15   66    13        newShape  Lcom/oracle/truffle/api/object/Shape;
           18   66    14  guardCondition  Z
           27   28    15               e  Lcom/oracle/truffle/api/nodes/SlowPathException;
           39   40    15               e  Lcom/oracle/truffle/api/nodes/SlowPathException;
           51   52    15               e  Lcom/oracle/truffle/api/nodes/SlowPathException;
           63   64    15               e  Lcom/oracle/truffle/api/nodes/SlowPathException;
           70   71    10            impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
      Exception table:
        from    to  target  type
          24    25      26  Class com.oracle.truffle.api.object.IncompatibleLocationException
          24    25      26  Class com.oracle.truffle.api.object.FinalLocationException
          36    37      38  Class com.oracle.truffle.api.object.IncompatibleLocationException
          36    37      38  Class com.oracle.truffle.api.object.FinalLocationException
          48    49      50  Class com.oracle.truffle.api.object.IncompatibleLocationException
          48    49      50  Class com.oracle.truffle.api.object.FinalLocationException
          60    61      62  Class com.oracle.truffle.api.object.IncompatibleLocationException
          60    61      62  Class com.oracle.truffle.api.object.FinalLocationException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      key          
      value        
      putFlags     
      oldProperty  

  protected boolean putLongImpl(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, long, long, com.oracle.truffle.api.object.Property);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;JJLcom/oracle/truffle/api/object/Property;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=17, args_size=7
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey 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 // long value
        start local 6 // long putFlags
        start local 8 // com.oracle.truffle.api.object.Property oldProperty
         0: .line 1287
            aload 2 /* cachedShape */
            astore 9 /* oldShape */
        start local 9 // com.oracle.truffle.api.object.Shape oldShape
         1: .line 1288
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            astore 10 /* start */
        start local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
         2: .line 1289
            aload 10 /* start */
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.GENERIC:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            if_acmpne 4
         3: .line 1290
            aload 1 /* object */
            aload 3 /* key */
            lload 4 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            lload 6 /* putFlags */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.putUncached:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;J)Z
            ireturn
         4: .line 1292
      StackMap locals: com.oracle.truffle.api.object.Shape com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 10 /* start */
            astore 11 /* c */
        start local 11 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
         5: goto 42
         6: .line 1293
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 11 /* c */
            instanceof com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            ifeq 41
            aload 11 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData.putFlags:J
            lload 6 /* putFlags */
            lcmp
            ifne 41
         7: .line 1294
            aload 11 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData.property:Lcom/oracle/truffle/api/object/Property;
            astore 12 /* newProperty */
        start local 12 // com.oracle.truffle.api.object.Property newProperty
         8: .line 1295
            aload 12 /* newProperty */
            ifnonnull 11
         9: .line 1296
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 10
            lload 6 /* putFlags */
            invokestatic com.oracle.truffle.object.Flags.isSetExisting:(J)Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 1297
      StackMap locals: com.oracle.truffle.api.object.Property
      StackMap stack:
            iconst_0
            ireturn
        11: .line 1299
      StackMap locals:
      StackMap stack:
            aload 12 /* newProperty */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.getLocation:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/LocationImpl;
            astore 13 /* location */
        start local 13 // com.oracle.truffle.object.LocationImpl location
        12: .line 1300
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 9 /* oldShape */
            if_acmpne 13
            iconst_1
            goto 14
      StackMap locals: com.oracle.truffle.object.LocationImpl
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 14 /* guardCondition */
        start local 14 // boolean guardCondition
        15: .line 1301
            aload 13 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isLongLocation:()Z
            ifeq 28
        16: .line 1302
            aload 11 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.newShape:Lcom/oracle/truffle/api/object/Shape;
            astore 15 /* newShape */
        start local 15 // com.oracle.truffle.api.object.Shape newShape
        17: .line 1303
            aload 15 /* newShape */
            aload 9 /* oldShape */
            if_acmpeq 20
        18: .line 1304
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 9 /* oldShape */
            aload 15 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        19: .line 1305
            goto 22
      StackMap locals: int com.oracle.truffle.api.object.Shape
      StackMap stack:
        20: aload 13 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 22
        21: .line 1306
            goto 41
        22: .line 1309
      StackMap locals:
      StackMap stack:
            aload 13 /* location */
            aload 1 /* object */
            lload 4 /* value */
            iload 14 /* guardCondition */
            invokevirtual com.oracle.truffle.object.LocationImpl.setLong:(Lcom/oracle/truffle/api/object/DynamicObject;JZ)V
        23: .line 1310
            goto 26
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.SlowPathException
        24: astore 16 /* e */
        start local 16 // com.oracle.truffle.api.nodes.SlowPathException e
        25: .line 1311
            aload 16 /* e */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.shouldNotHappen:(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 16 // com.oracle.truffle.api.nodes.SlowPathException e
        26: .line 1313
      StackMap locals:
      StackMap stack:
            aload 11 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        27: .line 1314
            iconst_1
            ireturn
        end local 15 // com.oracle.truffle.api.object.Shape newShape
        28: .line 1315
      StackMap locals:
      StackMap stack:
            aload 13 /* location */
            lload 4 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual com.oracle.truffle.object.LocationImpl.canStore:(Ljava/lang/Object;)Z
            ifeq 41
        29: .line 1316
            aload 11 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.newShape:Lcom/oracle/truffle/api/object/Shape;
            astore 15 /* newShape */
        start local 15 // com.oracle.truffle.api.object.Shape newShape
        30: .line 1317
            aload 15 /* newShape */
            aload 9 /* oldShape */
            if_acmpeq 33
        31: .line 1318
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 9 /* oldShape */
            aload 15 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        32: .line 1319
            goto 35
      StackMap locals: com.oracle.truffle.api.object.Shape
      StackMap stack:
        33: aload 13 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 35
        34: .line 1320
            goto 41
        35: .line 1323
      StackMap locals:
      StackMap stack:
            aload 13 /* location */
            aload 1 /* object */
            lload 4 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iload 14 /* guardCondition */
            invokevirtual com.oracle.truffle.object.LocationImpl.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
        36: .line 1324
            goto 39
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.SlowPathException
        37: astore 16 /* e */
        start local 16 // com.oracle.truffle.api.nodes.SlowPathException e
        38: .line 1325
            aload 16 /* e */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.shouldNotHappen:(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 16 // com.oracle.truffle.api.nodes.SlowPathException e
        39: .line 1327
      StackMap locals:
      StackMap stack:
            aload 11 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        40: .line 1328
            iconst_1
            ireturn
        end local 15 // com.oracle.truffle.api.object.Shape newShape
        end local 14 // boolean guardCondition
        end local 13 // com.oracle.truffle.object.LocationImpl location
        end local 12 // com.oracle.truffle.api.object.Property newProperty
        41: .line 1292
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.Shape java.lang.Object long long com.oracle.truffle.api.object.Property com.oracle.truffle.api.object.Shape com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 11 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$CacheData;
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
            astore 11 /* c */
      StackMap locals:
      StackMap stack:
        42: aload 11 /* c */
            ifnonnull 6
        end local 11 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
        43: .line 1333
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        44: .line 1334
            aload 0 /* this */
            aload 1 /* object */
            aload 2 /* cachedShape */
            lload 4 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            lload 6 /* putFlags */
            aload 8 /* oldProperty */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.insertIntoPutCache:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;JLcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 11 /* impl */
        start local 11 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        45: .line 1335
            aload 11 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            lload 4 /* value */
            lload 6 /* putFlags */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.putLong:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;JJ)Z
            ireturn
        end local 11 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        end local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
        end local 9 // com.oracle.truffle.api.object.Shape oldShape
        end local 8 // com.oracle.truffle.api.object.Property oldProperty
        end local 6 // long putFlags
        end local 4 // long 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$SpecificKey this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   46     0            this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0   46     1          object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   46     2     cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   46     3             key  Ljava/lang/Object;
            0   46     4           value  J
            0   46     6        putFlags  J
            0   46     8     oldProperty  Lcom/oracle/truffle/api/object/Property;
            1   46     9        oldShape  Lcom/oracle/truffle/api/object/Shape;
            2   46    10           start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            5   43    11               c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            8   41    12     newProperty  Lcom/oracle/truffle/api/object/Property;
           12   41    13        location  Lcom/oracle/truffle/object/LocationImpl;
           15   41    14  guardCondition  Z
           17   28    15        newShape  Lcom/oracle/truffle/api/object/Shape;
           25   26    16               e  Lcom/oracle/truffle/api/nodes/SlowPathException;
           30   41    15        newShape  Lcom/oracle/truffle/api/object/Shape;
           38   39    16               e  Lcom/oracle/truffle/api/nodes/SlowPathException;
           45   46    11            impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
      Exception table:
        from    to  target  type
          22    23      24  Class com.oracle.truffle.api.object.IncompatibleLocationException
          22    23      24  Class com.oracle.truffle.api.object.FinalLocationException
          35    36      37  Class com.oracle.truffle.api.object.IncompatibleLocationException
          35    36      37  Class com.oracle.truffle.api.object.FinalLocationException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      key          
      value        
      putFlags     
      oldProperty  

  protected boolean putDoubleImpl(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, double, long, com.oracle.truffle.api.object.Property);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;DJLcom/oracle/truffle/api/object/Property;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=17, args_size=7
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey 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 // double value
        start local 6 // long putFlags
        start local 8 // com.oracle.truffle.api.object.Property oldProperty
         0: .line 1340
            aload 2 /* cachedShape */
            astore 9 /* oldShape */
        start local 9 // com.oracle.truffle.api.object.Shape oldShape
         1: .line 1341
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            astore 10 /* start */
        start local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
         2: .line 1342
            aload 10 /* start */
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.GENERIC:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            if_acmpne 4
         3: .line 1343
            aload 1 /* object */
            aload 3 /* key */
            dload 4 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            lload 6 /* putFlags */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.putUncached:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;J)Z
            ireturn
         4: .line 1345
      StackMap locals: com.oracle.truffle.api.object.Shape com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 10 /* start */
            astore 11 /* c */
        start local 11 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
         5: goto 42
         6: .line 1346
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 11 /* c */
            instanceof com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            ifeq 41
            aload 11 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData.putFlags:J
            lload 6 /* putFlags */
            lcmp
            ifne 41
         7: .line 1347
            aload 11 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData.property:Lcom/oracle/truffle/api/object/Property;
            astore 12 /* newProperty */
        start local 12 // com.oracle.truffle.api.object.Property newProperty
         8: .line 1348
            aload 12 /* newProperty */
            ifnonnull 11
         9: .line 1349
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 10
            lload 6 /* putFlags */
            invokestatic com.oracle.truffle.object.Flags.isSetExisting:(J)Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 1350
      StackMap locals: com.oracle.truffle.api.object.Property
      StackMap stack:
            iconst_0
            ireturn
        11: .line 1352
      StackMap locals:
      StackMap stack:
            aload 12 /* newProperty */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.getLocation:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/LocationImpl;
            astore 13 /* location */
        start local 13 // com.oracle.truffle.object.LocationImpl location
        12: .line 1353
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 9 /* oldShape */
            if_acmpne 13
            iconst_1
            goto 14
      StackMap locals: com.oracle.truffle.object.LocationImpl
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 14 /* guardCondition */
        start local 14 // boolean guardCondition
        15: .line 1354
            aload 13 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isDoubleLocation:()Z
            ifeq 28
        16: .line 1355
            aload 11 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.newShape:Lcom/oracle/truffle/api/object/Shape;
            astore 15 /* newShape */
        start local 15 // com.oracle.truffle.api.object.Shape newShape
        17: .line 1356
            aload 15 /* newShape */
            aload 9 /* oldShape */
            if_acmpeq 20
        18: .line 1357
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 9 /* oldShape */
            aload 15 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        19: .line 1358
            goto 22
      StackMap locals: int com.oracle.truffle.api.object.Shape
      StackMap stack:
        20: aload 13 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 22
        21: .line 1359
            goto 41
        22: .line 1362
      StackMap locals:
      StackMap stack:
            aload 13 /* location */
            aload 1 /* object */
            dload 4 /* value */
            iload 14 /* guardCondition */
            invokevirtual com.oracle.truffle.object.LocationImpl.setDouble:(Lcom/oracle/truffle/api/object/DynamicObject;DZ)V
        23: .line 1363
            goto 26
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.SlowPathException
        24: astore 16 /* e */
        start local 16 // com.oracle.truffle.api.nodes.SlowPathException e
        25: .line 1364
            aload 16 /* e */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.shouldNotHappen:(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 16 // com.oracle.truffle.api.nodes.SlowPathException e
        26: .line 1366
      StackMap locals:
      StackMap stack:
            aload 11 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        27: .line 1367
            iconst_1
            ireturn
        end local 15 // com.oracle.truffle.api.object.Shape newShape
        28: .line 1368
      StackMap locals:
      StackMap stack:
            aload 12 /* newProperty */
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            dload 4 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual com.oracle.truffle.api.object.Location.canStore:(Ljava/lang/Object;)Z
            ifeq 41
        29: .line 1369
            aload 11 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.newShape:Lcom/oracle/truffle/api/object/Shape;
            astore 15 /* newShape */
        start local 15 // com.oracle.truffle.api.object.Shape newShape
        30: .line 1370
            aload 15 /* newShape */
            aload 9 /* oldShape */
            if_acmpeq 33
        31: .line 1371
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 9 /* oldShape */
            aload 15 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.growAndSetShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
        32: .line 1372
            goto 35
      StackMap locals: com.oracle.truffle.api.object.Shape
      StackMap stack:
        33: aload 13 /* location */
            invokevirtual com.oracle.truffle.object.LocationImpl.isFinal:()Z
            ifeq 35
        34: .line 1373
            goto 41
        35: .line 1376
      StackMap locals:
      StackMap stack:
            aload 13 /* location */
            aload 1 /* object */
            dload 4 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            iload 14 /* guardCondition */
            invokevirtual com.oracle.truffle.object.LocationImpl.set:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Z)V
        36: .line 1377
            goto 39
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.nodes.SlowPathException
        37: astore 16 /* e */
        start local 16 // com.oracle.truffle.api.nodes.SlowPathException e
        38: .line 1378
            aload 16 /* e */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.shouldNotHappen:(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 16 // com.oracle.truffle.api.nodes.SlowPathException e
        39: .line 1380
      StackMap locals:
      StackMap stack:
            aload 11 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        40: .line 1381
            iconst_1
            ireturn
        end local 15 // com.oracle.truffle.api.object.Shape newShape
        end local 14 // boolean guardCondition
        end local 13 // com.oracle.truffle.object.LocationImpl location
        end local 12 // com.oracle.truffle.api.object.Property newProperty
        41: .line 1345
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.Shape java.lang.Object double long com.oracle.truffle.api.object.Property com.oracle.truffle.api.object.Shape com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 11 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$CacheData;
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
            astore 11 /* c */
      StackMap locals:
      StackMap stack:
        42: aload 11 /* c */
            ifnonnull 6
        end local 11 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
        43: .line 1386
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        44: .line 1387
            aload 0 /* this */
            aload 1 /* object */
            aload 2 /* cachedShape */
            dload 4 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            lload 6 /* putFlags */
            aload 8 /* oldProperty */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.insertIntoPutCache:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;JLcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 11 /* impl */
        start local 11 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        45: .line 1388
            aload 11 /* impl */
            aload 1 /* object */
            aload 2 /* cachedShape */
            aload 3 /* key */
            dload 4 /* value */
            lload 6 /* putFlags */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode.putDouble:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;DJ)Z
            ireturn
        end local 11 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        end local 10 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
        end local 9 // com.oracle.truffle.api.object.Shape oldShape
        end local 8 // com.oracle.truffle.api.object.Property oldProperty
        end local 6 // long putFlags
        end local 4 // double 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$SpecificKey this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   46     0            this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0   46     1          object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   46     2     cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   46     3             key  Ljava/lang/Object;
            0   46     4           value  D
            0   46     6        putFlags  J
            0   46     8     oldProperty  Lcom/oracle/truffle/api/object/Property;
            1   46     9        oldShape  Lcom/oracle/truffle/api/object/Shape;
            2   46    10           start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            5   43    11               c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            8   41    12     newProperty  Lcom/oracle/truffle/api/object/Property;
           12   41    13        location  Lcom/oracle/truffle/object/LocationImpl;
           15   41    14  guardCondition  Z
           17   28    15        newShape  Lcom/oracle/truffle/api/object/Shape;
           25   26    16               e  Lcom/oracle/truffle/api/nodes/SlowPathException;
           30   41    15        newShape  Lcom/oracle/truffle/api/object/Shape;
           38   39    16               e  Lcom/oracle/truffle/api/nodes/SlowPathException;
           45   46    11            impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
      Exception table:
        from    to  target  type
          22    23      24  Class com.oracle.truffle.api.object.IncompatibleLocationException
          22    23      24  Class com.oracle.truffle.api.object.FinalLocationException
          35    36      37  Class com.oracle.truffle.api.object.IncompatibleLocationException
          35    36      37  Class com.oracle.truffle.api.object.FinalLocationException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      key          
      value        
      putFlags     
      oldProperty  

  protected com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode insertIntoPutCache(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, long, com.oracle.truffle.api.object.Property);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;JLcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=15, args_size=6
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey 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 value
        start local 4 // long putFlags
        start local 6 // com.oracle.truffle.api.object.Property property
         0: .line 1392
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 1393
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
            ifne 3
         2: .line 1394
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            areturn
         3: .line 1396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.getLock:()Ljava/util/concurrent/locks/Lock;
            astore 7 /* lock */
        start local 7 // java.util.concurrent.locks.Lock lock
         4: .line 1397
            aload 7 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         5: .line 1399
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.filterValid:(Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$CacheData;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$CacheData;
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
            astore 8 /* tail */
        start local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData tail
         6: .line 1401
            aload 2 /* cachedShape */
            checkcast com.oracle.truffle.object.ShapeImpl
            astore 9 /* oldShape */
        start local 9 // com.oracle.truffle.object.ShapeImpl oldShape
         7: .line 1402
            aload 0 /* this */
            aload 1 /* object */
            aload 3 /* value */
            lload 4 /* putFlags */
            aload 6 /* property */
            aload 9 /* oldShape */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.getNewShape:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;JLcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/object/ShapeImpl;)Lcom/oracle/truffle/object/ShapeImpl;
            astore 10 /* newShape */
        start local 10 // com.oracle.truffle.object.ShapeImpl newShape
         8: .line 1404
            aload 9 /* oldShape */
            invokevirtual com.oracle.truffle.object.ShapeImpl.isValid:()Z
            ifne 12
         9: .line 1408
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            astore 14
        10: .line 1423
            aload 7 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        11: .line 1408
            aload 14
            areturn
        12: .line 1412
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.Shape java.lang.Object long com.oracle.truffle.api.object.Property java.util.concurrent.locks.Lock com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.ShapeImpl
      StackMap stack:
            aload 10 /* newShape */
            aload 9 /* oldShape */
            if_acmpne 15
        13: .line 1413
            aload 6 /* property */
            astore 11 /* newProperty */
        start local 11 // com.oracle.truffle.api.object.Property newProperty
        14: .line 1414
            goto 17
        end local 11 // com.oracle.truffle.api.object.Property newProperty
        15: .line 1415
      StackMap locals:
      StackMap stack:
            aload 10 /* newShape */
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.object.ShapeImpl.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            astore 11 /* newProperty */
        start local 11 // com.oracle.truffle.api.object.Property newProperty
        16: .line 1416
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 17
            aload 11 /* newProperty */
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            aload 3 /* value */
            invokevirtual com.oracle.truffle.api.object.Location.canSet:(Ljava/lang/Object;)Z
            ifne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 1419
      StackMap locals: com.oracle.truffle.api.object.Property
      StackMap stack:
            aload 9 /* oldShape */
            aload 10 /* newShape */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.getShapeValidAssumption:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/Assumption;
            astore 12 /* newShapeValid */
        start local 12 // com.oracle.truffle.api.Assumption newShapeValid
        18: .line 1420
            aload 0 /* this */
            new com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData
            dup
            lload 4 /* putFlags */
            aload 10 /* newShape */
            aload 12 /* newShapeValid */
            aload 11 /* newProperty */
            aload 8 /* tail */
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData.<init>:(JLcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/Assumption;Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;)V
            putfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
        19: .line 1421
            aload 0 /* this */
            astore 14
        20: .line 1423
            aload 7 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        21: .line 1421
            aload 14
            areturn
        end local 12 // com.oracle.truffle.api.Assumption newShapeValid
        end local 11 // com.oracle.truffle.api.object.Property newProperty
        end local 10 // com.oracle.truffle.object.ShapeImpl newShape
        end local 9 // com.oracle.truffle.object.ShapeImpl oldShape
        end local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData tail
        22: .line 1422
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.api.object.Shape java.lang.Object long com.oracle.truffle.api.object.Property java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
            astore 13
        23: .line 1423
            aload 7 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        24: .line 1424
            aload 13
            athrow
        end local 7 // java.util.concurrent.locks.Lock lock
        end local 6 // com.oracle.truffle.api.object.Property property
        end local 4 // long putFlags
        end local 3 // java.lang.Object value
        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$SpecificKey this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0   25     1         object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   25     2    cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   25     3          value  Ljava/lang/Object;
            0   25     4       putFlags  J
            0   25     6       property  Lcom/oracle/truffle/api/object/Property;
            4   25     7           lock  Ljava/util/concurrent/locks/Lock;
            6   22     8           tail  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            7   22     9       oldShape  Lcom/oracle/truffle/object/ShapeImpl;
            8   22    10       newShape  Lcom/oracle/truffle/object/ShapeImpl;
           14   15    11    newProperty  Lcom/oracle/truffle/api/object/Property;
           16   22    11    newProperty  Lcom/oracle/truffle/api/object/Property;
           18   22    12  newShapeValid  Lcom/oracle/truffle/api/Assumption;
      Exception table:
        from    to  target  type
           5    10      22  any
          12    20      22  any
    MethodParameters:
             Name  Flags
      object       
      cachedShape  
      value        
      putFlags     
      property     

  private com.oracle.truffle.object.ShapeImpl getNewShape(com.oracle.truffle.api.object.DynamicObject, java.lang.Object, long, com.oracle.truffle.api.object.Property, com.oracle.truffle.object.ShapeImpl);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;JLcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/object/ShapeImpl;)Lcom/oracle/truffle/object/ShapeImpl;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=6
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey this
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
        start local 2 // java.lang.Object value
        start local 3 // long putFlags
        start local 5 // com.oracle.truffle.api.object.Property property
        start local 6 // com.oracle.truffle.object.ShapeImpl oldShape
         0: .line 1428
            aload 5 /* property */
            ifnonnull 6
         1: .line 1429
            lload 3 /* putFlags */
            invokestatic com.oracle.truffle.object.Flags.isSetExisting:(J)Z
            ifeq 3
         2: .line 1430
            aload 6 /* oldShape */
            areturn
         3: .line 1432
      StackMap locals:
      StackMap stack:
            lload 3 /* putFlags */
            invokestatic com.oracle.truffle.object.Flags.getPropertyFlags:(J)I
            istore 7 /* propertyFlags */
        start local 7 // int propertyFlags
         4: .line 1433
            aload 6 /* oldShape */
            invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
            invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
            astore 8 /* strategy */
        start local 8 // com.oracle.truffle.object.LayoutStrategy strategy
         5: .line 1434
            aload 6 /* oldShape */
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
            aload 2 /* value */
            iload 7 /* propertyFlags */
            aload 8 /* strategy */
            lload 3 /* putFlags */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.getLocationFactory:(Lcom/oracle/truffle/object/LayoutStrategy;J)Lcom/oracle/truffle/api/object/LocationFactory;
            invokevirtual com.oracle.truffle.object.ShapeImpl.defineProperty:(Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/object/LocationFactory;)Lcom/oracle/truffle/object/ShapeImpl;
            areturn
        end local 8 // com.oracle.truffle.object.LayoutStrategy strategy
        end local 7 // int propertyFlags
         6: .line 1438
      StackMap locals:
      StackMap stack:
            lload 3 /* putFlags */
            invokestatic com.oracle.truffle.object.Flags.isUpdateFlags:(J)Z
            ifeq 11
         7: .line 1439
            lload 3 /* putFlags */
            invokestatic com.oracle.truffle.object.Flags.getPropertyFlags:(J)I
            aload 5 /* property */
            invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
            if_icmpeq 11
         8: .line 1440
            lload 3 /* putFlags */
            invokestatic com.oracle.truffle.object.Flags.getPropertyFlags:(J)I
            istore 7 /* propertyFlags */
        start local 7 // int propertyFlags
         9: .line 1441
            aload 6 /* oldShape */
            invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
            invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
            astore 8 /* strategy */
        start local 8 // com.oracle.truffle.object.LayoutStrategy strategy
        10: .line 1442
            aload 6 /* oldShape */
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
            aload 2 /* value */
            iload 7 /* propertyFlags */
            aload 8 /* strategy */
            lload 3 /* putFlags */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.getLocationFactory:(Lcom/oracle/truffle/object/LayoutStrategy;J)Lcom/oracle/truffle/api/object/LocationFactory;
            invokevirtual com.oracle.truffle.object.ShapeImpl.defineProperty:(Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/object/LocationFactory;)Lcom/oracle/truffle/object/ShapeImpl;
            areturn
        end local 8 // com.oracle.truffle.object.LayoutStrategy strategy
        end local 7 // int propertyFlags
        11: .line 1446
      StackMap locals:
      StackMap stack:
            aload 5 /* property */
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 7 /* location */
        start local 7 // com.oracle.truffle.api.object.Location location
        12: .line 1447
            aload 7 /* location */
            invokevirtual com.oracle.truffle.api.object.Location.isDeclared:()Z
            ifne 18
            aload 7 /* location */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.object.Location.canSet:(Ljava/lang/Object;)Z
            ifne 18
        13: .line 1449
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 14
            aload 6 /* oldShape */
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getShape:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
            if_acmpeq 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1450
      StackMap locals: com.oracle.truffle.api.object.Location
      StackMap stack:
            aload 6 /* oldShape */
            invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
            invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
            astore 8 /* strategy */
        start local 8 // com.oracle.truffle.object.LayoutStrategy strategy
        15: .line 1451
            aload 8 /* strategy */
            aload 6 /* oldShape */
            aload 5 /* property */
            aload 2 /* value */
            aload 8 /* strategy */
            lload 3 /* putFlags */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.getLocationFactory:(Lcom/oracle/truffle/object/LayoutStrategy;J)Lcom/oracle/truffle/api/object/LocationFactory;
            lload 3 /* putFlags */
            invokevirtual com.oracle.truffle.object.LayoutStrategy.definePropertyGeneralize:(Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/api/object/Property;Ljava/lang/Object;Lcom/oracle/truffle/api/object/LocationFactory;J)Lcom/oracle/truffle/object/ShapeImpl;
            astore 9 /* newShape */
        start local 9 // com.oracle.truffle.object.ShapeImpl newShape
        16: .line 1452
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 17
            aload 9 /* newShape */
            aload 6 /* oldShape */
            if_acmpne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 1453
      StackMap locals: com.oracle.truffle.object.LayoutStrategy com.oracle.truffle.object.ShapeImpl
      StackMap stack:
            aload 9 /* newShape */
            areturn
        end local 9 // com.oracle.truffle.object.ShapeImpl newShape
        end local 8 // com.oracle.truffle.object.LayoutStrategy strategy
        18: .line 1454
      StackMap locals:
      StackMap stack:
            aload 7 /* location */
            invokevirtual com.oracle.truffle.api.object.Location.isDeclared:()Z
            ifeq 20
        19: .line 1456
            aload 6 /* oldShape */
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
            aload 2 /* value */
            aload 5 /* property */
            invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
            invokevirtual com.oracle.truffle.object.ShapeImpl.defineProperty:(Ljava/lang/Object;Ljava/lang/Object;I)Lcom/oracle/truffle/object/ShapeImpl;
            areturn
        20: .line 1459
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.$assertionsDisabled:Z
            ifne 21
            aload 7 /* location */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.object.Location.canSet:(Ljava/lang/Object;)Z
            ifne 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 1460
      StackMap locals:
      StackMap stack:
            aload 6 /* oldShape */
            areturn
        end local 7 // com.oracle.truffle.api.object.Location location
        end local 6 // com.oracle.truffle.object.ShapeImpl oldShape
        end local 5 // com.oracle.truffle.api.object.Property property
        end local 3 // long putFlags
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0           this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0   22     1         object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   22     2          value  Ljava/lang/Object;
            0   22     3       putFlags  J
            0   22     5       property  Lcom/oracle/truffle/api/object/Property;
            0   22     6       oldShape  Lcom/oracle/truffle/object/ShapeImpl;
            4    6     7  propertyFlags  I
            5    6     8       strategy  Lcom/oracle/truffle/object/LayoutStrategy;
            9   11     7  propertyFlags  I
           10   11     8       strategy  Lcom/oracle/truffle/object/LayoutStrategy;
           12   22     7       location  Lcom/oracle/truffle/api/object/Location;
           15   18     8       strategy  Lcom/oracle/truffle/object/LayoutStrategy;
           16   18     9       newShape  Lcom/oracle/truffle/object/ShapeImpl;
    MethodParameters:
          Name  Flags
      object    
      value     
      putFlags  
      property  
      oldShape  

  protected boolean setPropertyFlagsImpl(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, java.lang.Object, int, com.oracle.truffle.api.object.Property);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Ljava/lang/Object;ILcom/oracle/truffle/api/object/Property;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=6
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey 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
        start local 5 // com.oracle.truffle.api.object.Property cachedProperty
         0: .line 1466
            aload 2 /* cachedShape */
            astore 6 /* oldShape */
        start local 6 // com.oracle.truffle.api.object.Shape oldShape
         1: .line 1467
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            astore 7 /* start */
        start local 7 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
         2: .line 1468
            aload 7 /* start */
            getstatic com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.GENERIC:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            if_acmpeq 3
            aload 2 /* cachedShape */
            invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
            ifne 4
         3: .line 1469
      StackMap locals: com.oracle.truffle.api.object.Shape com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      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
         4: .line 1471
      StackMap locals:
      StackMap stack:
            aload 7 /* start */
            astore 8 /* c */
        start local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
         5: goto 18
         6: .line 1472
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
      StackMap stack:
            aload 8 /* c */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.isValid:()Z
            ifne 8
         7: .line 1473
            goto 19
         8: .line 1474
      StackMap locals:
      StackMap stack:
            aload 8 /* c */
            instanceof com.oracle.truffle.object.DynamicObjectLibraryImpl$SetPropertyFlagsCacheData
            ifeq 17
            aload 8 /* c */
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$SetPropertyFlagsCacheData
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SetPropertyFlagsCacheData.property:Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
            iload 4 /* propertyFlags */
            if_icmpne 17
         9: .line 1475
            aload 5 /* cachedProperty */
            ifnonnull 11
        10: .line 1476
            iconst_0
            ireturn
        11: .line 1478
      StackMap locals:
      StackMap stack:
            aload 5 /* cachedProperty */
            invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
            iload 4 /* propertyFlags */
            if_icmpeq 16
        12: .line 1479
            aload 8 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.newShape:Lcom/oracle/truffle/api/object/Shape;
            astore 9 /* newShape */
        start local 9 // com.oracle.truffle.api.object.Shape newShape
        13: .line 1480
            aload 9 /* newShape */
            aload 6 /* oldShape */
            if_acmpeq 16
        14: .line 1481
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 1 /* object */
            aload 9 /* newShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
        15: .line 1482
            aload 8 /* c */
            aload 1 /* object */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.maybeUpdateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)V
        end local 9 // com.oracle.truffle.api.object.Shape newShape
        16: .line 1485
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        17: .line 1471
      StackMap locals:
      StackMap stack:
            aload 8 /* c */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData.next:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$CacheData;
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
            astore 8 /* c */
      StackMap locals:
      StackMap stack:
        18: aload 8 /* c */
            ifnonnull 6
        end local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData c
        19: .line 1488
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
        20: .line 1489
            aload 0 /* this */
            aload 2 /* cachedShape */
            iload 4 /* propertyFlags */
            aload 5 /* cachedProperty */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.insertIntoSetPropertyFlagsCache:(Lcom/oracle/truffle/api/object/Shape;ILcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
            astore 8 /* impl */
        start local 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        21: .line 1490
            aload 8 /* 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 8 // com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode impl
        end local 7 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData start
        end local 6 // com.oracle.truffle.api.object.Shape oldShape
        end local 5 // com.oracle.truffle.api.object.Property cachedProperty
        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$SpecificKey this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0   22     1          object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   22     2     cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   22     3             key  Ljava/lang/Object;
            0   22     4   propertyFlags  I
            0   22     5  cachedProperty  Lcom/oracle/truffle/api/object/Property;
            1   22     6        oldShape  Lcom/oracle/truffle/api/object/Shape;
            2   22     7           start  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            5   19     8               c  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
           13   16     9        newShape  Lcom/oracle/truffle/api/object/Shape;
           21   22     8            impl  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
                Name  Flags
      object          
      cachedShape     
      key             
      propertyFlags   
      cachedProperty  

  protected com.oracle.truffle.object.DynamicObjectLibraryImpl$KeyCacheNode insertIntoSetPropertyFlagsCache(com.oracle.truffle.api.object.Shape, int, com.oracle.truffle.api.object.Property);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;ILcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$KeyCacheNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey this
        start local 1 // com.oracle.truffle.api.object.Shape cachedShape
        start local 2 // int propertyFlags
        start local 3 // com.oracle.truffle.api.object.Property cachedProperty
         0: .line 1494
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 1495
            aload 1 /* cachedShape */
            invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
            ifne 3
         2: .line 1496
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            areturn
         3: .line 1498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.getLock:()Ljava/util/concurrent/locks/Lock;
            astore 4 /* lock */
        start local 4 // java.util.concurrent.locks.Lock lock
         4: .line 1499
            aload 4 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         5: .line 1501
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.filterValid:(Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$CacheData;)Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$CacheData;
            checkcast com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData
            astore 5 /* tail */
        start local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData tail
         6: .line 1503
            aload 1 /* cachedShape */
            checkcast com.oracle.truffle.object.ShapeImpl
            astore 6 /* oldShape */
        start local 6 // com.oracle.truffle.object.ShapeImpl oldShape
         7: .line 1504
            aload 6 /* oldShape */
            aload 3 /* cachedProperty */
            checkcast com.oracle.truffle.object.PropertyImpl
            iload 2 /* propertyFlags */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl.changePropertyFlags:(Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/object/PropertyImpl;I)Lcom/oracle/truffle/object/ShapeImpl;
            astore 7 /* newShape */
        start local 7 // com.oracle.truffle.object.ShapeImpl newShape
         8: .line 1506
            aload 6 /* oldShape */
            invokevirtual com.oracle.truffle.object.ShapeImpl.isValid:()Z
            ifne 12
         9: .line 1510
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$Generic.instance:()Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$Generic;
            astore 11
        10: .line 1524
            aload 4 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        11: .line 1510
            aload 11
            areturn
        12: .line 1514
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey com.oracle.truffle.api.object.Shape int com.oracle.truffle.api.object.Property java.util.concurrent.locks.Lock com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.ShapeImpl
      StackMap stack:
            aload 7 /* newShape */
            aload 6 /* oldShape */
            if_acmpne 15
        13: .line 1515
            aload 3 /* cachedProperty */
            astore 8 /* newProperty */
        start local 8 // com.oracle.truffle.api.object.Property newProperty
        14: .line 1516
            goto 16
        end local 8 // com.oracle.truffle.api.object.Property newProperty
        15: .line 1517
      StackMap locals:
      StackMap stack:
            aload 7 /* newShape */
            aload 0 /* this */
            getfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cachedKey:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.object.ShapeImpl.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            astore 8 /* newProperty */
        start local 8 // com.oracle.truffle.api.object.Property newProperty
        16: .line 1520
      StackMap locals: com.oracle.truffle.api.object.Property
      StackMap stack:
            aload 6 /* oldShape */
            aload 7 /* newShape */
            invokestatic com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.getShapeValidAssumption:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/Assumption;
            astore 9 /* newShapeValid */
        start local 9 // com.oracle.truffle.api.Assumption newShapeValid
        17: .line 1521
            aload 0 /* this */
            new com.oracle.truffle.object.DynamicObjectLibraryImpl$SetPropertyFlagsCacheData
            dup
            aload 7 /* newShape */
            aload 9 /* newShapeValid */
            aload 8 /* newProperty */
            aload 5 /* tail */
            invokespecial com.oracle.truffle.object.DynamicObjectLibraryImpl$SetPropertyFlagsCacheData.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/Assumption;Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;)V
            putfield com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey.cache:Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
        18: .line 1522
            aload 0 /* this */
            astore 11
        19: .line 1524
            aload 4 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        20: .line 1522
            aload 11
            areturn
        end local 9 // com.oracle.truffle.api.Assumption newShapeValid
        end local 8 // com.oracle.truffle.api.object.Property newProperty
        end local 7 // com.oracle.truffle.object.ShapeImpl newShape
        end local 6 // com.oracle.truffle.object.ShapeImpl oldShape
        end local 5 // com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData tail
        21: .line 1523
      StackMap locals: com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey com.oracle.truffle.api.object.Shape int com.oracle.truffle.api.object.Property java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
            astore 10
        22: .line 1524
            aload 4 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        23: .line 1525
            aload 10
            athrow
        end local 4 // java.util.concurrent.locks.Lock lock
        end local 3 // com.oracle.truffle.api.object.Property cachedProperty
        end local 2 // int propertyFlags
        end local 1 // com.oracle.truffle.api.object.Shape cachedShape
        end local 0 // com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$SpecificKey;
            0   24     1     cachedShape  Lcom/oracle/truffle/api/object/Shape;
            0   24     2   propertyFlags  I
            0   24     3  cachedProperty  Lcom/oracle/truffle/api/object/Property;
            4   24     4            lock  Ljava/util/concurrent/locks/Lock;
            6   21     5            tail  Lcom/oracle/truffle/object/DynamicObjectLibraryImpl$MutateCacheData;
            7   21     6        oldShape  Lcom/oracle/truffle/object/ShapeImpl;
            8   21     7        newShape  Lcom/oracle/truffle/object/ShapeImpl;
           14   15     8     newProperty  Lcom/oracle/truffle/api/object/Property;
           16   21     8     newProperty  Lcom/oracle/truffle/api/object/Property;
           17   21     9   newShapeValid  Lcom/oracle/truffle/api/Assumption;
      Exception table:
        from    to  target  type
           5    10      21  any
          12    19      21  any
    MethodParameters:
                Name  Flags
      cachedShape     
      propertyFlags   
      cachedProperty  

  private static com.oracle.truffle.api.Assumption getShapeValidAssumption(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/Assumption;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.Shape oldShape
        start local 1 // com.oracle.truffle.api.object.Shape newShape
         0: .line 1529
            aload 0 /* oldShape */
            aload 1 /* newShape */
            if_acmpne 2
         1: .line 1530
            getstatic com.oracle.truffle.api.utilities.AlwaysValidAssumption.INSTANCE:Lcom/oracle/truffle/api/utilities/AlwaysValidAssumption;
            areturn
         2: .line 1532
      StackMap locals:
      StackMap stack:
            aload 1 /* newShape */
            invokevirtual com.oracle.truffle.api.object.Shape.isValid:()Z
            ifeq 3
            aload 1 /* newShape */
            invokevirtual com.oracle.truffle.api.object.Shape.getValidAssumption:()Lcom/oracle/truffle/api/Assumption;
            goto 4
      StackMap locals:
      StackMap stack:
         3: getstatic com.oracle.truffle.api.utilities.NeverValidAssumption.INSTANCE:Lcom/oracle/truffle/api/utilities/NeverValidAssumption;
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.Assumption
         4: areturn
        end local 1 // com.oracle.truffle.api.object.Shape newShape
        end local 0 // com.oracle.truffle.api.object.Shape oldShape
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  oldShape  Lcom/oracle/truffle/api/object/Shape;
            0    5     1  newShape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
          Name  Flags
      oldShape  
      newShape  
}
SourceFile: "DynamicObjectLibraryImpl.java"
NestHost: com.oracle.truffle.object.DynamicObjectLibraryImpl
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  abstract CacheData = com.oracle.truffle.object.DynamicObjectLibraryImpl$CacheData 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
  MutateCacheData = com.oracle.truffle.object.DynamicObjectLibraryImpl$MutateCacheData of com.oracle.truffle.object.DynamicObjectLibraryImpl
  PutCacheData = com.oracle.truffle.object.DynamicObjectLibraryImpl$PutCacheData of com.oracle.truffle.object.DynamicObjectLibraryImpl
  SetPropertyFlagsCacheData = com.oracle.truffle.object.DynamicObjectLibraryImpl$SetPropertyFlagsCacheData of com.oracle.truffle.object.DynamicObjectLibraryImpl
  abstract SpecificKey = com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey of com.oracle.truffle.object.DynamicObjectLibraryImpl
  ExistingKey = com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$ExistingKey of com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey
  ExistingKeyIdentity = com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$ExistingKeyIdentity of com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey
  MissingKey = com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$MissingKey of com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey
  MissingKeyIdentity = com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey$MissingKeyIdentity of com.oracle.truffle.object.DynamicObjectLibraryImpl$SpecificKey
  final CoreAccess = com.oracle.truffle.object.LayoutImpl$CoreAccess of com.oracle.truffle.object.LayoutImpl