public abstract class com.oracle.truffle.object.DynamicObjectImpl extends com.oracle.truffle.api.object.DynamicObject implements java.lang.Cloneable
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.object.DynamicObjectImpl
super_class: com.oracle.truffle.api.object.DynamicObject
{
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: ldc Lcom/oracle/truffle/object/DynamicObjectImpl;
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.DynamicObjectImpl.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getRoot:()Lcom/oracle/truffle/api/object/Shape;
getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
invokespecial com.oracle.truffle.api.object.DynamicObject.<init>:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Layout$Access;)V
1: aload 0
aload 1
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.initialize:(Lcom/oracle/truffle/api/object/Shape;)V
2: aload 0
aload 1
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.setShapeImpl:(Lcom/oracle/truffle/api/object/Shape;)V
3: getstatic com.oracle.truffle.object.ObjectStorageOptions.Profile:Z
ifeq 5
4: aload 0
invokestatic com.oracle.truffle.object.Debug.trackObject:(Lcom/oracle/truffle/api/object/DynamicObject;)V
5: StackMap locals: com.oracle.truffle.object.DynamicObjectImpl com.oracle.truffle.api.object.Shape
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 6 1 shape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
shape
final com.oracle.truffle.object.ShapeImpl getShapeImpl();
descriptor: ()Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
checkcast com.oracle.truffle.object.ShapeImpl
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
private void setShapeImpl(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 1
aload 1
instanceof com.oracle.truffle.object.ShapeImpl
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
aload 0
aload 1
invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.setShape:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/api/object/Shape;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 3 1 shape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
shape
protected abstract void initialize(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
initialShape
public final void setShapeAndResize(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
aload 1
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.setShapeAndResize:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 2 1 newShape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
newShape
public final void setShapeAndResize(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
aload 1
if_acmpeq 1
new java.lang.AssertionError
dup
ldc "wrong old shape"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.isShared:()Z
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
aload 2
if_acmpeq 6
3: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.resizeStore:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
4: aload 0
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.setShapeImpl:(Lcom/oracle/truffle/api/object/Shape;)V
5: getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 6
aload 0
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.checkExtensionArrayInvariants:(Lcom/oracle/truffle/api/object/Shape;)Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 7 1 oldShape Lcom/oracle/truffle/api/object/Shape;
0 7 2 newShape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
oldShape
newShape
public final void setShapeAndGrow(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
aload 1
if_acmpeq 1
new java.lang.AssertionError
dup
ldc "wrong old shape"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
aload 2
if_acmpeq 6
2: getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 3
aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.checkSetShape:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.growStore:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
4: aload 0
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.setShapeImpl:(Lcom/oracle/truffle/api/object/Shape;)V
5: getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 6
aload 0
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.checkExtensionArrayInvariants:(Lcom/oracle/truffle/api/object/Shape;)Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 7 1 oldShape Lcom/oracle/truffle/api/object/Shape;
0 7 2 newShape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
oldShape
newShape
private void growStore(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.growObjectStore:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
1: aload 2
checkcast com.oracle.truffle.object.ShapeImpl
getfield com.oracle.truffle.object.ShapeImpl.hasPrimitiveArray:Z
ifeq 3
2: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.growPrimitiveStore:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 4 1 oldShape Lcom/oracle/truffle/api/object/Shape;
0 4 2 newShape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
oldShape
newShape
protected abstract void growObjectStore(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
oldShape
newShape
protected abstract void growPrimitiveStore(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
oldShape
newShape
protected void resizeStore(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.resizeObjectStore:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
1: aload 2
checkcast com.oracle.truffle.object.ShapeImpl
getfield com.oracle.truffle.object.ShapeImpl.hasPrimitiveArray:Z
ifeq 3
2: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.resizePrimitiveStore:(Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 4 1 oldShape Lcom/oracle/truffle/api/object/Shape;
0 4 2 newShape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
oldShape
newShape
protected abstract void resizePrimitiveStore(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
oldShape
newShape
protected abstract void resizeObjectStore(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
oldShape
newShape
private boolean checkSetShape(com.oracle.truffle.api.object.Shape, com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 3
start local 3 1: getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 2
aload 1
aload 2
if_acmpne 2
new java.lang.AssertionError
dup
ldc "Wrong old shape assumption?"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: com.oracle.truffle.api.object.Shape
StackMap stack:
getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 3
aload 2
aload 3
if_acmpne 3
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Redundant shape change? shape="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 4 1 oldShape Lcom/oracle/truffle/api/object/Shape;
0 4 2 newShape Lcom/oracle/truffle/api/object/Shape;
1 4 3 currentShape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
oldShape
newShape
protected abstract boolean checkExtensionArrayInvariants(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
newShape
protected final com.oracle.truffle.api.object.DynamicObject clone();
descriptor: ()Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.object.LayoutImpl.ACCESS:Lcom/oracle/truffle/object/LayoutImpl$CoreAccess;
aload 0
invokevirtual com.oracle.truffle.object.LayoutImpl$CoreAccess.objectClone:(Lcom/oracle/truffle/api/object/DynamicObject;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
protected abstract com.oracle.truffle.api.object.DynamicObject cloneWithShape(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
currentShape
protected abstract void reshape(com.oracle.truffle.object.ShapeImpl);
descriptor: (Lcom/oracle/truffle/object/ShapeImpl;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
newShape
public final void copyProperties(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: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.copyProperties:(Lcom/oracle/truffle/api/object/DynamicObject;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 2 1 fromObject Lcom/oracle/truffle/api/object/DynamicObject;
0 2 2 ancestor Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
fromObject
ancestor
private void copyProperties(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.api.object.DynamicObject.getShape:()Lcom/oracle/truffle/api/object/Shape;
checkcast com.oracle.truffle.object.ShapeImpl
astore 2
start local 2 1: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShapeImpl:()Lcom/oracle/truffle/object/ShapeImpl;
astore 3
start local 3 2: getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 3
aload 3
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.isRelated:(Lcom/oracle/truffle/api/object/Shape;)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.ShapeImpl
StackMap stack:
getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 4
aload 3
invokevirtual com.oracle.truffle.object.ShapeImpl.isValid:()Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 5
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.isShared:()Z
ifeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyMap:()Lcom/oracle/truffle/object/PropertyMap;
astore 4
start local 4 6: aload 3
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyMap:()Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.reverseOrderedValueIterator:()Ljava/util/Iterator;
astore 5
start local 5 7: goto 13
8: StackMap locals: com.oracle.truffle.object.PropertyMap java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 6
start local 6 9: aload 4
aload 6
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
invokevirtual com.oracle.truffle.object.PropertyMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 7
start local 7 10: aload 6
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.api.object.Location.isValue:()Z
ifne 13
aload 6
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
aload 7
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.api.object.Location.equals:(Ljava/lang/Object;)Z
ifne 13
11: aload 6
aload 0
aload 7
aload 1
iconst_0
invokevirtual com.oracle.truffle.api.object.Property.get:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.object.Property.setInternal:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)V
12: getstatic com.oracle.truffle.object.DynamicObjectImpl.$assertionsDisabled:Z
ifne 13
aload 3
invokevirtual com.oracle.truffle.object.ShapeImpl.isValid:()Z
ifne 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 7 end local 6 13: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
end local 5 14: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 15 1 fromObject Lcom/oracle/truffle/api/object/DynamicObject;
1 15 2 fromShape Lcom/oracle/truffle/object/ShapeImpl;
2 15 3 toShape Lcom/oracle/truffle/object/ShapeImpl;
6 15 4 fromMap Lcom/oracle/truffle/object/PropertyMap;
7 14 5 toMapIt Ljava/util/Iterator<Lcom/oracle/truffle/api/object/Property;>;
9 13 6 toProperty Lcom/oracle/truffle/api/object/Property;
10 13 7 fromProperty Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
fromObject
public boolean changeFlags(java.lang.Object, int);
descriptor: (Ljava/lang/Object;I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
astore 3
start local 3 1: aload 3
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
astore 4
start local 4 2: aload 4
ifnull 8
3: aload 4
invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
iload 2
if_icmpeq 7
4: aload 4
iload 2
invokevirtual com.oracle.truffle.api.object.Property.copyWithFlags:(I)Lcom/oracle/truffle/api/object/Property;
astore 5
start local 5 5: aload 3
aload 4
aload 5
invokevirtual com.oracle.truffle.api.object.Shape.replaceProperty:(Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/api/object/Shape;
astore 6
start local 6 6: aload 0
aload 6
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.setShapeImpl:(Lcom/oracle/truffle/api/object/Shape;)V
end local 6 end local 5 7: StackMap locals: com.oracle.truffle.api.object.Shape com.oracle.truffle.api.object.Property
StackMap stack:
iconst_1
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 9 1 key Ljava/lang/Object;
0 9 2 newFlags I
1 9 3 oldShape Lcom/oracle/truffle/api/object/Shape;
2 9 4 existing Lcom/oracle/truffle/api/object/Property;
5 7 5 newProperty Lcom/oracle/truffle/api/object/Property;
6 7 6 newShape Lcom/oracle/truffle/api/object/Shape;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
newFlags
public java.lang.String debugDump(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
iload 1
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.debugDump:(II)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 1 1 level I
MethodParameters:
Name Flags
level
public java.lang.String debugDump(int, int);
descriptor: (II)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
invokestatic com.oracle.truffle.object.Debug.dumpObject:(Lcom/oracle/truffle/api/object/DynamicObject;II)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 1 1 level I
0 1 2 levelStop I
MethodParameters:
Name Flags
level
levelStop
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
invokevirtual com.oracle.truffle.api.object.Shape.getObjectType:()Lcom/oracle/truffle/api/object/ObjectType;
aload 0
invokevirtual com.oracle.truffle.api.object.ObjectType.toString:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
invokevirtual com.oracle.truffle.api.object.Shape.getObjectType:()Lcom/oracle/truffle/api/object/ObjectType;
aload 0
aload 1
invokevirtual com.oracle.truffle.api.object.ObjectType.equals:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 1 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
invokevirtual com.oracle.truffle.api.object.Shape.getObjectType:()Lcom/oracle/truffle/api/object/ObjectType;
aload 0
invokevirtual com.oracle.truffle.api.object.ObjectType.hashCode:(Lcom/oracle/truffle/api/object/DynamicObject;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
public java.lang.Object get(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 3
aload 0
iconst_0
invokevirtual com.oracle.truffle.api.object.Property.get:(Lcom/oracle/truffle/api/object/DynamicObject;Z)Ljava/lang/Object;
areturn
3: StackMap locals: com.oracle.truffle.api.object.Property
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 4 1 key Ljava/lang/Object;
0 4 2 defaultValue Ljava/lang/Object;
1 4 3 existing Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
defaultValue
public boolean set(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShape:()Lcom/oracle/truffle/api/object/Shape;
aload 1
invokevirtual com.oracle.truffle.api.object.Shape.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
astore 3
start local 3 1: aload 3
ifnull 4
2: aload 3
aload 0
aload 2
aconst_null
invokevirtual com.oracle.truffle.api.object.Property.setGeneric:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;Lcom/oracle/truffle/api/object/Shape;)V
3: iconst_1
ireturn
4: StackMap locals: com.oracle.truffle.api.object.Property
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 5 1 key Ljava/lang/Object;
0 5 2 value Ljava/lang/Object;
1 5 3 existing Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
value
public void define(java.lang.Object, java.lang.Object, int);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShapeImpl:()Lcom/oracle/truffle/object/ShapeImpl;
invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
invokevirtual com.oracle.truffle.object.LayoutStrategy.getDefaultLocationFactory:()Lcom/oracle/truffle/api/object/LocationFactory;
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.define:(Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/object/LocationFactory;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 2 1 key Ljava/lang/Object;
0 2 2 value Ljava/lang/Object;
0 2 3 flags I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
value
flags
public void define(java.lang.Object, java.lang.Object, int, com.oracle.truffle.api.object.LocationFactory);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/object/LocationFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShapeImpl:()Lcom/oracle/truffle/object/ShapeImpl;
astore 5
start local 5 1: aload 5
invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
aload 0
aload 1
aload 2
iload 3
aload 4
aload 5
invokevirtual com.oracle.truffle.object.LayoutStrategy.objectDefineProperty:(Lcom/oracle/truffle/object/DynamicObjectImpl;Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/object/LocationFactory;Lcom/oracle/truffle/object/ShapeImpl;)V
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 3 1 key Ljava/lang/Object;
0 3 2 value Ljava/lang/Object;
0 3 3 flags I
0 3 4 locationFactory Lcom/oracle/truffle/api/object/LocationFactory;
1 3 5 oldShape Lcom/oracle/truffle/object/ShapeImpl;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
value
flags
locationFactory
public boolean delete(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShapeImpl:()Lcom/oracle/truffle/object/ShapeImpl;
astore 2
start local 2 1: aload 2
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
astore 3
start local 3 2: aload 3
ifnull 5
3: aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
aload 0
aload 3
aload 2
invokevirtual com.oracle.truffle.object.LayoutStrategy.objectRemoveProperty:(Lcom/oracle/truffle/object/DynamicObjectImpl;Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/object/ShapeImpl;)V
4: iconst_1
ireturn
5: StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.api.object.Property
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 6 1 key Ljava/lang/Object;
1 6 2 oldShape Lcom/oracle/truffle/object/ShapeImpl;
2 6 3 existing Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
public final boolean updateShape();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.getShapeImpl:()Lcom/oracle/truffle/object/ShapeImpl;
invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
aload 0
invokevirtual com.oracle.truffle.object.LayoutStrategy.updateShape:(Lcom/oracle/truffle/api/object/DynamicObject;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
public final com.oracle.truffle.api.object.DynamicObject copy(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.cloneWithShape:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/DynamicObjectImpl;
0 1 1 currentShape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
currentShape
static com.oracle.truffle.api.object.ObjectType getObjectType(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/ObjectType;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.object.Shape.getObjectType:()Lcom/oracle/truffle/api/object/ObjectType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 shape Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
shape
protected java.lang.Object clone();
descriptor: ()Ljava/lang/Object;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.oracle.truffle.object.DynamicObjectImpl.clone:()Lcom/oracle/truffle/api/object/DynamicObject;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.CloneNotSupportedException
}
SourceFile: "DynamicObjectImpl.java"
NestMembers:
com.oracle.truffle.object.DynamicObjectImpl$Accepts com.oracle.truffle.object.DynamicObjectImpl$Dispatch
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
Accepts = com.oracle.truffle.object.DynamicObjectImpl$Accepts of com.oracle.truffle.object.DynamicObjectImpl
Dispatch = com.oracle.truffle.object.DynamicObjectImpl$Dispatch of com.oracle.truffle.object.DynamicObjectImpl
final CoreAccess = com.oracle.truffle.object.LayoutImpl$CoreAccess of com.oracle.truffle.object.LayoutImpl
protected abstract Access = com.oracle.truffle.api.object.Layout$Access of com.oracle.truffle.api.object.Layout
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/library/DynamicDispatchLibrary;)