public class com.oracle.truffle.object.basic.test.LegacyLocationTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.object.basic.test.LegacyLocationTest
  super_class: java.lang.Object
{
  final com.oracle.truffle.api.object.Layout layout;
    descriptor: Lcom/oracle/truffle/api/object/Layout;
    flags: (0x0010) ACC_FINAL

  final com.oracle.truffle.api.object.Shape rootShape;
    descriptor: Lcom/oracle/truffle/api/object/Shape;
    flags: (0x0010) ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 57
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.object.Layout.newLayout:()Lcom/oracle/truffle/api/object/Layout$Builder;
            invokevirtual com.oracle.truffle.api.object.Layout$Builder.build:()Lcom/oracle/truffle/api/object/Layout;
            putfield com.oracle.truffle.object.basic.test.LegacyLocationTest.layout:Lcom/oracle/truffle/api/object/Layout;
         2: .line 60
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.layout:Lcom/oracle/truffle/api/object/Layout;
            new com.oracle.truffle.api.object.ObjectType
            dup
            invokespecial com.oracle.truffle.api.object.ObjectType.<init>:()V
            invokevirtual com.oracle.truffle.api.object.Layout.createShape:(Lcom/oracle/truffle/api/object/ObjectType;)Lcom/oracle/truffle/api/object/Shape;
            putfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
         3: .line 57
            return
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;

  static java.lang.Class<?> getLocationType(com.oracle.truffle.api.object.Location);
    descriptor: (Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.object.Location location
         0: .line 63
            aload 0 /* location */
            checkcast com.oracle.truffle.api.object.TypedLocation
            invokeinterface com.oracle.truffle.api.object.TypedLocation.getType:()Ljava/lang/Class;
            areturn
        end local 0 // com.oracle.truffle.api.object.Location location
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  location  Lcom/oracle/truffle/api/object/Location;
    Signature: (Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      location  

  public void testOnlyObjectLocationForObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 68
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 69
            aload 1 /* object */
            ldc "obj"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 70
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "obj"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* location */
        start local 2 // com.oracle.truffle.api.object.Location location
         3: .line 71
            aload 2 /* location */
            instanceof com.oracle.truffle.api.object.ObjectLocation
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 72
            aload 2 /* location */
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertLocationFields:(Lcom/oracle/truffle/api/object/Location;II)V
         5: .line 73
            aload 1 /* object */
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShapeFields:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         6: .line 74
            return
        end local 2 // com.oracle.truffle.api.object.Location location
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;
            1    7     1    object  Lcom/oracle/truffle/api/object/DynamicObject;
            3    7     2  location  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testOnlyPrimLocationForPrimitive();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 78
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 79
            aload 1 /* object */
            ldc "prim"
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 80
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "prim"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* location */
        start local 2 // com.oracle.truffle.api.object.Location location
         3: .line 81
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aload 2 /* location */
            invokestatic com.oracle.truffle.object.basic.test.LegacyLocationTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 82
            aload 2 /* location */
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertLocationFields:(Lcom/oracle/truffle/api/object/Location;II)V
         5: .line 83
            aload 1 /* object */
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShapeFields:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         6: .line 84
            return
        end local 2 // com.oracle.truffle.api.object.Location location
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;
            1    7     1    object  Lcom/oracle/truffle/api/object/DynamicObject;
            3    7     2  location  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testPrim2Object();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 88
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 89
            aload 1 /* object */
            ldc "foo"
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 90
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* location1 */
        start local 2 // com.oracle.truffle.api.object.Location location1
         3: .line 91
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aload 2 /* location1 */
            invokestatic com.oracle.truffle.object.basic.test.LegacyLocationTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 92
            aload 2 /* location1 */
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertLocationFields:(Lcom/oracle/truffle/api/object/Location;II)V
         5: .line 93
            aload 1 /* object */
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShapeFields:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         6: .line 95
            aload 1 /* object */
            ldc "foo"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            invokevirtual com.oracle.truffle.api.object.DynamicObject.set:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
         7: .line 96
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 3 /* location2 */
        start local 3 // com.oracle.truffle.api.object.Location location2
         8: .line 97
            ldc Ljava/lang/Object;
            aload 3 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.LegacyLocationTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 98
            aload 3 /* location2 */
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertLocationFields:(Lcom/oracle/truffle/api/object/Location;II)V
        10: .line 99
            aload 1 /* object */
            iconst_1
            iconst_1
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShapeFields:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
        11: .line 100
            return
        end local 3 // com.oracle.truffle.api.object.Location location2
        end local 2 // com.oracle.truffle.api.object.Location location1
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;
            1   12     1     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   12     2  location1  Lcom/oracle/truffle/api/object/Location;
            8   12     3  location2  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testUnrelatedPrimitivesGoToObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 104
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 105
            aload 1 /* object */
            ldc "foo"
            ldc 42
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 106
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* location1 */
        start local 2 // com.oracle.truffle.api.object.Location location1
         3: .line 107
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aload 2 /* location1 */
            invokestatic com.oracle.truffle.object.basic.test.LegacyLocationTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 108
            aload 2 /* location1 */
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertLocationFields:(Lcom/oracle/truffle/api/object/Location;II)V
         5: .line 109
            aload 1 /* object */
            iconst_1
            iconst_0
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShapeFields:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
         6: .line 111
            aload 1 /* object */
            ldc "foo"
            ldc 3.14
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.set:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
         7: .line 112
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 3 /* location2 */
        start local 3 // com.oracle.truffle.api.object.Location location2
         8: .line 113
            ldc Ljava/lang/Object;
            aload 3 /* location2 */
            invokestatic com.oracle.truffle.object.basic.test.LegacyLocationTest.getLocationType:(Lcom/oracle/truffle/api/object/Location;)Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 114
            aload 3 /* location2 */
            iconst_0
            iconst_1
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertLocationFields:(Lcom/oracle/truffle/api/object/Location;II)V
        10: .line 115
            aload 1 /* object */
            iconst_1
            iconst_1
            invokestatic com.oracle.truffle.object.basic.test.DOTestAsserts.assertShapeFields:(Lcom/oracle/truffle/api/object/DynamicObject;II)V
        11: .line 116
            return
        end local 3 // com.oracle.truffle.api.object.Location location2
        end local 2 // com.oracle.truffle.api.object.Location location1
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;
            1   12     1     object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   12     2  location1  Lcom/oracle/truffle/api/object/Location;
            8   12     3  location2  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testChangeFlagsReuseLocation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 120
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 121
            aload 1 /* object */
            ldc "foo"
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 122
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* location */
        start local 2 // com.oracle.truffle.api.object.Location location
         3: .line 124
            aload 1 /* object */
            ldc "foo"
            bipush 43
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            bipush 111
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;I)V
         4: .line 125
            bipush 43
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* object */
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 126
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            astore 3 /* newProperty */
        start local 3 // com.oracle.truffle.api.object.Property newProperty
         6: .line 127
            ldc 111
            aload 3 /* newProperty */
            invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         7: .line 128
            aload 3 /* newProperty */
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 4 /* newLocation */
        start local 4 // com.oracle.truffle.api.object.Location newLocation
         8: .line 129
            aload 2 /* location */
            aload 4 /* newLocation */
            invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 130
            return
        end local 4 // com.oracle.truffle.api.object.Location newLocation
        end local 3 // com.oracle.truffle.api.object.Property newProperty
        end local 2 // com.oracle.truffle.api.object.Location location
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;
            1   10     1       object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   10     2     location  Lcom/oracle/truffle/api/object/Location;
            6   10     3  newProperty  Lcom/oracle/truffle/api/object/Property;
            8   10     4  newLocation  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testChangeFlagsChangeLocation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 134
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 135
            aload 1 /* object */
            ldc "foo"
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 136
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 2 /* location */
        start local 2 // com.oracle.truffle.api.object.Location location
         3: .line 138
            aload 1 /* object */
            ldc "foo"
            ldc "str"
            bipush 111
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;I)V
         4: .line 139
            ldc "str"
            aload 1 /* object */
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 140
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            ldc "foo"
            invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
            astore 3 /* newProperty */
        start local 3 // com.oracle.truffle.api.object.Property newProperty
         6: .line 141
            ldc 111
            aload 3 /* newProperty */
            invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         7: .line 142
            aload 3 /* newProperty */
            invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
            astore 4 /* newLocation */
        start local 4 // com.oracle.truffle.api.object.Location newLocation
         8: .line 143
            aload 2 /* location */
            aload 4 /* newLocation */
            invokestatic org.junit.Assert.assertNotSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 144
            return
        end local 4 // com.oracle.truffle.api.object.Location newLocation
        end local 3 // com.oracle.truffle.api.object.Property newProperty
        end local 2 // com.oracle.truffle.api.object.Location location
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;
            1   10     1       object  Lcom/oracle/truffle/api/object/DynamicObject;
            3   10     2     location  Lcom/oracle/truffle/api/object/Location;
            6   10     3  newProperty  Lcom/oracle/truffle/api/object/Property;
            8   10     4  newLocation  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDelete();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 148
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 149
            aload 1 /* object */
            ldc "a"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 150
            aload 1 /* object */
            ldc "b"
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 151
            aload 1 /* object */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.delete:(Ljava/lang/Object;)Z
            pop
         4: .line 152
            aload 1 /* object */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.containsKey:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         5: .line 153
            aload 1 /* object */
            ldc "b"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.containsKey:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         6: .line 154
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* object */
            ldc "b"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 155
            aload 1 /* object */
            ldc "a"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 156
            aload 1 /* object */
            ldc "b"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.delete:(Ljava/lang/Object;)Z
            pop
         9: .line 157
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* object */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 158
            return
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;
            1   11     1  object  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testLocationDecoratorEquals();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 162
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.allocator:()Lcom/oracle/truffle/api/object/Shape$Allocator;
            astore 1 /* allocator */
        start local 1 // com.oracle.truffle.api.object.Shape$Allocator allocator
         1: .line 163
            aload 1 /* allocator */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual com.oracle.truffle.api.object.Shape$Allocator.locationForType:(Ljava/lang/Class;)Lcom/oracle/truffle/api/object/Location;
            astore 2 /* intLocation1 */
        start local 2 // com.oracle.truffle.api.object.Location intLocation1
         2: .line 164
            aload 1 /* allocator */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual com.oracle.truffle.api.object.Shape$Allocator.locationForType:(Ljava/lang/Class;)Lcom/oracle/truffle/api/object/Location;
            astore 3 /* intLocation2 */
        start local 3 // com.oracle.truffle.api.object.Location intLocation2
         3: .line 165
            aload 2 /* intLocation1 */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* intLocation2 */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 166
            aload 2 /* intLocation1 */
            aload 3 /* intLocation2 */
            invokestatic org.junit.Assert.assertNotEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 167
            return
        end local 3 // com.oracle.truffle.api.object.Location intLocation2
        end local 2 // com.oracle.truffle.api.object.Location intLocation1
        end local 1 // com.oracle.truffle.api.object.Shape$Allocator allocator
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;
            1    6     1     allocator  Lcom/oracle/truffle/api/object/Shape$Allocator;
            2    6     2  intLocation1  Lcom/oracle/truffle/api/object/Location;
            3    6     3  intLocation2  Lcom/oracle/truffle/api/object/Location;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDeleteDeclaredProperty();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
         0: .line 171
            aload 0 /* this */
            getfield com.oracle.truffle.object.basic.test.LegacyLocationTest.rootShape:Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.newInstance:()Lcom/oracle/truffle/api/object/DynamicObject;
            astore 1 /* object */
        start local 1 // com.oracle.truffle.api.object.DynamicObject object
         1: .line 172
            aload 1 /* object */
            ldc "a"
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            iconst_0
            new com.oracle.truffle.object.basic.test.LegacyLocationTest$1
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.object.basic.test.LegacyLocationTest$1.<init>:(Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;)V
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/object/LocationFactory;)V
         2: .line 177
            aload 1 /* object */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.containsKey:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         3: .line 178
            aload 1 /* object */
            ldc "a"
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.oracle.truffle.api.object.DynamicObject.define:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 179
            lconst_1
            aload 1 /* object */
            invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
            invokevirtual com.oracle.truffle.api.object.Shape.getPropertyCount:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         5: .line 180
            aload 1 /* object */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.delete:(Ljava/lang/Object;)Z
            pop
         6: .line 181
            aload 1 /* object */
            ldc "a"
            invokevirtual com.oracle.truffle.api.object.DynamicObject.containsKey:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         7: .line 182
            return
        end local 1 // com.oracle.truffle.api.object.DynamicObject object
        end local 0 // com.oracle.truffle.object.basic.test.LegacyLocationTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/oracle/truffle/object/basic/test/LegacyLocationTest;
            1    8     1  object  Lcom/oracle/truffle/api/object/DynamicObject;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "LegacyLocationTest.java"
NestMembers:
  com.oracle.truffle.object.basic.test.LegacyLocationTest$1
InnerClasses:
  public final Builder = com.oracle.truffle.api.object.Layout$Builder of com.oracle.truffle.api.object.Layout
  public abstract Allocator = com.oracle.truffle.api.object.Shape$Allocator of com.oracle.truffle.api.object.Shape
  com.oracle.truffle.object.basic.test.LegacyLocationTest$1