class com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode extends com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode
super_class: com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode
{
private final com.oracle.truffle.api.profiles.BranchProfile intValueBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile doubleValueBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.BranchProfile toObjectBranch;
descriptor: Lcom/oracle/truffle/api/profiles/BranchProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile inBoundsFastCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile inBoundsCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile supportedCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile supportedContiguousCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.profiles.ConditionProfile supportedHolesCondition;
descriptor: Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.js.runtime.array.ScriptArray$ProfileHolder profile;
descriptor: Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
flags: (0x0012) ACC_PRIVATE, 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=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
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.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.js.runtime.array.ScriptArray, com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode);
descriptor: (Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode.<init>:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;)V
1: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.intValueBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
2: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.doubleValueBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
3: aload 0
invokestatic com.oracle.truffle.api.profiles.BranchProfile.create:()Lcom/oracle/truffle/api/profiles/BranchProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.toObjectBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
4: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.inBoundsFastCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
5: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.inBoundsCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
6: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.supportedCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
7: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.supportedContiguousCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
8: aload 0
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createBinaryProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.supportedHolesCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
9: aload 0
invokestatic com.oracle.truffle.js.runtime.array.dyn.AbstractWritableArray.createSetSupportedProfile:()Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
putfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/js/nodes/access/WriteElementNode$DoubleArrayWriteElementCacheNode;
0 11 1 arrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 11 2 arrayCacheNext Lcom/oracle/truffle/js/nodes/access/WriteElementNode$ArrayWriteElementCacheNode;
MethodParameters:
Name Flags
arrayType
arrayCacheNext
protected boolean executeSetArray(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.ScriptArray, long, java.lang.Object, com.oracle.truffle.js.nodes.access.WriteElementNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/ScriptArray;JLjava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 6 0: aload 0
aload 2
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.cast:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;)Lcom/oracle/truffle/js/runtime/array/ScriptArray;
checkcast com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray
astore 7
start local 7 1: aload 5
instanceof java.lang.Double
ifeq 5
2: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.doubleValueBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
3: aload 5
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dstore 8
start local 8 4: goto 11
end local 8 StackMap locals: com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray
StackMap stack:
5: aload 5
instanceof java.lang.Integer
ifeq 9
6: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.intValueBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
7: aload 5
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2d
dstore 8
start local 8 8: goto 11
end local 8 9: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.toObjectBranch:Lcom/oracle/truffle/api/profiles/BranchProfile;
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
10: aload 0
aload 7
aload 1
lload 3
aload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.toObject:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/dyn/AbstractWritableArray;
aload 1
lload 3
aload 5
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.setArrayAndWrite:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
ireturn
start local 8 11: StackMap locals: double
StackMap stack:
aload 0
aload 1
aload 7
lload 3
dload 8
aload 6
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.executeWithDoubleValueInner:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/AbstractDoubleArray;JDLcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
ireturn
end local 8 end local 7 end local 6 end local 5 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/js/nodes/access/WriteElementNode$DoubleArrayWriteElementCacheNode;
0 12 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 12 2 array Lcom/oracle/truffle/js/runtime/array/ScriptArray;
0 12 3 index J
0 12 5 value Ljava/lang/Object;
0 12 6 root Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
1 12 7 doubleArray Lcom/oracle/truffle/js/runtime/array/dyn/AbstractDoubleArray;
4 5 8 doubleValue D
8 9 8 doubleValue D
11 12 8 doubleValue D
MethodParameters:
Name Flags
target
array
index
value
root
private boolean executeWithDoubleValueInner(com.oracle.truffle.api.object.DynamicObject, com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray, long, double, com.oracle.truffle.js.nodes.access.WriteElementNode);
descriptor: (Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/AbstractDoubleArray;JDLcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 5 start local 7 0: getstatic com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.$assertionsDisabled:Z
ifne 1
aload 2
instanceof com.oracle.truffle.js.runtime.array.dyn.HolesDoubleArray
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
lload 3
aload 7
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.nonHolesArrayNeedsSlowSet:(Lcom/oracle/truffle/api/object/DynamicObject;Lcom/oracle/truffle/js/runtime/array/dyn/AbstractWritableArray;JLcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
ifeq 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
lload 3
l2i
istore 8
start local 8 4: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.inBoundsFastCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.isInBoundsFast:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 7
5: aload 2
aload 1
iload 8
dload 5
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.setInBoundsFast:(Lcom/oracle/truffle/api/object/DynamicObject;ID)V
6: iconst_1
ireturn
7: StackMap locals: int
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.inBoundsCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
iload 8
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.isInBounds:(Lcom/oracle/truffle/api/object/DynamicObject;I)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 10
8: aload 2
aload 1
iload 8
dload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.setInBounds:(Lcom/oracle/truffle/api/object/DynamicObject;IDLcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;)V
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.supportedCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.isSupported:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 13
11: aload 2
aload 1
iload 8
dload 5
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.profile:Lcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.setSupported:(Lcom/oracle/truffle/api/object/DynamicObject;IDLcom/oracle/truffle/js/runtime/array/ScriptArray$ProfileHolder;)V
12: iconst_1
ireturn
13: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.supportedContiguousCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
instanceof com.oracle.truffle.js.runtime.array.dyn.AbstractContiguousDoubleArray
ifne 14
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.isSupportedContiguous:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifeq 14
iconst_1
goto 15
StackMap locals:
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile
14: iconst_0
StackMap locals: com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode com.oracle.truffle.api.object.DynamicObject com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray long double com.oracle.truffle.js.nodes.access.WriteElementNode int
StackMap stack: com.oracle.truffle.api.profiles.ConditionProfile int
15: invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 18
16: aload 2
aload 1
lload 3
dload 5
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.toContiguous:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/dyn/AbstractWritableArray;
astore 9
start local 9 17: goto 23
end local 9 StackMap locals:
StackMap stack:
18: aload 0
getfield com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.supportedHolesCondition:Lcom/oracle/truffle/api/profiles/ConditionProfile;
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.isSupportedHoles:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 21
19: aload 2
aload 1
lload 3
dload 5
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.toHoles:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/dyn/AbstractDoubleArray;
astore 9
start local 9 20: goto 23
end local 9 21: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.$assertionsDisabled:Z
ifne 22
aload 2
aload 1
lload 3
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.isSparse:(Lcom/oracle/truffle/api/object/DynamicObject;J)Z
ifne 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
aload 2
aload 1
lload 3
dload 5
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual com.oracle.truffle.js.runtime.array.dyn.AbstractDoubleArray.toSparse:(Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;)Lcom/oracle/truffle/js/runtime/array/SparseArray;
astore 9
start local 9 23: StackMap locals: com.oracle.truffle.js.runtime.array.ScriptArray
StackMap stack:
aload 0
aload 9
aload 1
lload 3
dload 5
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aload 7
invokevirtual com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode.setArrayAndWrite:(Lcom/oracle/truffle/js/runtime/array/ScriptArray;Lcom/oracle/truffle/api/object/DynamicObject;JLjava/lang/Object;Lcom/oracle/truffle/js/nodes/access/WriteElementNode;)Z
ireturn
end local 9 end local 8 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/oracle/truffle/js/nodes/access/WriteElementNode$DoubleArrayWriteElementCacheNode;
0 24 1 target Lcom/oracle/truffle/api/object/DynamicObject;
0 24 2 doubleArray Lcom/oracle/truffle/js/runtime/array/dyn/AbstractDoubleArray;
0 24 3 index J
0 24 5 doubleValue D
0 24 7 root Lcom/oracle/truffle/js/nodes/access/WriteElementNode;
4 24 8 iIndex I
17 18 9 toArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
20 21 9 toArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
23 24 9 toArrayType Lcom/oracle/truffle/js/runtime/array/ScriptArray;
MethodParameters:
Name Flags
target
doubleArray
index
doubleValue
root
}
SourceFile: "WriteElementNode.java"
NestHost: com.oracle.truffle.js.nodes.access.WriteElementNode
InnerClasses:
abstract ArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$ArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
private DoubleArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$DoubleArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
private abstract RecursiveCachedArrayWriteElementCacheNode = com.oracle.truffle.js.nodes.access.WriteElementNode$RecursiveCachedArrayWriteElementCacheNode of com.oracle.truffle.js.nodes.access.WriteElementNode
public abstract ProfileHolder = com.oracle.truffle.js.runtime.array.ScriptArray$ProfileHolder of com.oracle.truffle.js.runtime.array.ScriptArray