final class com.oracle.truffle.object.DynamicObjectSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.object.DynamicObjectSupport
  super_class: java.lang.Object
{
  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 56
            ldc Lcom/oracle/truffle/object/DynamicObjectSupport;
            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.DynamicObjectSupport.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.DynamicObjectSupport this
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            return
        end local 0 // com.oracle.truffle.object.DynamicObjectSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/object/DynamicObjectSupport;

  static void ensureCapacity(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape otherShape
         0: .line 62
            aload 0 /* object */
            aload 0 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 1 /* otherShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.growObjectStore:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         1: .line 63
            aload 0 /* object */
            aload 0 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            aload 1 /* otherShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.growPrimitiveStore:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         2: .line 64
            return
        end local 1 // com.oracle.truffle.api.object.Shape otherShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0      object  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1  otherShape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
            Name  Flags
      object      
      otherShape  

  static void grow(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape thisShape
        start local 2 // com.oracle.truffle.api.object.Shape otherShape
         0: .line 67
            aload 0 /* object */
            aload 1 /* thisShape */
            aload 2 /* otherShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.growObjectStore:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         1: .line 68
            aload 0 /* object */
            aload 1 /* thisShape */
            aload 2 /* otherShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.growPrimitiveStore:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         2: .line 69
            return
        end local 2 // com.oracle.truffle.api.object.Shape otherShape
        end local 1 // com.oracle.truffle.api.object.Shape thisShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0      object  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1   thisShape  Lcom/oracle/truffle/api/object/Shape;
            0    3     2  otherShape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
            Name  Flags
      object      
      thisShape   
      otherShape  

  static void resize(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape thisShape
        start local 2 // com.oracle.truffle.api.object.Shape otherShape
         0: .line 72
            aload 0 /* object */
            aload 1 /* thisShape */
            aload 2 /* otherShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.resizeObjectStore:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         1: .line 73
            aload 0 /* object */
            aload 1 /* thisShape */
            aload 2 /* otherShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.resizePrimitiveStore:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         2: .line 74
            return
        end local 2 // com.oracle.truffle.api.object.Shape otherShape
        end local 1 // com.oracle.truffle.api.object.Shape thisShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0      object  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1   thisShape  Lcom/oracle/truffle/api/object/Shape;
            0    3     2  otherShape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
            Name  Flags
      object      
      thisShape   
      otherShape  

  static void trimToSize(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape thisShape
         0: .line 77
            aload 0 /* object */
            aload 1 /* thisShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.trimObjectStore:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
         1: .line 78
            aload 0 /* object */
            aload 1 /* thisShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.trimPrimitiveStore:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
         2: .line 79
            return
        end local 1 // com.oracle.truffle.api.object.Shape thisShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0     object  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1  thisShape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
           Name  Flags
      object     
      thisShape  

  static void growAndSetShape(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape thisShape
        start local 2 // com.oracle.truffle.api.object.Shape otherShape
         0: .line 82
            aload 0 /* object */
            aload 1 /* thisShape */
            aload 2 /* otherShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.grow:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         1: .line 83
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aload 2 /* otherShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
         2: .line 84
            return
        end local 2 // com.oracle.truffle.api.object.Shape otherShape
        end local 1 // com.oracle.truffle.api.object.Shape thisShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0      object  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1   thisShape  Lcom/oracle/truffle/api/object/Shape;
            0    3     2  otherShape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
            Name  Flags
      object      
      thisShape   
      otherShape  

  static void resizeAndSetShape(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape thisShape
        start local 2 // com.oracle.truffle.api.object.Shape otherShape
         0: .line 87
            aload 0 /* object */
            aload 1 /* thisShape */
            aload 2 /* otherShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.resize:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
         1: .line 88
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aload 2 /* otherShape */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
         2: .line 89
            return
        end local 2 // com.oracle.truffle.api.object.Shape otherShape
        end local 1 // com.oracle.truffle.api.object.Shape thisShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0      object  Lcom/oracle/truffle/api/object/DynamicObject;
            0    3     1   thisShape  Lcom/oracle/truffle/api/object/Shape;
            0    3     2  otherShape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
            Name  Flags
      object      
      thisShape   
      otherShape  

  private static void growObjectStore(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape oldShape
        start local 2 // com.oracle.truffle.api.object.Shape newShape
         0: .line 92
            aload 1 /* oldShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getObjectArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 3 /* sourceCapacity */
        start local 3 // int sourceCapacity
         1: .line 93
            aload 2 /* newShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getObjectArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 4 /* destinationCapacity */
        start local 4 // int destinationCapacity
         2: .line 94
            iload 3 /* sourceCapacity */
            iload 4 /* destinationCapacity */
            if_icmpge 9
         3: .line 95
            iload 4 /* destinationCapacity */
            anewarray java.lang.Object
            astore 5 /* newObjectStore */
        start local 5 // java.lang.Object[] newObjectStore
         4: .line 96
            iload 3 /* sourceCapacity */
            ifeq 8
         5: .line 97
            aload 1 /* oldShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getObjectArraySize:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 6 /* sourceSize */
        start local 6 // int sourceSize
         6: .line 98
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getObjectArray:(Lcom/oracle/truffle/api/object/DynamicObject;)[Ljava/lang/Object;
            astore 7 /* oldObjectStore */
        start local 7 // java.lang.Object[] oldObjectStore
         7: .line 99
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 7 /* oldObjectStore */
            aload 5 /* newObjectStore */
            iload 6 /* sourceSize */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.arrayCopy:([Ljava/lang/Object;[Ljava/lang/Object;I)V
        end local 7 // java.lang.Object[] oldObjectStore
        end local 6 // int sourceSize
         8: .line 101
      StackMap locals: int int java.lang.Object[]
      StackMap stack:
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aload 5 /* newObjectStore */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setObjectArray:(Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;)V
        end local 5 // java.lang.Object[] newObjectStore
         9: .line 103
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int destinationCapacity
        end local 3 // int sourceCapacity
        end local 2 // com.oracle.truffle.api.object.Shape newShape
        end local 1 // com.oracle.truffle.api.object.Shape oldShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0               object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   10     1             oldShape  Lcom/oracle/truffle/api/object/Shape;
            0   10     2             newShape  Lcom/oracle/truffle/api/object/Shape;
            1   10     3       sourceCapacity  I
            2   10     4  destinationCapacity  I
            4    9     5       newObjectStore  [Ljava/lang/Object;
            6    8     6           sourceSize  I
            7    8     7       oldObjectStore  [Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      object    
      oldShape  
      newShape  

  private static void resizeObjectStore(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape oldShape
        start local 2 // com.oracle.truffle.api.object.Shape newShape
         0: .line 106
            aload 2 /* newShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getObjectArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 3 /* destinationCapacity */
        start local 3 // int destinationCapacity
         1: .line 107
            iload 3 /* destinationCapacity */
            ifne 4
         2: .line 108
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aconst_null
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setObjectArray:(Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;)V
         3: .line 109
            goto 14
         4: .line 110
      StackMap locals: int
      StackMap stack:
            aload 1 /* oldShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getObjectArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 4 /* sourceCapacity */
        start local 4 // int sourceCapacity
         5: .line 111
            iload 4 /* sourceCapacity */
            iload 3 /* destinationCapacity */
            if_icmpeq 14
         6: .line 112
            aload 1 /* oldShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getObjectArraySize:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 5 /* sourceSize */
        start local 5 // int sourceSize
         7: .line 113
            iload 3 /* destinationCapacity */
            anewarray java.lang.Object
            astore 6 /* newObjectStore */
        start local 6 // java.lang.Object[] newObjectStore
         8: .line 114
            iload 5 /* sourceSize */
            ifeq 13
         9: .line 115
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getObjectArray:(Lcom/oracle/truffle/api/object/DynamicObject;)[Ljava/lang/Object;
            astore 7 /* oldObjectStore */
        start local 7 // java.lang.Object[] oldObjectStore
        10: .line 116
            aload 2 /* newShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getObjectArraySize:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 8 /* destinationSize */
        start local 8 // int destinationSize
        11: .line 117
            iload 5 /* sourceSize */
            iload 8 /* destinationSize */
            invokestatic java.lang.Math.min:(II)I
            istore 9 /* length */
        start local 9 // int length
        12: .line 118
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 7 /* oldObjectStore */
            aload 6 /* newObjectStore */
            iload 9 /* length */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.arrayCopy:([Ljava/lang/Object;[Ljava/lang/Object;I)V
        end local 9 // int length
        end local 8 // int destinationSize
        end local 7 // java.lang.Object[] oldObjectStore
        13: .line 120
      StackMap locals: int int java.lang.Object[]
      StackMap stack:
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aload 6 /* newObjectStore */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setObjectArray:(Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;)V
        end local 6 // java.lang.Object[] newObjectStore
        end local 5 // int sourceSize
        end local 4 // int sourceCapacity
        14: .line 123
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int destinationCapacity
        end local 2 // com.oracle.truffle.api.object.Shape newShape
        end local 1 // com.oracle.truffle.api.object.Shape oldShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0               object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   15     1             oldShape  Lcom/oracle/truffle/api/object/Shape;
            0   15     2             newShape  Lcom/oracle/truffle/api/object/Shape;
            1   15     3  destinationCapacity  I
            5   14     4       sourceCapacity  I
            7   14     5           sourceSize  I
            8   14     6       newObjectStore  [Ljava/lang/Object;
           10   13     7       oldObjectStore  [Ljava/lang/Object;
           11   13     8      destinationSize  I
           12   13     9               length  I
    MethodParameters:
          Name  Flags
      object    
      oldShape  
      newShape  

  private static void growPrimitiveStore(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape oldShape
        start local 2 // com.oracle.truffle.api.object.Shape newShape
         0: .line 126
            aload 1 /* oldShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getPrimitiveArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 3 /* sourceCapacity */
        start local 3 // int sourceCapacity
         1: .line 127
            aload 2 /* newShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getPrimitiveArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 4 /* destinationCapacity */
        start local 4 // int destinationCapacity
         2: .line 128
            iload 3 /* sourceCapacity */
            iload 4 /* destinationCapacity */
            if_icmpge 9
         3: .line 129
            iload 4 /* destinationCapacity */
            newarray 10
            astore 5 /* newPrimitiveArray */
        start local 5 // int[] newPrimitiveArray
         4: .line 130
            iload 3 /* sourceCapacity */
            ifeq 8
         5: .line 131
            aload 1 /* oldShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getPrimitiveArraySize:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 6 /* sourceSize */
        start local 6 // int sourceSize
         6: .line 132
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getPrimitiveArray:(Lcom/oracle/truffle/api/object/DynamicObject;)[I
            astore 7 /* oldPrimitiveArray */
        start local 7 // int[] oldPrimitiveArray
         7: .line 133
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 7 /* oldPrimitiveArray */
            aload 5 /* newPrimitiveArray */
            iload 6 /* sourceSize */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.arrayCopy:([I[II)V
        end local 7 // int[] oldPrimitiveArray
        end local 6 // int sourceSize
         8: .line 135
      StackMap locals: int int int[]
      StackMap stack:
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aload 5 /* newPrimitiveArray */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setPrimitiveArray:(Lcom/oracle/truffle/api/object/DynamicObject;[I)V
        end local 5 // int[] newPrimitiveArray
         9: .line 137
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int destinationCapacity
        end local 3 // int sourceCapacity
        end local 2 // com.oracle.truffle.api.object.Shape newShape
        end local 1 // com.oracle.truffle.api.object.Shape oldShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0               object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   10     1             oldShape  Lcom/oracle/truffle/api/object/Shape;
            0   10     2             newShape  Lcom/oracle/truffle/api/object/Shape;
            1   10     3       sourceCapacity  I
            2   10     4  destinationCapacity  I
            4    9     5    newPrimitiveArray  [I
            6    8     6           sourceSize  I
            7    8     7    oldPrimitiveArray  [I
    MethodParameters:
          Name  Flags
      object    
      oldShape  
      newShape  

  private static void resizePrimitiveStore(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape oldShape
        start local 2 // com.oracle.truffle.api.object.Shape newShape
         0: .line 140
            getstatic com.oracle.truffle.object.DynamicObjectSupport.$assertionsDisabled:Z
            ifne 1
            aload 2 /* newShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.hasPrimitiveArray:(Lcom/oracle/truffle/api/object/Shape;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 141
      StackMap locals:
      StackMap stack:
            aload 2 /* newShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getPrimitiveArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 3 /* destinationCapacity */
        start local 3 // int destinationCapacity
         2: .line 142
            iload 3 /* destinationCapacity */
            ifne 5
         3: .line 143
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aconst_null
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setPrimitiveArray:(Lcom/oracle/truffle/api/object/DynamicObject;[I)V
         4: .line 144
            goto 15
         5: .line 145
      StackMap locals: int
      StackMap stack:
            aload 1 /* oldShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getPrimitiveArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 4 /* sourceCapacity */
        start local 4 // int sourceCapacity
         6: .line 146
            iload 4 /* sourceCapacity */
            iload 3 /* destinationCapacity */
            if_icmpeq 15
         7: .line 147
            aload 1 /* oldShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getPrimitiveArraySize:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 5 /* sourceSize */
        start local 5 // int sourceSize
         8: .line 148
            iload 3 /* destinationCapacity */
            newarray 10
            astore 6 /* newPrimitiveArray */
        start local 6 // int[] newPrimitiveArray
         9: .line 149
            iload 5 /* sourceSize */
            ifeq 14
        10: .line 150
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getPrimitiveArray:(Lcom/oracle/truffle/api/object/DynamicObject;)[I
            astore 7 /* oldPrimitiveArray */
        start local 7 // int[] oldPrimitiveArray
        11: .line 151
            aload 2 /* newShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getPrimitiveArraySize:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 8 /* destinationSize */
        start local 8 // int destinationSize
        12: .line 152
            iload 5 /* sourceSize */
            iload 8 /* destinationSize */
            invokestatic java.lang.Math.min:(II)I
            istore 9 /* length */
        start local 9 // int length
        13: .line 153
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 7 /* oldPrimitiveArray */
            aload 6 /* newPrimitiveArray */
            iload 9 /* length */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.arrayCopy:([I[II)V
        end local 9 // int length
        end local 8 // int destinationSize
        end local 7 // int[] oldPrimitiveArray
        14: .line 155
      StackMap locals: int int int[]
      StackMap stack:
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aload 6 /* newPrimitiveArray */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setPrimitiveArray:(Lcom/oracle/truffle/api/object/DynamicObject;[I)V
        end local 6 // int[] newPrimitiveArray
        end local 5 // int sourceSize
        end local 4 // int sourceCapacity
        15: .line 158
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int destinationCapacity
        end local 2 // com.oracle.truffle.api.object.Shape newShape
        end local 1 // com.oracle.truffle.api.object.Shape oldShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   16     0               object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   16     1             oldShape  Lcom/oracle/truffle/api/object/Shape;
            0   16     2             newShape  Lcom/oracle/truffle/api/object/Shape;
            2   16     3  destinationCapacity  I
            6   15     4       sourceCapacity  I
            8   15     5           sourceSize  I
            9   15     6    newPrimitiveArray  [I
           11   14     7    oldPrimitiveArray  [I
           12   14     8      destinationSize  I
           13   14     9               length  I
    MethodParameters:
          Name  Flags
      object    
      oldShape  
      newShape  

  private static void trimObjectStore(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape thisShape
         0: .line 161
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getObjectArray:(Lcom/oracle/truffle/api/object/DynamicObject;)[Ljava/lang/Object;
            astore 2 /* oldObjectStore */
        start local 2 // java.lang.Object[] oldObjectStore
         1: .line 162
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getShape:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
            astore 3 /* curShape */
        start local 3 // com.oracle.truffle.api.object.Shape curShape
         2: .line 163
            getstatic com.oracle.truffle.object.DynamicObjectSupport.$assertionsDisabled:Z
            ifne 3
            aload 3 /* curShape */
            aload 1 /* thisShape */
            if_acmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 164
      StackMap locals: java.lang.Object[] com.oracle.truffle.api.object.Shape
      StackMap stack:
            aload 3 /* curShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getObjectArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 4 /* destinationCapacity */
        start local 4 // int destinationCapacity
         4: .line 165
            iload 4 /* destinationCapacity */
            ifne 8
         5: .line 166
            aload 2 /* oldObjectStore */
            ifnull 14
         6: .line 167
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aconst_null
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setObjectArray:(Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;)V
         7: .line 170
            goto 14
         8: .line 171
      StackMap locals: int
      StackMap stack:
            aload 2 /* oldObjectStore */
            arraylength
            istore 5 /* sourceCapacity */
        start local 5 // int sourceCapacity
         9: .line 172
            iload 5 /* sourceCapacity */
            iload 4 /* destinationCapacity */
            if_icmple 14
        10: .line 173
            iload 4 /* destinationCapacity */
            anewarray java.lang.Object
            astore 6 /* newObjectStore */
        start local 6 // java.lang.Object[] newObjectStore
        11: .line 174
            aload 3 /* curShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getObjectArraySize:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 7 /* destinationSize */
        start local 7 // int destinationSize
        12: .line 175
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 2 /* oldObjectStore */
            aload 6 /* newObjectStore */
            iload 7 /* destinationSize */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.arrayCopy:([Ljava/lang/Object;[Ljava/lang/Object;I)V
        13: .line 176
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aload 6 /* newObjectStore */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setObjectArray:(Lcom/oracle/truffle/api/object/DynamicObject;[Ljava/lang/Object;)V
        end local 7 // int destinationSize
        end local 6 // java.lang.Object[] newObjectStore
        end local 5 // int sourceCapacity
        14: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int destinationCapacity
        end local 3 // com.oracle.truffle.api.object.Shape curShape
        end local 2 // java.lang.Object[] oldObjectStore
        end local 1 // com.oracle.truffle.api.object.Shape thisShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0               object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   15     1            thisShape  Lcom/oracle/truffle/api/object/Shape;
            1   15     2       oldObjectStore  [Ljava/lang/Object;
            2   15     3             curShape  Lcom/oracle/truffle/api/object/Shape;
            4   15     4  destinationCapacity  I
            9   14     5       sourceCapacity  I
           11   14     6       newObjectStore  [Ljava/lang/Object;
           12   14     7      destinationSize  I
    MethodParameters:
           Name  Flags
      object     
      thisShape  

  private static void trimPrimitiveStore(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // com.oracle.truffle.api.object.Shape thisShape
         0: .line 182
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getPrimitiveArray:(Lcom/oracle/truffle/api/object/DynamicObject;)[I
            astore 2 /* oldPrimitiveStore */
        start local 2 // int[] oldPrimitiveStore
         1: .line 183
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.getShape:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/Shape;
            astore 3 /* curShape */
        start local 3 // com.oracle.truffle.api.object.Shape curShape
         2: .line 184
            getstatic com.oracle.truffle.object.DynamicObjectSupport.$assertionsDisabled:Z
            ifne 3
            aload 3 /* curShape */
            aload 1 /* thisShape */
            if_acmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 185
      StackMap locals: int[] com.oracle.truffle.api.object.Shape
      StackMap stack:
            aload 3 /* curShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getPrimitiveArrayCapacity:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 4 /* destinationCapacity */
        start local 4 // int destinationCapacity
         4: .line 186
            iload 4 /* destinationCapacity */
            ifne 8
         5: .line 187
            aload 2 /* oldPrimitiveStore */
            ifnull 14
         6: .line 188
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aconst_null
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setPrimitiveArray:(Lcom/oracle/truffle/api/object/DynamicObject;[I)V
         7: .line 191
            goto 14
         8: .line 192
      StackMap locals: int
      StackMap stack:
            aload 2 /* oldPrimitiveStore */
            arraylength
            istore 5 /* sourceCapacity */
        start local 5 // int sourceCapacity
         9: .line 193
            iload 5 /* sourceCapacity */
            iload 4 /* destinationCapacity */
            if_icmple 14
        10: .line 194
            iload 4 /* destinationCapacity */
            newarray 10
            astore 6 /* newPrimitiveStore */
        start local 6 // int[] newPrimitiveStore
        11: .line 195
            aload 3 /* curShape */
            invokestatic com.oracle.truffle.object.DynamicObjectSupport.getPrimitiveArraySize:(Lcom/oracle/truffle/api/object/Shape;)I
            istore 7 /* destinationSize */
        start local 7 // int destinationSize
        12: .line 196
            aload 2 /* oldPrimitiveStore */
            iconst_0
            aload 6 /* newPrimitiveStore */
            iconst_0
            iload 7 /* destinationSize */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        13: .line 197
            getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
            aload 0 /* object */
            aload 6 /* newPrimitiveStore */
            invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setPrimitiveArray:(Lcom/oracle/truffle/api/object/DynamicObject;[I)V
        end local 7 // int destinationSize
        end local 6 // int[] newPrimitiveStore
        end local 5 // int sourceCapacity
        14: .line 200
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int destinationCapacity
        end local 3 // com.oracle.truffle.api.object.Shape curShape
        end local 2 // int[] oldPrimitiveStore
        end local 1 // com.oracle.truffle.api.object.Shape thisShape
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   15     0               object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   15     1            thisShape  Lcom/oracle/truffle/api/object/Shape;
            1   15     2    oldPrimitiveStore  [I
            2   15     3             curShape  Lcom/oracle/truffle/api/object/Shape;
            4   15     4  destinationCapacity  I
            9   14     5       sourceCapacity  I
           11   14     6    newPrimitiveStore  [I
           12   14     7      destinationSize  I
    MethodParameters:
           Name  Flags
      object     
      thisShape  

  private static int getObjectArrayCapacity(com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.Shape shape
         0: .line 203
            aload 0 /* shape */
            checkcast com.oracle.truffle.object.ShapeImpl
            invokevirtual com.oracle.truffle.object.ShapeImpl.getObjectArrayCapacity:()I
            ireturn
        end local 0 // com.oracle.truffle.api.object.Shape shape
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  shape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
       Name  Flags
      shape  

  private static int getObjectArraySize(com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.Shape shape
         0: .line 207
            aload 0 /* shape */
            checkcast com.oracle.truffle.object.ShapeImpl
            invokevirtual com.oracle.truffle.object.ShapeImpl.getObjectArraySize:()I
            ireturn
        end local 0 // com.oracle.truffle.api.object.Shape shape
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  shape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
       Name  Flags
      shape  

  private static int getPrimitiveArrayCapacity(com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.Shape shape
         0: .line 211
            aload 0 /* shape */
            checkcast com.oracle.truffle.object.ShapeImpl
            invokevirtual com.oracle.truffle.object.ShapeImpl.getPrimitiveArrayCapacity:()I
            ireturn
        end local 0 // com.oracle.truffle.api.object.Shape shape
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  shape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
       Name  Flags
      shape  

  private static int getPrimitiveArraySize(com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.Shape shape
         0: .line 215
            aload 0 /* shape */
            checkcast com.oracle.truffle.object.ShapeImpl
            invokevirtual com.oracle.truffle.object.ShapeImpl.getPrimitiveArraySize:()I
            ireturn
        end local 0 // com.oracle.truffle.api.object.Shape shape
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  shape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
       Name  Flags
      shape  

  private static boolean hasPrimitiveArray(com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.Shape shape
         0: .line 219
            aload 0 /* shape */
            checkcast com.oracle.truffle.object.ShapeImpl
            invokevirtual com.oracle.truffle.object.ShapeImpl.hasPrimitiveArray:()Z
            ireturn
        end local 0 // com.oracle.truffle.api.object.Shape shape
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  shape  Lcom/oracle/truffle/api/object/Shape;
    MethodParameters:
       Name  Flags
      shape  

  static java.util.Map<java.lang.Object, java.lang.Object> archive(com.oracle.truffle.api.object.DynamicObject);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/Map;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
         0: .line 223
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* archive */
        start local 1 // java.util.Map archive
         1: .line 224
            aload 0 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            checkcast com.oracle.truffle.object.ShapeImpl
            invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyArray:()[Lcom/oracle/truffle/api/object/Property;
            astore 2 /* properties */
        start local 2 // com.oracle.truffle.api.object.Property[] properties
         2: .line 225
            aload 2 /* properties */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.util.Map com.oracle.truffle.api.object.Property[] top int int com.oracle.truffle.api.object.Property[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* property */
        start local 3 // com.oracle.truffle.api.object.Property property
         4: .line 226
            aload 1 /* archive */
            aload 3 /* property */
            invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* object */
            aload 3 /* property */
            invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // com.oracle.truffle.api.object.Property property
         5: .line 225
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 3
         7: .line 228
            aload 1 /* archive */
            areturn
        end local 2 // com.oracle.truffle.api.object.Property[] properties
        end local 1 // java.util.Map archive
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0      object  Lcom/oracle/truffle/api/object/DynamicObject;
            1    8     1     archive  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            2    8     2  properties  [Lcom/oracle/truffle/api/object/Property;
            4    5     3    property  Lcom/oracle/truffle/api/object/Property;
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
    MethodParameters:
        Name  Flags
      object  

  static boolean verifyValues(com.oracle.truffle.api.object.DynamicObject, java.util.Map<java.lang.Object, java.lang.Object>);
    descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/Map;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // com.oracle.truffle.api.object.DynamicObject object
        start local 1 // java.util.Map archive
         0: .line 232
            aload 0 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            checkcast com.oracle.truffle.object.ShapeImpl
            invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyArray:()[Lcom/oracle/truffle/api/object/Property;
            astore 2 /* properties */
        start local 2 // com.oracle.truffle.api.object.Property[] properties
         1: .line 233
            aload 2 /* properties */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: com.oracle.truffle.api.object.DynamicObject java.util.Map com.oracle.truffle.api.object.Property[] top int int com.oracle.truffle.api.object.Property[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* property */
        start local 3 // com.oracle.truffle.api.object.Property property
         3: .line 234
            aload 3 /* property */
            invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
            astore 7 /* key */
        start local 7 // java.lang.Object key
         4: .line 235
            aload 1 /* archive */
            aload 7 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* before */
        start local 8 // java.lang.Object before
         5: .line 236
            invokestatic com.oracle.truffle.api.object.DynamicObjectLibrary.getUncached:()Lcom/oracle/truffle/api/object/DynamicObjectLibrary;
            aload 0 /* object */
            aload 7 /* key */
            aconst_null
            invokevirtual com.oracle.truffle.api.object.DynamicObjectLibrary.getOrDefault:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            astore 9 /* after */
        start local 9 // java.lang.Object after
         6: .line 237
            getstatic com.oracle.truffle.object.DynamicObjectSupport.$assertionsDisabled:Z
            ifne 7
            aload 9 /* after */
            aload 8 /* before */
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 7
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "before != after for key: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 9 // java.lang.Object after
        end local 8 // java.lang.Object before
        end local 7 // java.lang.Object key
        end local 3 // com.oracle.truffle.api.object.Property property
         7: .line 233
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 2
         9: .line 239
            iconst_1
            ireturn
        end local 2 // com.oracle.truffle.api.object.Property[] properties
        end local 1 // java.util.Map archive
        end local 0 // com.oracle.truffle.api.object.DynamicObject object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0      object  Lcom/oracle/truffle/api/object/DynamicObject;
            0   10     1     archive  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            1   10     2  properties  [Lcom/oracle/truffle/api/object/Property;
            3    7     3    property  Lcom/oracle/truffle/api/object/Property;
            4    7     7         key  Ljava/lang/Object;
            5    7     8      before  Ljava/lang/Object;
            6    7     9       after  Ljava/lang/Object;
    Signature: (Lcom/oracle/truffle/api/object/DynamicObject;Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;)Z
    MethodParameters:
         Name  Flags
      object   
      archive  

  static void invalidateAllPropertyAssumptions(com.oracle.truffle.api.object.Shape);
    descriptor: (Lcom/oracle/truffle/api/object/Shape;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.object.Shape shape
         0: .line 244
            aload 0 /* shape */
            checkcast com.oracle.truffle.object.ShapeImpl
            astore 1 /* shapeImpl */
        start local 1 // com.oracle.truffle.object.ShapeImpl shapeImpl
         1: .line 245
            aload 1 /* shapeImpl */
            invokevirtual com.oracle.truffle.object.ShapeImpl.isLeaf:()Z
            ifeq 3
         2: .line 246
            aload 1 /* shapeImpl */
            invokevirtual com.oracle.truffle.object.ShapeImpl.invalidateLeafAssumption:()V
         3: .line 248
      StackMap locals: com.oracle.truffle.object.ShapeImpl
      StackMap stack:
            aload 1 /* shapeImpl */
            invokevirtual com.oracle.truffle.object.ShapeImpl.allowPropertyAssumptions:()Z
            ifeq 5
         4: .line 249
            aload 1 /* shapeImpl */
            invokevirtual com.oracle.truffle.object.ShapeImpl.invalidateAllPropertyAssumptions:()V
         5: .line 251
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.object.ShapeImpl shapeImpl
        end local 0 // com.oracle.truffle.api.object.Shape shape
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0      shape  Lcom/oracle/truffle/api/object/Shape;
            1    6     1  shapeImpl  Lcom/oracle/truffle/object/ShapeImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      shape  
}
SourceFile: "DynamicObjectSupport.java"
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  final CoreAccess = com.oracle.truffle.object.LayoutImpl$CoreAccess of com.oracle.truffle.object.LayoutImpl