public abstract class com.oracle.truffle.object.ShapeImpl extends com.oracle.truffle.api.object.Shape
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.object.ShapeImpl
super_class: com.oracle.truffle.api.object.Shape
{
protected final int flags;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.oracle.truffle.object.LayoutImpl layout;
descriptor: Lcom/oracle/truffle/object/LayoutImpl;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.lang.Object objectType;
descriptor: Ljava/lang/Object;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.oracle.truffle.object.ShapeImpl parent;
descriptor: Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.oracle.truffle.object.PropertyMap propertyMap;
descriptor: Lcom/oracle/truffle/object/PropertyMap;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.lang.Object sharedData;
descriptor: Ljava/lang/Object;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final com.oracle.truffle.object.ShapeImpl root;
descriptor: Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final int objectArraySize;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int objectArrayCapacity;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int objectFieldSize;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int primitiveFieldSize;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int primitiveArraySize;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int primitiveArrayCapacity;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final boolean hasPrimitiveArray;
descriptor: Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int depth;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int propertyCount;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.oracle.truffle.api.Assumption validAssumption;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected volatile com.oracle.truffle.api.Assumption leafAssumption;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private volatile java.lang.Object transitionMap;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final com.oracle.truffle.object.Transition transitionFromParent;
descriptor: Lcom/oracle/truffle/object/Transition;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile com.oracle.truffle.object.ShapeImpl$PropertyAssumptions sharedPropertyAssumptions;
descriptor: Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<com.oracle.truffle.object.ShapeImpl, java.lang.Object> TRANSITION_MAP_UPDATER;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;>;
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<com.oracle.truffle.object.ShapeImpl, com.oracle.truffle.api.Assumption> LEAF_ASSUMPTION_UPDATER;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/api/Assumption;>;
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<com.oracle.truffle.object.ShapeImpl, com.oracle.truffle.object.ShapeImpl$PropertyAssumptions> PROPERTY_ASSUMPTIONS_UPDATER;
descriptor: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater<Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;>;
protected static final int FLAG_SHARED_SHAPE;
descriptor: I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
protected static final int FLAG_ALLOW_PROPERTY_ASSUMPTIONS;
descriptor: I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
ConstantValue: 131072
protected static final int FLAG_HAS_INSTANCE_PROPERTIES;
descriptor: I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
ConstantValue: 262144
protected static final int OBJECT_FLAGS_MASK;
descriptor: I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
ConstantValue: 255
protected static final int OBJECT_FLAGS_SHIFT;
descriptor: I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final com.oracle.truffle.object.DebugCounter shapeCount;
descriptor: Lcom/oracle/truffle/object/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.object.DebugCounter shapeCloneCount;
descriptor: Lcom/oracle/truffle/object/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.object.DebugCounter shapeCacheHitCount;
descriptor: Lcom/oracle/truffle/object/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.oracle.truffle.object.DebugCounter shapeCacheMissCount;
descriptor: Lcom/oracle/truffle/object/DebugCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final com.oracle.truffle.object.DebugCounter shapeCacheExpunged;
descriptor: Lcom/oracle/truffle/object/DebugCounter;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final com.oracle.truffle.object.DebugCounter propertyAssumptionsCreated;
descriptor: Lcom/oracle/truffle/object/DebugCounter;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final com.oracle.truffle.object.DebugCounter propertyAssumptionsRemoved;
descriptor: Lcom/oracle/truffle/object/DebugCounter;
flags: (0x0018) ACC_STATIC, ACC_FINAL
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=3, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/object/ShapeImpl;
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.ShapeImpl.$assertionsDisabled:Z
3: ldc Lcom/oracle/truffle/object/ShapeImpl;
ldc Ljava/lang/Object;
ldc "transitionMap"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
putstatic com.oracle.truffle.object.ShapeImpl.TRANSITION_MAP_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
4: ldc Lcom/oracle/truffle/object/ShapeImpl;
ldc Lcom/oracle/truffle/api/Assumption;
ldc "leafAssumption"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
putstatic com.oracle.truffle.object.ShapeImpl.LEAF_ASSUMPTION_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
5: ldc Lcom/oracle/truffle/object/ShapeImpl;
ldc Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
ldc "sharedPropertyAssumptions"
invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
6: putstatic com.oracle.truffle.object.ShapeImpl.PROPERTY_ASSUMPTIONS_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
7: ldc "Shapes allocated total"
invokestatic com.oracle.truffle.object.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/object/DebugCounter;
putstatic com.oracle.truffle.object.ShapeImpl.shapeCount:Lcom/oracle/truffle/object/DebugCounter;
8: ldc "Shapes allocated cloned"
invokestatic com.oracle.truffle.object.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/object/DebugCounter;
putstatic com.oracle.truffle.object.ShapeImpl.shapeCloneCount:Lcom/oracle/truffle/object/DebugCounter;
9: ldc "Shape cache hits"
invokestatic com.oracle.truffle.object.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/object/DebugCounter;
putstatic com.oracle.truffle.object.ShapeImpl.shapeCacheHitCount:Lcom/oracle/truffle/object/DebugCounter;
10: ldc "Shape cache misses"
invokestatic com.oracle.truffle.object.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/object/DebugCounter;
putstatic com.oracle.truffle.object.ShapeImpl.shapeCacheMissCount:Lcom/oracle/truffle/object/DebugCounter;
11: ldc "Shape cache expunged"
invokestatic com.oracle.truffle.object.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/object/DebugCounter;
putstatic com.oracle.truffle.object.ShapeImpl.shapeCacheExpunged:Lcom/oracle/truffle/object/DebugCounter;
12: ldc "Property assumptions created"
invokestatic com.oracle.truffle.object.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/object/DebugCounter;
putstatic com.oracle.truffle.object.ShapeImpl.propertyAssumptionsCreated:Lcom/oracle/truffle/object/DebugCounter;
13: ldc "Property assumptions removed"
invokestatic com.oracle.truffle.object.DebugCounter.create:(Ljava/lang/String;)Lcom/oracle/truffle/object/DebugCounter;
putstatic com.oracle.truffle.object.ShapeImpl.propertyAssumptionsRemoved:Lcom/oracle/truffle/object/DebugCounter;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(com.oracle.truffle.api.object.Layout, com.oracle.truffle.object.ShapeImpl, java.lang.Object, java.lang.Object, com.oracle.truffle.object.PropertyMap, com.oracle.truffle.object.Transition, int, int, int, int, boolean, int, com.oracle.truffle.api.Assumption);
descriptor: (Lcom/oracle/truffle/api/object/Layout;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;IIIIZILcom/oracle/truffle/api/Assumption;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=15, args_size=14
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 start local 12 start local 13 0: aload 0
invokespecial com.oracle.truffle.api.object.Shape.<init>:()V
1: aload 0
aload 1
checkcast com.oracle.truffle.object.LayoutImpl
putfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
2: aload 0
aload 3
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
putfield com.oracle.truffle.object.ShapeImpl.objectType:Ljava/lang/Object;
3: aload 0
aload 5
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.object.PropertyMap
putfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
4: aload 0
aload 2
ifnull 5
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.getRoot:()Lcom/oracle/truffle/object/ShapeImpl;
goto 6
StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.api.object.Layout com.oracle.truffle.object.ShapeImpl java.lang.Object java.lang.Object com.oracle.truffle.object.PropertyMap com.oracle.truffle.object.Transition int int int int int int com.oracle.truffle.api.Assumption
StackMap stack: com.oracle.truffle.object.ShapeImpl
5: aload 0
StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.api.object.Layout com.oracle.truffle.object.ShapeImpl java.lang.Object java.lang.Object com.oracle.truffle.object.PropertyMap com.oracle.truffle.object.Transition int int int int int int com.oracle.truffle.api.Assumption
StackMap stack: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.ShapeImpl
6: putfield com.oracle.truffle.object.ShapeImpl.root:Lcom/oracle/truffle/object/ShapeImpl;
7: aload 0
aload 2
putfield com.oracle.truffle.object.ShapeImpl.parent:Lcom/oracle/truffle/object/ShapeImpl;
8: aload 0
iload 7
putfield com.oracle.truffle.object.ShapeImpl.objectArraySize:I
9: aload 0
iload 7
invokestatic com.oracle.truffle.object.ShapeImpl.capacityFromSize:(I)I
putfield com.oracle.truffle.object.ShapeImpl.objectArrayCapacity:I
10: aload 0
iload 8
putfield com.oracle.truffle.object.ShapeImpl.objectFieldSize:I
11: aload 0
iload 9
putfield com.oracle.truffle.object.ShapeImpl.primitiveFieldSize:I
12: aload 0
iload 10
putfield com.oracle.truffle.object.ShapeImpl.primitiveArraySize:I
13: aload 0
iload 10
invokestatic com.oracle.truffle.object.ShapeImpl.capacityFromSize:(I)I
putfield com.oracle.truffle.object.ShapeImpl.primitiveArrayCapacity:I
14: aload 0
iload 11
putfield com.oracle.truffle.object.ShapeImpl.hasPrimitiveArray:Z
15: aload 2
ifnull 19
16: aload 0
aload 2
aload 5
aload 6
invokestatic com.oracle.truffle.object.ShapeImpl.makePropertyCount:(Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;)I
putfield com.oracle.truffle.object.ShapeImpl.propertyCount:I
17: aload 0
aload 2
getfield com.oracle.truffle.object.ShapeImpl.depth:I
iconst_1
iadd
putfield com.oracle.truffle.object.ShapeImpl.depth:I
18: goto 21
19: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.oracle.truffle.object.ShapeImpl.propertyCount:I
20: aload 0
iconst_0
putfield com.oracle.truffle.object.ShapeImpl.depth:I
21: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.truffle.object.ShapeImpl.createValidAssumption:()Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.object.ShapeImpl.validAssumption:Lcom/oracle/truffle/api/Assumption;
22: iload 12
istore 14
start local 14 23: iload 14
ldc 262144
iand
ifne 26
24: iload 8
ifne 25
iload 7
ifne 25
iload 9
ifne 25
iload 10
ifeq 26
25: StackMap locals: int
StackMap stack:
iload 14
ldc 262144
ior
istore 14
26: StackMap locals:
StackMap stack:
aload 0
iload 14
putfield com.oracle.truffle.object.ShapeImpl.flags:I
27: aload 0
aload 6
putfield com.oracle.truffle.object.ShapeImpl.transitionFromParent:Lcom/oracle/truffle/object/Transition;
28: aload 0
aload 4
putfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
29: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 30
aload 2
ifnull 30
aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
aload 2
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
if_acmpeq 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 0
aload 2
ifnonnull 32
iload 12
ldc 131072
iand
ifeq 32
aload 13
ifnull 32
31: new com.oracle.truffle.object.ShapeImpl$PropertyAssumptions
dup
aload 13
invokespecial com.oracle.truffle.object.ShapeImpl$PropertyAssumptions.<init>:(Lcom/oracle/truffle/api/Assumption;)V
goto 33
32: StackMap locals:
StackMap stack: com.oracle.truffle.object.ShapeImpl
aconst_null
33: StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.api.object.Layout com.oracle.truffle.object.ShapeImpl java.lang.Object java.lang.Object com.oracle.truffle.object.PropertyMap com.oracle.truffle.object.Transition int int int int int int com.oracle.truffle.api.Assumption int
StackMap stack: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.ShapeImpl$PropertyAssumptions
putfield com.oracle.truffle.object.ShapeImpl.sharedPropertyAssumptions:Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
34: getstatic com.oracle.truffle.object.ShapeImpl.shapeCount:Lcom/oracle/truffle/object/DebugCounter;
invokevirtual com.oracle.truffle.object.DebugCounter.inc:()V
35: getstatic com.oracle.truffle.object.ObjectStorageOptions.DumpShapes:Z
ifeq 37
36: aload 0
invokestatic com.oracle.truffle.object.Debug.trackShape:(Lcom/oracle/truffle/object/ShapeImpl;)V
37: StackMap locals:
StackMap stack:
return
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 38 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 38 1 layout Lcom/oracle/truffle/api/object/Layout;
0 38 2 parent Lcom/oracle/truffle/object/ShapeImpl;
0 38 3 objectType Ljava/lang/Object;
0 38 4 sharedData Ljava/lang/Object;
0 38 5 propertyMap Lcom/oracle/truffle/object/PropertyMap;
0 38 6 transitionFromParent Lcom/oracle/truffle/object/Transition;
0 38 7 objectArraySize I
0 38 8 objectFieldSize I
0 38 9 primitiveFieldSize I
0 38 10 primitiveArraySize I
0 38 11 hasPrimitiveArray Z
0 38 12 flags I
0 38 13 singleContextAssumption Lcom/oracle/truffle/api/Assumption;
23 38 14 allFlags I
MethodParameters:
Name Flags
layout
parent
objectType
sharedData
propertyMap
transitionFromParent
objectArraySize
objectFieldSize
primitiveFieldSize
primitiveArraySize
hasPrimitiveArray
flags
singleContextAssumption
protected void <init>(com.oracle.truffle.api.object.Layout, com.oracle.truffle.object.ShapeImpl, java.lang.Object, java.lang.Object, com.oracle.truffle.object.PropertyMap, com.oracle.truffle.object.Transition, com.oracle.truffle.api.object.Shape$Allocator, int);
descriptor: (Lcom/oracle/truffle/api/object/Layout;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/api/object/Shape$Allocator;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=14, locals=9, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
aload 6
aload 7
checkcast com.oracle.truffle.object.ShapeImpl$BaseAllocator
getfield com.oracle.truffle.object.ShapeImpl$BaseAllocator.objectArraySize:I
aload 7
checkcast com.oracle.truffle.object.ShapeImpl$BaseAllocator
getfield com.oracle.truffle.object.ShapeImpl$BaseAllocator.objectFieldSize:I
1: aload 7
checkcast com.oracle.truffle.object.ShapeImpl$BaseAllocator
getfield com.oracle.truffle.object.ShapeImpl$BaseAllocator.primitiveFieldSize:I
aload 7
checkcast com.oracle.truffle.object.ShapeImpl$BaseAllocator
getfield com.oracle.truffle.object.ShapeImpl$BaseAllocator.primitiveArraySize:I
aload 7
checkcast com.oracle.truffle.object.ShapeImpl$BaseAllocator
getfield com.oracle.truffle.object.ShapeImpl$BaseAllocator.hasPrimitiveArray:Z
iload 8
aconst_null
invokespecial com.oracle.truffle.object.ShapeImpl.<init>:(Lcom/oracle/truffle/api/object/Layout;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;IIIIZILcom/oracle/truffle/api/Assumption;)V
2: return
end local 8 end local 7 end local 6 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/ShapeImpl;
0 3 1 layout Lcom/oracle/truffle/api/object/Layout;
0 3 2 parent Lcom/oracle/truffle/object/ShapeImpl;
0 3 3 objectType Ljava/lang/Object;
0 3 4 sharedData Ljava/lang/Object;
0 3 5 propertyMap Lcom/oracle/truffle/object/PropertyMap;
0 3 6 transition Lcom/oracle/truffle/object/Transition;
0 3 7 allocator Lcom/oracle/truffle/api/object/Shape$Allocator;
0 3 8 flags I
MethodParameters:
Name Flags
layout
parent
objectType
sharedData
propertyMap
transition
allocator
flags
protected abstract com.oracle.truffle.object.ShapeImpl createShape(com.oracle.truffle.api.object.Layout, java.lang.Object, com.oracle.truffle.object.ShapeImpl, java.lang.Object, com.oracle.truffle.object.PropertyMap, com.oracle.truffle.object.Transition, com.oracle.truffle.api.object.Shape$Allocator, int);
descriptor: (Lcom/oracle/truffle/api/object/Layout;Ljava/lang/Object;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/api/object/Shape$Allocator;I)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
layout
sharedData
parent
objectType
propertyMap
transition
allocator
id
protected void <init>(com.oracle.truffle.api.object.Layout, java.lang.Object, java.lang.Object, int, com.oracle.truffle.api.Assumption);
descriptor: (Lcom/oracle/truffle/api/object/Layout;Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/Assumption;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=14, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aconst_null
aload 2
aload 3
invokestatic com.oracle.truffle.object.PropertyMap.empty:()Lcom/oracle/truffle/object/PropertyMap;
aconst_null
iconst_0
iconst_0
iconst_0
iconst_0
iconst_1
iload 4
aload 5
invokespecial com.oracle.truffle.object.ShapeImpl.<init>:(Lcom/oracle/truffle/api/object/Layout;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;IIIIZILcom/oracle/truffle/api/Assumption;)V
1: 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 2 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 2 1 layout Lcom/oracle/truffle/api/object/Layout;
0 2 2 dynamicType Ljava/lang/Object;
0 2 3 sharedData Ljava/lang/Object;
0 2 4 flags I
0 2 5 constantObjectAssumption Lcom/oracle/truffle/api/Assumption;
MethodParameters:
Name Flags
layout
dynamicType
sharedData
flags
constantObjectAssumption
private static int makePropertyCount(com.oracle.truffle.object.ShapeImpl, com.oracle.truffle.object.PropertyMap, com.oracle.truffle.object.Transition);
descriptor: (Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.truffle.object.PropertyMap.size:()I
istore 3
start local 3 1: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.size:()I
istore 4
start local 4 2: iload 3
iload 4
if_icmple 6
3: aload 1
invokevirtual com.oracle.truffle.object.PropertyMap.getLastProperty:()Lcom/oracle/truffle/api/object/Property;
astore 5
start local 5 4: aload 5
invokevirtual com.oracle.truffle.api.object.Property.isHidden:()Z
ifne 9
5: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyCount:I
iconst_1
iadd
ireturn
end local 5 6: StackMap locals: int int
StackMap stack:
iload 3
iload 4
if_icmpge 9
aload 2
instanceof com.oracle.truffle.object.Transition$RemovePropertyTransition
ifeq 9
7: aload 2
checkcast com.oracle.truffle.object.Transition$RemovePropertyTransition
invokevirtual com.oracle.truffle.object.Transition$RemovePropertyTransition.getProperty:()Lcom/oracle/truffle/api/object/Property;
invokevirtual com.oracle.truffle.api.object.Property.isHidden:()Z
ifne 9
8: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyCount:I
iconst_1
isub
ireturn
9: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyCount:I
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 parent Lcom/oracle/truffle/object/ShapeImpl;
0 10 1 propertyMap Lcom/oracle/truffle/object/PropertyMap;
0 10 2 transitionFromParent Lcom/oracle/truffle/object/Transition;
1 10 3 thisSize I
2 10 4 parentSize I
4 6 5 lastProperty Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
parent
propertyMap
transitionFromParent
public final com.oracle.truffle.api.object.Property getLastProperty();
descriptor: ()Lcom/oracle/truffle/api/object/Property;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.getLastProperty:()Lcom/oracle/truffle/api/object/Property;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final int getId();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
invokestatic com.oracle.truffle.object.ShapeImpl.getObjectFlags:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final int getFlags();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
invokestatic com.oracle.truffle.object.ShapeImpl.getObjectFlags:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final int getFlagsInternal();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
private static int capacityFromSize(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iload 0
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iload 0
iconst_4
if_icmpgt 4
3: iconst_4
ireturn
4: StackMap locals:
StackMap stack:
iload 0
bipush 8
if_icmpgt 6
5: bipush 8
ireturn
6: StackMap locals:
StackMap stack:
iload 0
invokestatic java.lang.Integer.highestOneBit:(I)I
istore 1
start local 1 7: iload 1
istore 2
start local 2 8: iload 2
iload 0
if_icmpge 14
9: iload 1
iload 1
iconst_1
iushr
iadd
istore 2
10: iload 2
iload 0
if_icmpge 14
11: iload 1
iconst_1
ishl
istore 2
12: iload 2
iload 0
if_icmpge 14
13: iload 0
istore 2
14: StackMap locals: int int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 size I
7 15 1 hi I
8 15 2 cap I
MethodParameters:
Name Flags
size
public final int getObjectArraySize();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.objectArraySize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final int getObjectFieldSize();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.objectFieldSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final int getPrimitiveFieldSize();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.primitiveFieldSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final int getObjectArrayCapacity();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.objectArrayCapacity:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final int getPrimitiveArrayCapacity();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.primitiveArrayCapacity:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final int getPrimitiveArraySize();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.primitiveArraySize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final boolean hasPrimitiveArray();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.hasPrimitiveArray:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
protected boolean hasInstanceProperties();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
ldc 262144
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/ShapeImpl;
public com.oracle.truffle.api.object.Property getProperty(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
aload 1
invokevirtual com.oracle.truffle.object.PropertyMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 1 1 key Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
public final com.oracle.truffle.object.PropertyMap getPropertyMap();
descriptor: ()Lcom/oracle/truffle/object/PropertyMap;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final void addDirectTransition(com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl);
descriptor: (Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)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.ShapeImpl.$assertionsDisabled:Z
ifne 2
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.getParent:()Lcom/oracle/truffle/object/ShapeImpl;
aload 0
if_acmpne 1
aload 1
invokevirtual com.oracle.truffle.object.Transition.isDirect:()Z
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.addTransitionInternal:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 4 1 transition Lcom/oracle/truffle/object/Transition;
0 4 2 next Lcom/oracle/truffle/object/ShapeImpl;
MethodParameters:
Name Flags
transition
next
public final void addIndirectTransition(com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl);
descriptor: (Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)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.ShapeImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.isShared:()Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 3
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.getParent:()Lcom/oracle/truffle/object/ShapeImpl;
aload 0
if_acmpeq 2
aload 1
invokevirtual com.oracle.truffle.object.Transition.isDirect:()Z
ifeq 3
StackMap locals:
StackMap stack:
2: 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.ShapeImpl.addTransitionInternal:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 5 1 transition Lcom/oracle/truffle/object/Transition;
0 5 2 next Lcom/oracle/truffle/object/ShapeImpl;
MethodParameters:
Name Flags
transition
next
private void addTransitionInternal(com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl);
descriptor: (Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.TRANSITION_MAP_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 3
ifnonnull 6
3: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.invalidateLeafAssumption:()V
4: aload 1
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.newSingleEntry:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)Ljava/lang/Object;
astore 4
start local 4 5: goto 16
end local 4 StackMap locals: java.lang.Object
StackMap stack:
6: aload 3
invokestatic com.oracle.truffle.object.ShapeImpl.isSingleEntry:(Ljava/lang/Object;)Z
ifeq 15
7: aload 3
invokestatic com.oracle.truffle.object.ShapeImpl.asSingleEntry:(Ljava/lang/Object;)Lcom/oracle/truffle/object/StrongKeyWeakValueEntry;
astore 5
start local 5 8: aload 5
invokevirtual com.oracle.truffle.object.StrongKeyWeakValueEntry.getKey:()Ljava/lang/Object;
checkcast com.oracle.truffle.object.Transition
astore 6
start local 6 9: aload 5
invokevirtual com.oracle.truffle.object.StrongKeyWeakValueEntry.getValue:()Ljava/lang/Object;
checkcast com.oracle.truffle.object.ShapeImpl
astore 7
start local 7 10: aload 7
ifnull 13
11: aload 6
aload 7
aload 1
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.newTransitionMap:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)Ljava/lang/Object;
astore 4
start local 4 12: goto 16
end local 4 13: StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.Transition com.oracle.truffle.object.ShapeImpl java.lang.Object top com.oracle.truffle.object.StrongKeyWeakValueEntry com.oracle.truffle.object.Transition com.oracle.truffle.object.ShapeImpl
StackMap stack:
aload 1
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.newSingleEntry:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)Ljava/lang/Object;
astore 4
end local 7 end local 6 end local 5 start local 4 14: goto 16
end local 4 15: StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.Transition com.oracle.truffle.object.ShapeImpl java.lang.Object
StackMap stack:
aload 1
aload 2
aload 3
invokestatic com.oracle.truffle.object.ShapeImpl.addToTransitionMap:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 16: StackMap locals: java.lang.Object
StackMap stack:
aload 3
aload 4
if_acmpne 18
17: goto 19
18: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.TRANSITION_MAP_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aload 3
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 1
19: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 20 1 transition Lcom/oracle/truffle/object/Transition;
0 20 2 successor Lcom/oracle/truffle/object/ShapeImpl;
2 20 3 prev Ljava/lang/Object;
5 6 4 next Ljava/lang/Object;
12 13 4 next Ljava/lang/Object;
14 15 4 next Ljava/lang/Object;
16 20 4 next Ljava/lang/Object;
8 14 5 entry Lcom/oracle/truffle/object/StrongKeyWeakValueEntry<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
9 14 6 exTra Lcom/oracle/truffle/object/Transition;
10 14 7 exSucc Lcom/oracle/truffle/object/ShapeImpl;
MethodParameters:
Name Flags
transition
successor
private static java.lang.Object newTransitionMap(com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl, com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl);
descriptor: (Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.truffle.object.ShapeImpl.newTransitionMap:()Ljava/util/Map;
astore 4
start local 4 1: aload 4
aload 0
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 4
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 firstTransition Lcom/oracle/truffle/object/Transition;
0 4 1 firstShape Lcom/oracle/truffle/object/ShapeImpl;
0 4 2 secondTransition Lcom/oracle/truffle/object/Transition;
0 4 3 secondShape Lcom/oracle/truffle/object/ShapeImpl;
1 4 4 map Ljava/util/Map<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
MethodParameters:
Name Flags
firstTransition
firstShape
secondTransition
secondShape
private static java.lang.Object addToTransitionMap(com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl, java.lang.Object);
descriptor: (Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 1
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.isTransitionMap:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.asTransitionMap:(Ljava/lang/Object;)Ljava/util/Map;
astore 3
start local 3 2: aload 3
aload 0
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 transition Lcom/oracle/truffle/object/Transition;
0 4 1 successor Lcom/oracle/truffle/object/ShapeImpl;
0 4 2 prevMap Ljava/lang/Object;
2 4 3 map Ljava/util/Map<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
MethodParameters:
Name Flags
transition
successor
prevMap
private static java.util.Map<com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl> newTransitionMap();
descriptor: ()Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.oracle.truffle.object.TransitionMap
dup
invokespecial com.oracle.truffle.object.TransitionMap.<init>:()V
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Map<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
private static java.util.Map<com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl> asTransitionMap();
descriptor: (Ljava/lang/Object;)Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
checkcast java.util.Map
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 map Ljava/lang/Object;
Signature: (Ljava/lang/Object;)Ljava/util/Map<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
MethodParameters:
Name Flags
map
private static boolean isTransitionMap(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof java.util.Map
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 trans Ljava/lang/Object;
MethodParameters:
Name Flags
trans
private static java.lang.Object newSingleEntry(com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl);
descriptor: (Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.object.StrongKeyWeakValueEntry
dup
aload 0
aload 1
invokespecial com.oracle.truffle.object.StrongKeyWeakValueEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 transition Lcom/oracle/truffle/object/Transition;
0 1 1 successor Lcom/oracle/truffle/object/ShapeImpl;
MethodParameters:
Name Flags
transition
successor
private static boolean isSingleEntry(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof com.oracle.truffle.object.StrongKeyWeakValueEntry
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 trans Ljava/lang/Object;
MethodParameters:
Name Flags
trans
private static com.oracle.truffle.object.StrongKeyWeakValueEntry<com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl> asSingleEntry();
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/object/StrongKeyWeakValueEntry;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
checkcast com.oracle.truffle.object.StrongKeyWeakValueEntry
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 trans Ljava/lang/Object;
Signature: (Ljava/lang/Object;)Lcom/oracle/truffle/object/StrongKeyWeakValueEntry<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
MethodParameters:
Name Flags
trans
public final java.util.Map<com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl> getTransitionMapForRead();
descriptor: ()Ljava/util/Map;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=2, args_size=1
start local 0 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 1
start local 1 1: aload 0
new com.oracle.truffle.object.ShapeImpl$1
dup
aload 0
aload 1
invokespecial com.oracle.truffle.object.ShapeImpl$1.<init>:(Lcom/oracle/truffle/object/ShapeImpl;Ljava/util/Map;)V
invokevirtual com.oracle.truffle.object.ShapeImpl.forEachTransition:(Ljava/util/function/BiConsumer;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/ShapeImpl;
1 3 1 snapshot Ljava/util/Map<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
Signature: ()Ljava/util/Map<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public final void forEachTransition(java.util.function.BiConsumer<com.oracle.truffle.object.Transition, com.oracle.truffle.object.ShapeImpl>);
descriptor: (Ljava/util/function/BiConsumer;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.transitionMap:Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: return
3: StackMap locals: java.lang.Object
StackMap stack:
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.isSingleEntry:(Ljava/lang/Object;)Z
ifeq 10
4: aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.asSingleEntry:(Ljava/lang/Object;)Lcom/oracle/truffle/object/StrongKeyWeakValueEntry;
astore 3
start local 3 5: aload 3
invokevirtual com.oracle.truffle.object.StrongKeyWeakValueEntry.getValue:()Ljava/lang/Object;
checkcast com.oracle.truffle.object.ShapeImpl
astore 4
start local 4 6: aload 4
ifnull 13
7: aload 3
invokevirtual com.oracle.truffle.object.StrongKeyWeakValueEntry.getKey:()Ljava/lang/Object;
checkcast com.oracle.truffle.object.Transition
astore 5
start local 5 8: aload 1
aload 5
aload 4
invokeinterface java.util.function.BiConsumer.accept:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 5 end local 4 end local 3 9: goto 13
10: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 11
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.isTransitionMap:(Ljava/lang/Object;)Z
ifne 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.asTransitionMap:(Ljava/lang/Object;)Ljava/util/Map;
astore 3
start local 3 12: aload 3
aload 1
invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
end local 3 13: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 14 1 consumer Ljava/util/function/BiConsumer<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
1 14 2 trans Ljava/lang/Object;
5 9 3 entry Lcom/oracle/truffle/object/StrongKeyWeakValueEntry<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
6 9 4 shape Lcom/oracle/truffle/object/ShapeImpl;
8 9 5 key Lcom/oracle/truffle/object/Transition;
12 13 3 map Ljava/util/Map<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
Signature: (Ljava/util/function/BiConsumer<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;)V
MethodParameters:
Name Flags
consumer
private com.oracle.truffle.object.ShapeImpl queryTransitionImpl(com.oracle.truffle.object.Transition);
descriptor: (Lcom/oracle/truffle/object/Transition;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.transitionMap:Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.isSingleEntry:(Ljava/lang/Object;)Z
ifeq 9
4: aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.asSingleEntry:(Ljava/lang/Object;)Lcom/oracle/truffle/object/StrongKeyWeakValueEntry;
astore 3
start local 3 5: aload 3
invokevirtual com.oracle.truffle.object.StrongKeyWeakValueEntry.getKey:()Ljava/lang/Object;
checkcast com.oracle.truffle.object.Transition
astore 4
start local 4 6: aload 4
aload 1
invokevirtual com.oracle.truffle.object.Transition.equals:(Ljava/lang/Object;)Z
ifeq 8
7: aload 3
invokevirtual com.oracle.truffle.object.StrongKeyWeakValueEntry.getValue:()Ljava/lang/Object;
checkcast com.oracle.truffle.object.ShapeImpl
areturn
8: StackMap locals: com.oracle.truffle.object.StrongKeyWeakValueEntry com.oracle.truffle.object.Transition
StackMap stack:
aconst_null
areturn
end local 4 end local 3 9: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 10
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.isTransitionMap:(Ljava/lang/Object;)Z
ifne 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.truffle.object.ShapeImpl.asTransitionMap:(Ljava/lang/Object;)Ljava/util/Map;
astore 3
start local 3 11: aload 3
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.object.ShapeImpl
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 12 1 transition Lcom/oracle/truffle/object/Transition;
1 12 2 trans Ljava/lang/Object;
5 9 3 entry Lcom/oracle/truffle/object/StrongKeyWeakValueEntry<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
6 9 4 key Lcom/oracle/truffle/object/Transition;
11 12 3 map Ljava/util/Map<Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;>;
MethodParameters:
Name Flags
transition
public final com.oracle.truffle.object.ShapeImpl queryTransition(com.oracle.truffle.object.Transition);
descriptor: (Lcom/oracle/truffle/object/Transition;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.queryTransitionImpl:(Lcom/oracle/truffle/object/Transition;)Lcom/oracle/truffle/object/ShapeImpl;
astore 2
start local 2 1: aload 2
ifnull 4
2: getstatic com.oracle.truffle.object.ShapeImpl.shapeCacheHitCount:Lcom/oracle/truffle/object/DebugCounter;
invokevirtual com.oracle.truffle.object.DebugCounter.inc:()V
3: aload 2
areturn
4: StackMap locals: com.oracle.truffle.object.ShapeImpl
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.shapeCacheMissCount:Lcom/oracle/truffle/object/DebugCounter;
invokevirtual com.oracle.truffle.object.DebugCounter.inc:()V
5: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 6 1 transition Lcom/oracle/truffle/object/Transition;
1 6 2 cachedShape Lcom/oracle/truffle/object/ShapeImpl;
MethodParameters:
Name Flags
transition
public com.oracle.truffle.object.ShapeImpl addProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.isValid:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.onPropertyTransition:(Lcom/oracle/truffle/api/object/Property;)V
2: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
aload 0
aload 1
invokevirtual com.oracle.truffle.object.LayoutStrategy.addProperty:(Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 3 1 property Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
property
protected void onPropertyTransition(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allowPropertyAssumptions:()Z
ifeq 4
1: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyAssumptions:()Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 2
aload 1
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
invokevirtual com.oracle.truffle.object.ShapeImpl$PropertyAssumptions.invalidatePropertyAssumption:(Ljava/lang/Object;)V
end local 2 4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
instanceof com.oracle.truffle.api.object.ShapeListener
ifeq 6
5: aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.ShapeListener
aload 1
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.object.ShapeListener.onPropertyTransition:(Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 7 1 property Lcom/oracle/truffle/api/object/Property;
2 4 2 propertyAssumptions Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
property
public com.oracle.truffle.object.ShapeImpl defineProperty(java.lang.Object, java.lang.Object, int);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;I)Lcom/oracle/truffle/object/ShapeImpl;
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
getfield com.oracle.truffle.object.ShapeImpl.layout: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.ShapeImpl.defineProperty:(Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/object/LocationFactory;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 1 1 key Ljava/lang/Object;
0 1 2 value Ljava/lang/Object;
0 1 3 propertyFlags I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
value
propertyFlags
public com.oracle.truffle.object.ShapeImpl defineProperty(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;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout: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
invokevirtual com.oracle.truffle.object.LayoutStrategy.defineProperty:(Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/object/LocationFactory;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 1 1 key Ljava/lang/Object;
0 1 2 value Ljava/lang/Object;
0 1 3 propertyFlags I
0 1 4 locationFactory Lcom/oracle/truffle/api/object/LocationFactory;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
value
propertyFlags
locationFactory
protected com.oracle.truffle.object.ShapeImpl cloneRoot(com.oracle.truffle.object.ShapeImpl, java.lang.Object);
descriptor: (Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
aload 2
aconst_null
aload 1
getfield com.oracle.truffle.object.ShapeImpl.objectType:Ljava/lang/Object;
aload 1
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
aconst_null
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.allocator:()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
aload 1
getfield com.oracle.truffle.object.ShapeImpl.flags:I
invokevirtual com.oracle.truffle.object.ShapeImpl.createShape:(Lcom/oracle/truffle/api/object/Layout;Ljava/lang/Object;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/api/object/Shape$Allocator;I)Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 1 1 from Lcom/oracle/truffle/object/ShapeImpl;
0 1 2 newSharedData Ljava/lang/Object;
MethodParameters:
Name Flags
from
newSharedData
protected final com.oracle.truffle.object.ShapeImpl cloneOnto(com.oracle.truffle.object.ShapeImpl);
descriptor: (Lcom/oracle/truffle/object/ShapeImpl;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=9, locals=4, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: aload 0
aload 1
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
aload 1
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
aload 1
aload 2
getfield com.oracle.truffle.object.ShapeImpl.objectType:Ljava/lang/Object;
aload 2
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
aload 2
getfield com.oracle.truffle.object.ShapeImpl.transitionFromParent:Lcom/oracle/truffle/object/Transition;
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.allocator:()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
aload 1
getfield com.oracle.truffle.object.ShapeImpl.flags:I
invokevirtual com.oracle.truffle.object.ShapeImpl.createShape:(Lcom/oracle/truffle/api/object/Layout;Ljava/lang/Object;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/api/object/Shape$Allocator;I)Lcom/oracle/truffle/object/ShapeImpl;
astore 3
start local 3 2: getstatic com.oracle.truffle.object.ShapeImpl.shapeCloneCount:Lcom/oracle/truffle/object/DebugCounter;
invokevirtual com.oracle.truffle.object.DebugCounter.inc:()V
3: aload 1
aload 2
getfield com.oracle.truffle.object.ShapeImpl.transitionFromParent:Lcom/oracle/truffle/object/Transition;
aload 3
invokevirtual com.oracle.truffle.object.ShapeImpl.addDirectTransition:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)V
4: aload 3
areturn
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/ShapeImpl;
0 5 1 newParent Lcom/oracle/truffle/object/ShapeImpl;
1 5 2 from Lcom/oracle/truffle/object/ShapeImpl;
2 5 3 newShape Lcom/oracle/truffle/object/ShapeImpl;
MethodParameters:
Name Flags
newParent
public final com.oracle.truffle.object.Transition getTransitionFromParent();
descriptor: ()Lcom/oracle/truffle/object/Transition;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.transitionFromParent:Lcom/oracle/truffle/object/Transition;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
protected static com.oracle.truffle.object.ShapeImpl makeShapeWithAddedProperty(com.oracle.truffle.object.ShapeImpl, com.oracle.truffle.object.Transition$AddPropertyTransition);
descriptor: (Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/object/Transition$AddPropertyTransition;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=9, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.object.Transition$AddPropertyTransition.getProperty:()Lcom/oracle/truffle/api/object/Property;
astore 2
start local 2 1: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allocator:()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
aload 2
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.object.ShapeImpl$BaseAllocator.addLocation:(Lcom/oracle/truffle/api/object/Location;)Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
astore 3
start local 3 2: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
aload 2
invokevirtual com.oracle.truffle.object.PropertyMap.putCopy:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/PropertyMap;
astore 4
start local 4 3: aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.objectType:Ljava/lang/Object;
aload 4
aload 1
aload 3
aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
invokevirtual com.oracle.truffle.object.ShapeImpl.createShape:(Lcom/oracle/truffle/api/object/Layout;Ljava/lang/Object;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/api/object/Shape$Allocator;I)Lcom/oracle/truffle/object/ShapeImpl;
astore 5
start local 5 4: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 5
aload 2
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
checkcast com.oracle.truffle.object.LocationImpl
invokevirtual com.oracle.truffle.object.LocationImpl.primitiveArrayCount:()I
ifeq 5
aload 5
getfield com.oracle.truffle.object.ShapeImpl.hasPrimitiveArray:Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.Transition$AddPropertyTransition com.oracle.truffle.api.object.Property com.oracle.truffle.object.ShapeImpl$BaseAllocator com.oracle.truffle.object.PropertyMap com.oracle.truffle.object.ShapeImpl
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 6
aload 5
getfield com.oracle.truffle.object.ShapeImpl.depth:I
aload 3
getfield com.oracle.truffle.object.ShapeImpl$BaseAllocator.depth:I
if_icmpeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 5
areturn
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 7 0 parent Lcom/oracle/truffle/object/ShapeImpl;
0 7 1 addTransition Lcom/oracle/truffle/object/Transition$AddPropertyTransition;
1 7 2 addend Lcom/oracle/truffle/api/object/Property;
2 7 3 allocator Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
3 7 4 newPropertyMap Lcom/oracle/truffle/object/PropertyMap;
4 7 5 newShape Lcom/oracle/truffle/object/ShapeImpl;
MethodParameters:
Name Flags
parent
addTransition
protected static com.oracle.truffle.object.ShapeImpl makeShapeWithPrimitiveExtensionArray(com.oracle.truffle.object.ShapeImpl, com.oracle.truffle.object.Transition);
descriptor: (Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/object/Transition;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=9, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.hasPrimitiveExtensionArray:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.hasPrimitiveArray:()Z
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allocator:()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.getPrimitiveArrayLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.object.ShapeImpl$BaseAllocator.addLocation:(Lcom/oracle/truffle/api/object/Location;)Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
astore 2
start local 2 3: aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.objectType:Ljava/lang/Object;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
aload 1
aload 2
aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
invokevirtual com.oracle.truffle.object.ShapeImpl.createShape:(Lcom/oracle/truffle/api/object/Layout;Ljava/lang/Object;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/api/object/Shape$Allocator;I)Lcom/oracle/truffle/object/ShapeImpl;
astore 3
start local 3 4: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 5
aload 3
invokevirtual com.oracle.truffle.object.ShapeImpl.hasPrimitiveArray:()Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: com.oracle.truffle.object.ShapeImpl$BaseAllocator com.oracle.truffle.object.ShapeImpl
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 6
aload 3
getfield com.oracle.truffle.object.ShapeImpl.depth:I
aload 2
getfield com.oracle.truffle.object.ShapeImpl$BaseAllocator.depth:I
if_icmpeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 parent Lcom/oracle/truffle/object/ShapeImpl;
0 7 1 transition Lcom/oracle/truffle/object/Transition;
3 7 2 allocator Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
4 7 3 newShape Lcom/oracle/truffle/object/ShapeImpl;
MethodParameters:
Name Flags
parent
transition
public boolean isRelated(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getRoot:()Lcom/oracle/truffle/object/ShapeImpl;
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getRoot:()Lcom/oracle/truffle/object/ShapeImpl;
if_acmpne 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 5 1 other Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
other
public final java.util.List<com.oracle.truffle.api.object.Property> getPropertyList(com.oracle.truffle.api.object.Shape$Pred<com.oracle.truffle.api.object.Property>);
descriptor: (Lcom/oracle/truffle/api/object/Shape$Pred;)Ljava/util/List;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 2
start local 2 1: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.reverseOrderedValueIterator:()Ljava/util/Iterator;
astore 3
start local 3 2: goto 6
3: StackMap locals: java.util.ArrayDeque java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 4
start local 4 4: aload 4
invokevirtual com.oracle.truffle.api.object.Property.isHidden:()Z
ifne 6
aload 1
aload 4
invokeinterface com.oracle.truffle.api.object.Shape$Pred.test:(Ljava/lang/Object;)Z
ifeq 6
5: aload 2
aload 4
invokevirtual java.util.ArrayDeque.addFirst:(Ljava/lang/Object;)V
end local 4 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 3 7: aload 2
iconst_0
anewarray com.oracle.truffle.api.object.Property
invokevirtual java.util.ArrayDeque.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property[]
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 8 1 filter Lcom/oracle/truffle/api/object/Shape$Pred<Lcom/oracle/truffle/api/object/Property;>;
1 8 2 props Ljava/util/ArrayDeque<Lcom/oracle/truffle/api/object/Property;>;
2 7 3 it Ljava/util/Iterator<Lcom/oracle/truffle/api/object/Property;>;
4 6 4 currentProperty Lcom/oracle/truffle/api/object/Property;
Signature: (Lcom/oracle/truffle/api/object/Shape$Pred<Lcom/oracle/truffle/api/object/Property;>;)Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
filter
public final java.util.List<com.oracle.truffle.api.object.Property> getPropertyList();
descriptor: ()Ljava/util/List;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyArray:()[Lcom/oracle/truffle/api/object/Property;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
Signature: ()Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
public final com.oracle.truffle.api.object.Property[] getPropertyArray();
descriptor: ()[Lcom/oracle/truffle/api/object/Property;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyCount:()I
anewarray com.oracle.truffle.api.object.Property
astore 1
start local 1 1: aload 1
arraylength
istore 2
start local 2 2: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.reverseOrderedValueIterator:()Ljava/util/Iterator;
astore 3
start local 3 3: goto 7
4: StackMap locals: com.oracle.truffle.api.object.Property[] int java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 4
start local 4 5: aload 4
invokevirtual com.oracle.truffle.api.object.Property.isHidden:()Z
ifne 7
6: aload 1
iinc 2 -1
iload 2
aload 4
aastore
end local 4 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 3 8: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/object/ShapeImpl;
1 9 1 props [Lcom/oracle/truffle/api/object/Property;
2 9 2 i I
3 8 3 it Ljava/util/Iterator<Lcom/oracle/truffle/api/object/Property;>;
5 7 4 currentProperty Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
public final java.util.List<com.oracle.truffle.api.object.Property> getPropertyListInternal(boolean);
descriptor: (Z)Ljava/util/List;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.size:()I
anewarray com.oracle.truffle.api.object.Property
astore 2
start local 2 1: iload 1
ifeq 2
aload 2
arraylength
goto 3
StackMap locals: com.oracle.truffle.api.object.Property[]
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 3
start local 3 4: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.reverseOrderedValueIterator:()Ljava/util/Iterator;
astore 4
start local 4 5: goto 11
6: StackMap locals: int java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 5
start local 5 7: iload 1
ifeq 10
8: aload 2
iinc 3 -1
iload 3
aload 5
aastore
9: goto 11
10: StackMap locals: com.oracle.truffle.api.object.Property
StackMap stack:
aload 2
iload 3
iinc 3 1
aload 5
aastore
end local 5 11: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 4 12: aload 2
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 13 1 ascending Z
1 13 2 props [Lcom/oracle/truffle/api/object/Property;
4 13 3 i I
5 12 4 it Ljava/util/Iterator<Lcom/oracle/truffle/api/object/Property;>;
7 11 5 current Lcom/oracle/truffle/api/object/Property;
Signature: (Z)Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
ascending
public final java.util.List<java.lang.Object> getKeyList(com.oracle.truffle.api.object.Shape$Pred<com.oracle.truffle.api.object.Property>);
descriptor: (Lcom/oracle/truffle/api/object/Shape$Pred;)Ljava/util/List;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 2
start local 2 1: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.reverseOrderedValueIterator:()Ljava/util/Iterator;
astore 3
start local 3 2: goto 6
3: StackMap locals: java.util.ArrayDeque java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 4
start local 4 4: aload 4
invokevirtual com.oracle.truffle.api.object.Property.isHidden:()Z
ifne 6
aload 1
aload 4
invokeinterface com.oracle.truffle.api.object.Shape$Pred.test:(Ljava/lang/Object;)Z
ifeq 6
5: aload 2
aload 4
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
invokevirtual java.util.ArrayDeque.addFirst:(Ljava/lang/Object;)V
end local 4 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 3 7: aload 2
iconst_0
anewarray java.lang.Object
invokevirtual java.util.ArrayDeque.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 8 1 filter Lcom/oracle/truffle/api/object/Shape$Pred<Lcom/oracle/truffle/api/object/Property;>;
1 8 2 keys Ljava/util/ArrayDeque<Ljava/lang/Object;>;
2 7 3 it Ljava/util/Iterator<Lcom/oracle/truffle/api/object/Property;>;
4 6 4 currentProperty Lcom/oracle/truffle/api/object/Property;
Signature: (Lcom/oracle/truffle/api/object/Shape$Pred<Lcom/oracle/truffle/api/object/Property;>;)Ljava/util/List<Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
filter
public final java.util.List<java.lang.Object> getKeyList();
descriptor: ()Ljava/util/List;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getKeyArray:()[Ljava/lang/Object;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
Signature: ()Ljava/util/List<Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
public final java.lang.Object[] getKeyArray();
descriptor: ()[Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyCount:()I
anewarray java.lang.Object
astore 1
start local 1 1: aload 1
arraylength
istore 2
start local 2 2: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.reverseOrderedValueIterator:()Ljava/util/Iterator;
astore 3
start local 3 3: goto 7
4: StackMap locals: java.lang.Object[] int java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 4
start local 4 5: aload 4
invokevirtual com.oracle.truffle.api.object.Property.isHidden:()Z
ifne 7
6: aload 1
iinc 2 -1
iload 2
aload 4
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
aastore
end local 4 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 3 8: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/object/ShapeImpl;
1 9 1 props [Ljava/lang/Object;
2 9 2 i I
3 8 3 it Ljava/util/Iterator<Lcom/oracle/truffle/api/object/Property;>;
5 7 4 currentProperty Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
public java.lang.Iterable<java.lang.Object> getKeys();
descriptor: ()Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getKeyList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
Signature: ()Ljava/lang/Iterable<Ljava/lang/Object;>;
public final boolean isValid();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getValidAssumption:()Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final com.oracle.truffle.api.Assumption getValidAssumption();
descriptor: ()Lcom/oracle/truffle/api/Assumption;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.validAssumption:Lcom/oracle/truffle/api/Assumption;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
private static com.oracle.truffle.api.Assumption createValidAssumption();
descriptor: ()Lcom/oracle/truffle/api/Assumption;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "valid shape"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
areturn
LocalVariableTable:
Start End Slot Name Signature
public final void invalidateValidAssumption();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getValidAssumption:()Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final boolean isLeaf();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.leafAssumption:Lcom/oracle/truffle/api/Assumption;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 2
iconst_0
ireturn
StackMap locals: com.oracle.truffle.api.Assumption
StackMap stack:
2: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/ShapeImpl;
1 3 1 assumption Lcom/oracle/truffle/api/Assumption;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
public final com.oracle.truffle.api.Assumption getLeafAssumption();
descriptor: ()Lcom/oracle/truffle/api/Assumption;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.leafAssumption:Lcom/oracle/truffle/api/Assumption;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
areturn
3: StackMap locals: com.oracle.truffle.api.Assumption
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
4: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.LEAF_ASSUMPTION_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.Assumption
astore 2
start local 2 5: aload 2
ifnull 7
6: aload 2
areturn
7: StackMap locals: com.oracle.truffle.api.Assumption
StackMap stack:
aload 0
getfield com.oracle.truffle.object.ShapeImpl.transitionMap:Ljava/lang/Object;
ifnonnull 8
iconst_1
goto 9
StackMap locals:
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 4
start local 4 10: iload 4
ifeq 11
invokestatic com.oracle.truffle.object.ShapeImpl.createLeafAssumption:()Lcom/oracle/truffle/api/Assumption;
goto 12
StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.api.Assumption com.oracle.truffle.api.Assumption top int
StackMap stack:
11: getstatic com.oracle.truffle.api.utilities.NeverValidAssumption.INSTANCE:Lcom/oracle/truffle/api/utilities/NeverValidAssumption;
StackMap locals:
StackMap stack: com.oracle.truffle.api.Assumption
12: astore 3
end local 4 start local 3 13: getstatic com.oracle.truffle.object.ShapeImpl.LEAF_ASSUMPTION_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aload 2
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 4
14: aload 3
areturn
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/ShapeImpl;
1 15 1 assumption Lcom/oracle/truffle/api/Assumption;
5 15 2 prev Lcom/oracle/truffle/api/Assumption;
13 15 3 next Lcom/oracle/truffle/api/Assumption;
10 13 4 isLeafShape Z
private static com.oracle.truffle.api.Assumption createLeafAssumption();
descriptor: ()Lcom/oracle/truffle/api/Assumption;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "leaf shape"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
areturn
LocalVariableTable:
Start End Slot Name Signature
protected void invalidateLeafAssumption();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.LEAF_ASSUMPTION_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.Assumption
astore 1
start local 1 1: aload 1
getstatic com.oracle.truffle.api.utilities.NeverValidAssumption.INSTANCE:Lcom/oracle/truffle/api/utilities/NeverValidAssumption;
if_acmpne 3
2: goto 6
3: StackMap locals: com.oracle.truffle.api.Assumption
StackMap stack:
aload 1
ifnull 5
4: aload 1
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
5: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.LEAF_ASSUMPTION_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
aload 1
getstatic com.oracle.truffle.api.utilities.NeverValidAssumption.INSTANCE:Lcom/oracle/truffle/api/utilities/NeverValidAssumption;
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 0
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/object/ShapeImpl;
1 7 1 prev Lcom/oracle/truffle/api/Assumption;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
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
ldc 2147483647
invokevirtual com.oracle.truffle.object.ShapeImpl.toStringLimit:(I)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public java.lang.String toStringLimit(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: aload 2
bipush 64
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
2: aload 2
aload 0
invokevirtual java.lang.Object.hashCode:()I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.isValid:()Z
ifne 5
4: aload 2
bipush 33
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
5: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 2
ldc "{"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
invokevirtual com.oracle.truffle.object.PropertyMap.reverseOrderedValueIterator:()Ljava/util/Iterator;
astore 3
start local 3 7: goto 16
8: StackMap locals: java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 4
start local 4 9: aload 2
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
10: aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 12
11: aload 2
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: StackMap locals: com.oracle.truffle.api.object.Property
StackMap stack:
aload 2
invokevirtual java.lang.StringBuilder.length:()I
iload 1
if_icmplt 15
13: aload 2
ldc "..."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: goto 17
15: StackMap locals:
StackMap stack:
aload 2
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 4 16: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
end local 3 17: StackMap locals:
StackMap stack:
aload 2
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 19 1 limit I
1 19 2 sb Ljava/lang/StringBuilder;
7 17 3 iterator Ljava/util/Iterator<Lcom/oracle/truffle/api/object/Property;>;
9 16 4 p Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
limit
public final com.oracle.truffle.object.ShapeImpl getParent();
descriptor: ()Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.parent:Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final int getDepth();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.depth:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final boolean hasProperty(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
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.ShapeImpl.getProperty:(Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Property;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 2 1 name Ljava/lang/Object;
MethodParameters:
Name Flags
name
public final com.oracle.truffle.object.ShapeImpl removeProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.onPropertyTransition:(Lcom/oracle/truffle/api/object/Property;)V
1: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
aload 0
aload 1
invokevirtual com.oracle.truffle.object.LayoutStrategy.removeProperty:(Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 2 1 prop Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
prop
public final com.oracle.truffle.object.ShapeImpl append(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allocator:()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
aload 1
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.object.ShapeImpl$BaseAllocator.moveLocation:(Lcom/oracle/truffle/api/object/Location;)Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.api.object.Property.relocate:(Lcom/oracle/truffle/api/object/Location;)Lcom/oracle/truffle/api/object/Property;
invokevirtual com.oracle.truffle.object.ShapeImpl.addProperty:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 1 1 oldProperty Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
oldProperty
public final com.oracle.truffle.object.ShapeImpl$BaseAllocator allocator();
descriptor: ()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout: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.createAllocator:(Lcom/oracle/truffle/object/ShapeImpl;)Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public com.oracle.truffle.object.ShapeImpl replaceProperty(com.oracle.truffle.api.object.Property, com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
aload 2
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.onPropertyTransition:(Lcom/oracle/truffle/api/object/Property;)V
2: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.getStrategy:()Lcom/oracle/truffle/object/LayoutStrategy;
aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.LayoutStrategy.replaceProperty:(Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 3 1 oldProperty Lcom/oracle/truffle/api/object/Property;
0 3 2 newProperty Lcom/oracle/truffle/api/object/Property;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
oldProperty
newProperty
public static com.oracle.truffle.object.ShapeImpl findCommonAncestor(com.oracle.truffle.object.ShapeImpl, com.oracle.truffle.object.ShapeImpl);
descriptor: (Lcom/oracle/truffle/object/ShapeImpl;Lcom/oracle/truffle/object/ShapeImpl;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.isRelated:(Lcom/oracle/truffle/api/object/Shape;)Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "shapes must have the same root"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
if_acmpne 4
3: aload 0
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.object.ShapeImpl.depth:I
istore 2
start local 2 5: aload 1
getfield com.oracle.truffle.object.ShapeImpl.depth:I
istore 3
start local 3 6: aload 0
astore 4
start local 4 7: aload 1
astore 5
start local 5 8: goto 11
9: StackMap locals: com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.ShapeImpl int int com.oracle.truffle.object.ShapeImpl com.oracle.truffle.object.ShapeImpl
StackMap stack:
aload 4
getfield com.oracle.truffle.object.ShapeImpl.parent:Lcom/oracle/truffle/object/ShapeImpl;
astore 4
10: iinc 2 -1
11: StackMap locals:
StackMap stack:
iload 2
iload 3
if_icmpgt 9
12: goto 15
13: StackMap locals:
StackMap stack:
aload 5
getfield com.oracle.truffle.object.ShapeImpl.parent:Lcom/oracle/truffle/object/ShapeImpl;
astore 5
14: iinc 3 -1
15: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmpgt 13
16: goto 19
17: StackMap locals:
StackMap stack:
aload 4
getfield com.oracle.truffle.object.ShapeImpl.parent:Lcom/oracle/truffle/object/ShapeImpl;
astore 4
18: aload 5
getfield com.oracle.truffle.object.ShapeImpl.parent:Lcom/oracle/truffle/object/ShapeImpl;
astore 5
19: StackMap locals:
StackMap stack:
aload 4
aload 5
if_acmpne 17
20: aload 4
areturn
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 21 0 left Lcom/oracle/truffle/object/ShapeImpl;
0 21 1 right Lcom/oracle/truffle/object/ShapeImpl;
5 21 2 leftLength I
6 21 3 rightLength I
7 21 4 leftPtr Lcom/oracle/truffle/object/ShapeImpl;
8 21 5 rightPtr Lcom/oracle/truffle/object/ShapeImpl;
MethodParameters:
Name Flags
left
right
public final int getPropertyCount();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public static java.util.List<com.oracle.truffle.api.object.Property> diff(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;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
invokevirtual com.oracle.truffle.api.object.Shape.getPropertyListInternal:(Z)Ljava/util/List;
astore 2
start local 2 1: aload 1
iconst_0
invokevirtual com.oracle.truffle.api.object.Shape.getPropertyListInternal:(Z)Ljava/util/List;
astore 3
start local 3 2: new java.util.ArrayList
dup
aload 2
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 3: aload 4
aload 3
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
4: new java.util.ArrayList
dup
aload 2
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 5
start local 5 5: aload 5
aload 3
invokeinterface java.util.List.retainAll:(Ljava/util/Collection;)Z
pop
6: aload 4
aload 5
invokeinterface java.util.List.removeAll:(Ljava/util/Collection;)Z
pop
7: aload 4
areturn
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 8 0 oldShape Lcom/oracle/truffle/api/object/Shape;
0 8 1 newShape Lcom/oracle/truffle/api/object/Shape;
1 8 2 oldList Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
2 8 3 newList Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
3 8 4 diff Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
5 8 5 intersection Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
Signature: (Lcom/oracle/truffle/api/object/Shape;Lcom/oracle/truffle/api/object/Shape;)Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
MethodParameters:
Name Flags
oldShape
newShape
public com.oracle.truffle.api.object.ObjectType getObjectType();
descriptor: ()Lcom/oracle/truffle/api/object/ObjectType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.objectType:Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.ObjectType
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public java.lang.Object getDynamicType();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.objectType:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
protected com.oracle.truffle.object.ShapeImpl setDynamicType(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ldc "dynamicType"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getDynamicType:()Ljava/lang/Object;
aload 1
if_acmpne 3
2: aload 0
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.isLegacyLayout:()Z
ifeq 5
aload 1
instanceof com.oracle.truffle.api.object.ObjectType
ifne 5
4: new java.lang.IllegalArgumentException
dup
ldc "dynamicType must be an instance of ObjectType"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
new com.oracle.truffle.object.Transition$ObjectTypeTransition
dup
aload 1
invokespecial com.oracle.truffle.object.Transition$ObjectTypeTransition.<init>:(Ljava/lang/Object;)V
astore 2
start local 2 6: aload 0
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.queryTransition:(Lcom/oracle/truffle/object/Transition;)Lcom/oracle/truffle/object/ShapeImpl;
astore 3
start local 3 7: aload 3
ifnull 9
8: aload 3
areturn
9: StackMap locals: com.oracle.truffle.object.Transition$ObjectTypeTransition com.oracle.truffle.object.ShapeImpl
StackMap stack:
aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
aload 0
aload 1
aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
aload 2
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allocator:()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
invokevirtual com.oracle.truffle.object.ShapeImpl.createShape:(Lcom/oracle/truffle/api/object/Layout;Ljava/lang/Object;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/api/object/Shape$Allocator;I)Lcom/oracle/truffle/object/ShapeImpl;
astore 4
start local 4 10: aload 0
aload 2
aload 4
invokevirtual com.oracle.truffle.object.ShapeImpl.addDirectTransition:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)V
11: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 12 1 newObjectType Ljava/lang/Object;
6 12 2 transition Lcom/oracle/truffle/object/Transition$ObjectTypeTransition;
7 12 3 cachedShape Lcom/oracle/truffle/object/ShapeImpl;
10 12 4 newShape Lcom/oracle/truffle/object/ShapeImpl;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
newObjectType
public com.oracle.truffle.object.ShapeImpl getRoot();
descriptor: ()Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.root:Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final boolean check(com.oracle.truffle.api.object.DynamicObject);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, 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;
aload 0
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 2 1 subject Lcom/oracle/truffle/api/object/DynamicObject;
MethodParameters:
Name Flags
subject
public final com.oracle.truffle.object.LayoutImpl getLayout();
descriptor: ()Lcom/oracle/truffle/object/LayoutImpl;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final java.lang.Object getSharedData();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
final java.lang.Object getSharedDataInternal();
descriptor: ()Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
final boolean allowPropertyAssumptions();
descriptor: ()Z
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
ldc 131072
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/ShapeImpl;
private com.oracle.truffle.object.ShapeImpl$PropertyAssumptions getOrCreatePropertyAssumptions();
descriptor: ()Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allowPropertyAssumptions:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.object.ShapeImpl.root:Lcom/oracle/truffle/object/ShapeImpl;
getfield com.oracle.truffle.object.ShapeImpl.sharedPropertyAssumptions:Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
astore 1
start local 1 3: aload 1
ifnonnull 7
4: new com.oracle.truffle.object.ShapeImpl$PropertyAssumptions
dup
aconst_null
invokespecial com.oracle.truffle.object.ShapeImpl$PropertyAssumptions.<init>:(Lcom/oracle/truffle/api/Assumption;)V
astore 1
5: getstatic com.oracle.truffle.object.ShapeImpl.PROPERTY_ASSUMPTIONS_UPDATER:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.root:Lcom/oracle/truffle/object/ShapeImpl;
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReferenceFieldUpdater.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 7
6: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyAssumptions:()Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
astore 1
7: StackMap locals: com.oracle.truffle.object.ShapeImpl$PropertyAssumptions
StackMap stack:
getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 8
aload 1
ifnonnull 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/object/ShapeImpl;
3 9 1 ass Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
private com.oracle.truffle.object.ShapeImpl$PropertyAssumptions getPropertyAssumptions();
descriptor: ()Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allowPropertyAssumptions:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.object.ShapeImpl.root:Lcom/oracle/truffle/object/ShapeImpl;
getfield com.oracle.truffle.object.ShapeImpl.sharedPropertyAssumptions:Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/ShapeImpl;
protected void invalidateAllPropertyAssumptions();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allowPropertyAssumptions:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyAssumptions:()Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
astore 1
start local 1 2: aload 1
ifnull 4
3: aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl$PropertyAssumptions.invalidateAllPropertyAssumptions:()V
4: StackMap locals: com.oracle.truffle.object.ShapeImpl$PropertyAssumptions
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/object/ShapeImpl;
2 5 1 propertyAssumptions Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
protected com.oracle.truffle.api.Assumption getSingleContextAssumption();
descriptor: ()Lcom/oracle/truffle/api/Assumption;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyAssumptions:()Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl$PropertyAssumptions.getSingleContextAssumption:()Lcom/oracle/truffle/api/Assumption;
areturn
3: StackMap locals: com.oracle.truffle.object.ShapeImpl$PropertyAssumptions
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/object/ShapeImpl;
1 4 1 propertyAssumptions Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
public final boolean hasTransitionWithKey(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getTransitionMapForRead:()Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: com.oracle.truffle.object.ShapeImpl java.lang.Object top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.object.Transition
astore 2
start local 2 2: aload 2
instanceof com.oracle.truffle.object.Transition$PropertyTransition
ifeq 5
3: aload 2
checkcast com.oracle.truffle.object.Transition$PropertyTransition
invokevirtual com.oracle.truffle.object.Transition$PropertyTransition.getProperty:()Lcom/oracle/truffle/api/object/Property;
invokevirtual com.oracle.truffle.api.object.Property.getKey:()Ljava/lang/Object;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 5
4: iconst_1
ireturn
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 7 1 key Ljava/lang/Object;
2 5 2 transition Lcom/oracle/truffle/object/Transition;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
public final com.oracle.truffle.object.ShapeImpl createSeparateShape(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.parent:Lcom/oracle/truffle/object/ShapeImpl;
ifnonnull 2
1: aload 0
aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.cloneRoot:(Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.parent:Lcom/oracle/truffle/object/ShapeImpl;
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.createSeparateShape:(Ljava/lang/Object;)Lcom/oracle/truffle/object/ShapeImpl;
invokevirtual com.oracle.truffle.object.ShapeImpl.cloneOnto:(Lcom/oracle/truffle/object/ShapeImpl;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 3 1 newSharedData Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
newSharedData
public final com.oracle.truffle.object.ShapeImpl changeType(com.oracle.truffle.api.object.ObjectType);
descriptor: (Lcom/oracle/truffle/api/object/ObjectType;)Lcom/oracle/truffle/object/ShapeImpl;
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.ShapeImpl.setDynamicType:(Ljava/lang/Object;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 1 1 newObjectType Lcom/oracle/truffle/api/object/ObjectType;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
newObjectType
protected com.oracle.truffle.object.ShapeImpl setFlags(int);
descriptor: (I)Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=6, args_size=2
start local 0 start local 1 0: iload 1
invokestatic com.oracle.truffle.object.ShapeImpl.checkObjectFlags:(I)I
pop
1: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getFlags:()I
iload 1
if_icmpne 3
2: aload 0
areturn
3: StackMap locals:
StackMap stack:
new com.oracle.truffle.object.Transition$ObjectFlagsTransition
dup
iload 1
invokespecial com.oracle.truffle.object.Transition$ObjectFlagsTransition.<init>:(I)V
astore 2
start local 2 4: aload 0
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.queryTransition:(Lcom/oracle/truffle/object/Transition;)Lcom/oracle/truffle/object/ShapeImpl;
astore 3
start local 3 5: aload 3
ifnull 7
6: aload 3
areturn
7: StackMap locals: com.oracle.truffle.object.Transition$ObjectFlagsTransition com.oracle.truffle.object.ShapeImpl
StackMap stack:
iload 1
aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
sipush -256
iand
ior
istore 4
start local 4 8: aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.objectType:Ljava/lang/Object;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
aload 2
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allocator:()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
iload 4
invokevirtual com.oracle.truffle.object.ShapeImpl.createShape:(Lcom/oracle/truffle/api/object/Layout;Ljava/lang/Object;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/api/object/Shape$Allocator;I)Lcom/oracle/truffle/object/ShapeImpl;
astore 5
start local 5 9: aload 0
aload 2
aload 5
invokevirtual com.oracle.truffle.object.ShapeImpl.addDirectTransition:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)V
10: aload 5
areturn
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 11 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 11 1 newShapeFlags I
4 11 2 transition Lcom/oracle/truffle/object/Transition$ObjectFlagsTransition;
5 11 3 cachedShape Lcom/oracle/truffle/object/ShapeImpl;
8 11 4 newFlags I
9 11 5 newShape Lcom/oracle/truffle/object/ShapeImpl;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
newShapeFlags
public final com.oracle.truffle.object.ShapeImpl reservePrimitiveExtensionArray();
descriptor: ()Lcom/oracle/truffle/object/ShapeImpl;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.hasPrimitiveExtensionArray:()Z
ifeq 2
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.hasPrimitiveArray:()Z
ifne 2
1: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout: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.addPrimitiveExtensionArray:(Lcom/oracle/truffle/object/ShapeImpl;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final java.lang.Iterable<com.oracle.truffle.api.object.Property> getProperties();
descriptor: ()Ljava/lang/Iterable;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
Signature: ()Ljava/lang/Iterable<Lcom/oracle/truffle/api/object/Property;>;
public final com.oracle.truffle.api.object.DynamicObject newInstance();
descriptor: ()Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
aload 0
invokevirtual com.oracle.truffle.object.LayoutImpl.newInstance:(Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/DynamicObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public final com.oracle.truffle.api.object.DynamicObjectFactory createFactory();
descriptor: ()Lcom/oracle/truffle/api/object/DynamicObjectFactory;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.isLegacyLayout:()Z
ifne 2
1: invokestatic com.oracle.truffle.object.DefaultLayout.unsupported:()Ljava/lang/UnsupportedOperationException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual com.oracle.truffle.object.ShapeImpl.getPropertyListInternal:(Z)Ljava/util/List;
astore 1
start local 1 3: aconst_null
astore 2
start local 2 4: aload 1
invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
astore 3
start local 3 5: goto 15
6: StackMap locals: java.util.List java.util.List java.util.ListIterator
StackMap stack:
aload 3
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 4
start local 4 7: getstatic com.oracle.truffle.object.ShapeImpl.$assertionsDisabled:Z
ifne 8
aload 4
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
invokevirtual com.oracle.truffle.object.LayoutImpl.getPrimitiveArrayLocation:()Lcom/oracle/truffle/api/object/Location;
if_acmpne 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: com.oracle.truffle.api.object.Property
StackMap stack:
aload 4
invokevirtual com.oracle.truffle.api.object.Property.getLocation:()Lcom/oracle/truffle/api/object/Location;
invokevirtual com.oracle.truffle.api.object.Location.isValue:()Z
ifeq 13
9: aload 2
ifnonnull 15
10: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
11: aload 2
aload 1
iconst_0
aload 3
invokeinterface java.util.ListIterator.previousIndex:()I
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
12: goto 15
StackMap locals:
StackMap stack:
13: aload 2
ifnull 15
14: aload 2
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 15: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.ListIterator.hasNext:()Z
ifne 6
end local 3 16: aload 2
ifnull 18
17: aload 2
astore 1
18: StackMap locals:
StackMap stack:
new com.oracle.truffle.object.ShapeImpl$DynamicObjectFactoryImpl
dup
aload 0
aload 1
invokespecial com.oracle.truffle.object.ShapeImpl$DynamicObjectFactoryImpl.<init>:(Lcom/oracle/truffle/object/ShapeImpl;Ljava/util/List;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/object/ShapeImpl;
3 19 1 properties Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
4 19 2 filtered Ljava/util/List<Lcom/oracle/truffle/api/object/Property;>;
5 16 3 iterator Ljava/util/ListIterator<Lcom/oracle/truffle/api/object/Property;>;
7 15 4 property Lcom/oracle/truffle/api/object/Property;
public java.lang.Object getMutex();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getRoot:()Lcom/oracle/truffle/object/ShapeImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
public com.oracle.truffle.api.object.Shape tryMerge(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 1 1 other Lcom/oracle/truffle/api/object/Shape;
MethodParameters:
Name Flags
other
public boolean isShared();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
ldc 65536
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/object/ShapeImpl;
public com.oracle.truffle.api.object.Shape makeSharedShape();
descriptor: ()Lcom/oracle/truffle/api/object/Shape;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.isShared:()Z
ifeq 2
1: new java.lang.UnsupportedOperationException
dup
ldc "makeSharedShape() can only be called on non-shared shapes."
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
new com.oracle.truffle.object.Transition$ShareShapeTransition
dup
invokespecial com.oracle.truffle.object.Transition$ShareShapeTransition.<init>:()V
astore 1
start local 1 3: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.queryTransition:(Lcom/oracle/truffle/object/Transition;)Lcom/oracle/truffle/object/ShapeImpl;
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 2
areturn
6: StackMap locals: com.oracle.truffle.object.Transition com.oracle.truffle.object.ShapeImpl
StackMap stack:
aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.layout:Lcom/oracle/truffle/object/LayoutImpl;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.sharedData:Ljava/lang/Object;
aload 0
aload 0
getfield com.oracle.truffle.object.ShapeImpl.objectType:Ljava/lang/Object;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.propertyMap:Lcom/oracle/truffle/object/PropertyMap;
aload 1
aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allocator:()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
aload 0
getfield com.oracle.truffle.object.ShapeImpl.flags:I
ldc 65536
ior
invokevirtual com.oracle.truffle.object.ShapeImpl.createShape:(Lcom/oracle/truffle/api/object/Layout;Ljava/lang/Object;Lcom/oracle/truffle/object/ShapeImpl;Ljava/lang/Object;Lcom/oracle/truffle/object/PropertyMap;Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/api/object/Shape$Allocator;I)Lcom/oracle/truffle/object/ShapeImpl;
astore 3
start local 3 7: aload 0
aload 1
aload 3
invokevirtual com.oracle.truffle.object.ShapeImpl.addDirectTransition:(Lcom/oracle/truffle/object/Transition;Lcom/oracle/truffle/object/ShapeImpl;)V
8: aload 3
areturn
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/ShapeImpl;
3 9 1 transition Lcom/oracle/truffle/object/Transition;
4 9 2 cachedShape Lcom/oracle/truffle/object/ShapeImpl;
7 9 3 newShape Lcom/oracle/truffle/object/ShapeImpl;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
protected static int getObjectFlags(int);
descriptor: (I)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
sipush 255
iand
iconst_0
iushr
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 flags I
MethodParameters:
Name Flags
flags
protected static int checkObjectFlags(int);
descriptor: (I)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iload 0
sipush -256
iand
ifeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "flags must be in the range [0, 255]"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 flags I
MethodParameters:
Name Flags
flags
public com.oracle.truffle.api.Assumption getPropertyAssumption(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/Assumption;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allowPropertyAssumptions:()Z
ifeq 4
1: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getOrCreatePropertyAssumptions:()Lcom/oracle/truffle/object/ShapeImpl$PropertyAssumptions;
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl$PropertyAssumptions.getPropertyAssumption:(Ljava/lang/Object;)Lcom/oracle/truffle/api/Assumption;
astore 2
start local 2 2: aload 2
ifnull 4
aload 2
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 4
3: aload 2
areturn
end local 2 4: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.utilities.NeverValidAssumption.INSTANCE:Lcom/oracle/truffle/api/utilities/NeverValidAssumption;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 5 1 key Ljava/lang/Object;
2 4 2 propertyAssumption Lcom/oracle/truffle/api/Assumption;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
key
protected boolean testPropertyFlags(java.util.function.IntPredicate);
descriptor: (Ljava/util/function/IntPredicate;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getProperties:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: com.oracle.truffle.object.ShapeImpl java.util.function.IntPredicate top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 2
start local 2 2: aload 1
aload 2
invokevirtual com.oracle.truffle.api.object.Property.getFlags:()I
invokeinterface java.util.function.IntPredicate.test:(I)Z
ifeq 4
3: goto 5
4: StackMap locals: com.oracle.truffle.object.ShapeImpl java.util.function.IntPredicate com.oracle.truffle.api.object.Property java.util.Iterator
StackMap stack:
iconst_0
ireturn
end local 2 5: StackMap locals: com.oracle.truffle.object.ShapeImpl java.util.function.IntPredicate top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 7 1 predicate Ljava/util/function/IntPredicate;
2 5 2 p Lcom/oracle/truffle/api/object/Property;
MethodParameters:
Name Flags
predicate
public boolean allPropertiesMatch(java.util.function.Predicate<com.oracle.truffle.api.object.Property>);
descriptor: (Ljava/util/function/Predicate;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getProperties:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: com.oracle.truffle.object.ShapeImpl java.util.function.Predicate top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.Property
astore 2
start local 2 2: aload 1
aload 2
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifeq 4
3: goto 5
4: StackMap locals: com.oracle.truffle.object.ShapeImpl java.util.function.Predicate com.oracle.truffle.api.object.Property java.util.Iterator
StackMap stack:
iconst_0
ireturn
end local 2 5: StackMap locals: com.oracle.truffle.object.ShapeImpl java.util.function.Predicate top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/object/ShapeImpl;
0 7 1 predicate Ljava/util/function/Predicate<Lcom/oracle/truffle/api/object/Property;>;
2 5 2 p Lcom/oracle/truffle/api/object/Property;
Signature: (Ljava/util/function/Predicate<Lcom/oracle/truffle/api/object/Property;>;)Z
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
predicate
public com.oracle.truffle.api.object.Shape append(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.append:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape removeProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.removeProperty:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape createSeparateShape(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.createSeparateShape:(Ljava/lang/Object;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape$Allocator allocator();
descriptor: ()Lcom/oracle/truffle/api/object/Shape$Allocator;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.allocator:()Lcom/oracle/truffle/object/ShapeImpl$BaseAllocator;
areturn
LocalVariableTable:
Start End Slot Name Signature
protected com.oracle.truffle.api.object.Shape setDynamicType(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.setDynamicType:(Ljava/lang/Object;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape addProperty(com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.addProperty:(Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape getParent();
descriptor: ()Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getParent:()Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape defineProperty(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;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=5
0: aload 0
aload 1
aload 2
iload 3
aload 4
invokevirtual com.oracle.truffle.object.ShapeImpl.defineProperty:(Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/object/LocationFactory;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape defineProperty(java.lang.Object, java.lang.Object, int);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;I)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
aload 2
iload 3
invokevirtual com.oracle.truffle.object.ShapeImpl.defineProperty:(Ljava/lang/Object;Ljava/lang/Object;I)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape replaceProperty(com.oracle.truffle.api.object.Property, com.oracle.truffle.api.object.Property);
descriptor: (Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.object.ShapeImpl.replaceProperty:(Lcom/oracle/truffle/api/object/Property;Lcom/oracle/truffle/api/object/Property;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Layout getLayout();
descriptor: ()Lcom/oracle/truffle/api/object/Layout;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getLayout:()Lcom/oracle/truffle/object/LayoutImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
protected com.oracle.truffle.api.object.Shape setFlags(int);
descriptor: (I)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
iload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.setFlags:(I)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape getRoot();
descriptor: ()Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.getRoot:()Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape changeType(com.oracle.truffle.api.object.ObjectType);
descriptor: (Lcom/oracle/truffle/api/object/ObjectType;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.truffle.object.ShapeImpl.changeType:(Lcom/oracle/truffle/api/object/ObjectType;)Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.oracle.truffle.api.object.Shape reservePrimitiveExtensionArray();
descriptor: ()Lcom/oracle/truffle/api/object/Shape;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.oracle.truffle.object.ShapeImpl.reservePrimitiveExtensionArray:()Lcom/oracle/truffle/object/ShapeImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "ShapeImpl.java"
NestMembers:
com.oracle.truffle.object.ShapeImpl$1 com.oracle.truffle.object.ShapeImpl$BaseAllocator com.oracle.truffle.object.ShapeImpl$DynamicObjectFactoryImpl com.oracle.truffle.object.ShapeImpl$PropertyAssumptions
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public abstract Allocator = com.oracle.truffle.api.object.Shape$Allocator of com.oracle.truffle.api.object.Shape
public abstract Pred = com.oracle.truffle.api.object.Shape$Pred of com.oracle.truffle.api.object.Shape
com.oracle.truffle.object.ShapeImpl$1
public abstract BaseAllocator = com.oracle.truffle.object.ShapeImpl$BaseAllocator of com.oracle.truffle.object.ShapeImpl
public final DynamicObjectFactoryImpl = com.oracle.truffle.object.ShapeImpl$DynamicObjectFactoryImpl of com.oracle.truffle.object.ShapeImpl
final PropertyAssumptions = com.oracle.truffle.object.ShapeImpl$PropertyAssumptions of com.oracle.truffle.object.ShapeImpl
public final AddPropertyTransition = com.oracle.truffle.object.Transition$AddPropertyTransition of com.oracle.truffle.object.Transition
final ObjectFlagsTransition = com.oracle.truffle.object.Transition$ObjectFlagsTransition of com.oracle.truffle.object.Transition
public final ObjectTypeTransition = com.oracle.truffle.object.Transition$ObjectTypeTransition of com.oracle.truffle.object.Transition
public abstract PropertyTransition = com.oracle.truffle.object.Transition$PropertyTransition of com.oracle.truffle.object.Transition
public final RemovePropertyTransition = com.oracle.truffle.object.Transition$RemovePropertyTransition of com.oracle.truffle.object.Transition
public final ShareShapeTransition = com.oracle.truffle.object.Transition$ShareShapeTransition of com.oracle.truffle.object.Transition