public final class com.oracle.truffle.js.nodes.control.SwitchNode extends com.oracle.truffle.js.nodes.control.StatementNode
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.js.nodes.control.SwitchNode
super_class: com.oracle.truffle.js.nodes.control.StatementNode
{
private final com.oracle.truffle.js.nodes.JavaScriptNode[] caseExpressions;
descriptor: [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Children()
private final com.oracle.truffle.js.nodes.JavaScriptNode[] statements;
descriptor: [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Children()
private final int[] jumptable;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
private final com.oracle.truffle.api.profiles.ConditionProfile[] conditionProfiles;
descriptor: [Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
private final boolean ordered;
descriptor: Z
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/control/SwitchNode;
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.control.SwitchNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(com.oracle.truffle.js.nodes.JavaScriptNode[], int[], com.oracle.truffle.js.nodes.JavaScriptNode[]);
descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;[I[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial com.oracle.truffle.js.nodes.control.StatementNode.<init>:()V
1: getstatic com.oracle.truffle.js.nodes.control.SwitchNode.$assertionsDisabled:Z
ifne 2
aload 1
arraylength
aload 2
arraylength
iconst_1
isub
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: com.oracle.truffle.js.nodes.control.SwitchNode com.oracle.truffle.js.nodes.JavaScriptNode[] int[] com.oracle.truffle.js.nodes.JavaScriptNode[]
StackMap stack:
aload 0
aload 1
putfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
3: aload 0
aload 3
putfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
4: aload 0
aload 2
putfield com.oracle.truffle.js.nodes.control.SwitchNode.jumptable:[I
5: aload 0
aload 2
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.isMonotonicallyIncreasing:([I)Z
putfield com.oracle.truffle.js.nodes.control.SwitchNode.ordered:Z
6: aload 0
aload 1
arraylength
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.createConditionProfiles:(I)[Lcom/oracle/truffle/api/profiles/ConditionProfile;
putfield com.oracle.truffle.js.nodes.control.SwitchNode.conditionProfiles:[Lcom/oracle/truffle/api/profiles/ConditionProfile;
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
0 8 1 caseExpressions [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
0 8 2 jumptable [I
0 8 3 statements [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
caseExpressions
jumptable
statements
private static boolean isMonotonicallyIncreasing(int[]);
descriptor: ([I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 7
2: StackMap locals: int
StackMap stack:
aload 0
iload 1
iaload
istore 2
start local 2 3: aload 0
iload 1
iconst_1
iadd
iaload
istore 3
start local 3 4: iload 2
iload 3
if_icmple 6
5: iconst_0
ireturn
end local 3 end local 2 6: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
7: iload 1
aload 0
arraylength
iconst_1
isub
if_icmplt 2
end local 1 8: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 table [I
1 8 1 i I
3 6 2 start I
4 6 3 end I
MethodParameters:
Name Flags
table
private static com.oracle.truffle.api.profiles.ConditionProfile[] createConditionProfiles(int);
descriptor: (I)[Lcom/oracle/truffle/api/profiles/ConditionProfile;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iload 0
anewarray com.oracle.truffle.api.profiles.ConditionProfile
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: com.oracle.truffle.api.profiles.ConditionProfile[] int
StackMap stack:
aload 1
iload 2
invokestatic com.oracle.truffle.api.profiles.ConditionProfile.createCountingProfile:()Lcom/oracle/truffle/api/profiles/ConditionProfile;
aastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 0
if_icmplt 3
end local 2 6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 length I
1 7 1 a [Lcom/oracle/truffle/api/profiles/ConditionProfile;
2 6 2 i I
MethodParameters:
Name Flags
length
public static com.oracle.truffle.js.nodes.control.SwitchNode create(com.oracle.truffle.js.nodes.JavaScriptNode[], int[], com.oracle.truffle.js.nodes.JavaScriptNode[]);
descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;[I[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/SwitchNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.truffle.js.nodes.control.SwitchNode
dup
aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.js.nodes.control.SwitchNode.<init>:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;[I[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 caseExpressions [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
0 1 1 jumptable [I
0 1 2 statements [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
caseExpressions
jumptable
statements
public boolean hasTag(java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.oracle.truffle.js.nodes.control.StatementNode.hasTag:(Ljava/lang/Class;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
0 3 1 tag Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;
Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;)Z
MethodParameters:
Name Flags
tag
public java.lang.Object getNodeObject();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "type"
getstatic com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag$Type.Conditional:Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag$Type;
invokevirtual com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag$Type.name:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.nodes.instrumentation.JSTags.createNodeObjectDescriptor:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/instrumentation/NodeObjectDescriptor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 39
aload 0
invokevirtual com.oracle.truffle.js.nodes.control.SwitchNode.needsMaterialization:()Z
ifeq 39
1: aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
anewarray com.oracle.truffle.js.nodes.JavaScriptNode
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 12
5: StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode[] int int
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 4
aaload
aload 1
invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.materializeInstrumentableNodes:(Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
astore 5
start local 5 6: aload 2
iload 4
aload 5
checkcast com.oracle.truffle.js.nodes.JavaScriptNode
ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag;
7: ldc "type"
getstatic com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBranchTag$Type.Condition:Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag$Type;
invokevirtual com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBranchTag$Type.name:()Ljava/lang/String;
invokestatic com.oracle.truffle.js.nodes.instrumentation.JSTags.createNodeObjectDescriptor:(Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/js/nodes/instrumentation/NodeObjectDescriptor;
aload 1
8: invokestatic com.oracle.truffle.js.nodes.instrumentation.JSTaggedExecutionNode.createForInput:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Class;Lcom/oracle/truffle/js/nodes/instrumentation/NodeObjectDescriptor;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aastore
9: aload 2
iload 4
aaload
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 4
aaload
if_acmpeq 11
10: iconst_1
istore 3
end local 5 11: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
if_icmplt 5
end local 4 13: aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
anewarray com.oracle.truffle.js.nodes.JavaScriptNode
astore 4
start local 4 14: iconst_0
istore 5
start local 5 15: goto 21
16: StackMap locals: com.oracle.truffle.js.nodes.control.SwitchNode java.util.Set com.oracle.truffle.js.nodes.JavaScriptNode[] int com.oracle.truffle.js.nodes.JavaScriptNode[] int
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 5
aaload
aload 1
invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.materializeInstrumentableNodes:(Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
astore 6
start local 6 17: aload 4
iload 5
aload 6
checkcast com.oracle.truffle.js.nodes.JavaScriptNode
ldc Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBlockTag;
aload 1
invokestatic com.oracle.truffle.js.nodes.instrumentation.JSTaggedExecutionNode.createFor:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/lang/Class;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aastore
18: aload 4
iload 5
aaload
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 5
aaload
if_acmpeq 20
19: iconst_1
istore 3
end local 6 20: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
21: iload 5
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
if_icmplt 16
end local 5 22: iload 3
ifne 24
23: aload 0
areturn
24: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 25: goto 29
26: StackMap locals: int
StackMap stack:
aload 2
iload 5
aaload
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 5
aaload
if_acmpne 28
27: aload 2
iload 5
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 5
aaload
aload 1
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aastore
28: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
29: iload 5
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
if_icmplt 26
end local 5 30: iconst_0
istore 5
start local 5 31: goto 35
32: StackMap locals:
StackMap stack:
aload 4
iload 5
aaload
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 5
aaload
if_acmpne 34
33: aload 4
iload 5
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 5
aaload
aload 1
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.cloneUninitialized:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aastore
34: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
35: iload 5
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
if_icmplt 32
end local 5 36: aload 2
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.jumptable:[I
aload 4
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.create:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;[I[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/SwitchNode;
astore 5
start local 5 37: aload 0
aload 5
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.transferSourceSectionAndTags:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
38: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 39: StackMap locals: com.oracle.truffle.js.nodes.control.SwitchNode java.util.Set
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
0 40 1 materializedTags Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
2 39 2 newCaseExpressions [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
3 39 3 wasChanged Z
4 13 4 i I
6 11 5 materialized Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
14 39 4 newStatements [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
15 22 5 i I
17 20 6 materialized Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
25 30 5 i I
31 36 5 i I
37 39 5 materialized Lcom/oracle/truffle/js/nodes/control/SwitchNode;
Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
MethodParameters:
Name Flags
materializedTags
private boolean needsMaterialization();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 6
3: StackMap locals: int int
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 2
aaload
invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 5
4: iconst_1
istore 1
5: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
if_icmpge 7
iload 1
ifeq 3
end local 2 7: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 8: goto 12
9: StackMap locals: int
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 2
aaload
invokestatic com.oracle.truffle.js.nodes.JSNodeUtil.isTaggedNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
ifne 11
10: iconst_1
istore 1
11: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
12: iload 2
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
if_icmpge 13
iload 1
ifeq 9
end local 2 13: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
1 14 1 needsMaterialization Z
2 7 2 i I
8 13 2 i I
public java.lang.Object execute(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
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.js.nodes.control.SwitchNode.ordered:Z
ifeq 2
1: aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.control.SwitchNode.executeOrdered:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.control.SwitchNode.executeDefault:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
0 3 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
MethodParameters:
Name Flags
frame
private java.lang.Object executeDefault(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.js.nodes.control.SwitchNode.identifyTargetCase:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
istore 2
start local 2 1: aload 0
aload 1
iload 2
invokevirtual com.oracle.truffle.js.nodes.control.SwitchNode.executeStatements:(Lcom/oracle/truffle/api/frame/VirtualFrame;I)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
0 2 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 2 2 statementStartIndex I
MethodParameters:
Name Flags
frame
private int identifyTargetCase(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 2
aaload
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.executeConditionAsBoolean:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Z
ifeq 4
3: goto 6
4: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
if_icmplt 2
6: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.jumptable:[I
iload 2
iaload
istore 3
start local 3 7: iload 3
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(I)V
8: iload 3
ireturn
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/js/nodes/control/SwitchNode;
0 9 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 9 2 i I
7 9 3 statementStartIndex I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
frame
private java.lang.Object executeStatements(com.oracle.truffle.api.frame.VirtualFrame, int);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;I)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.truffle.js.nodes.control.SwitchNode.EMPTY:Ljava/lang/Object;
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 6
3: StackMap locals: java.lang.Object int
StackMap stack:
iload 4
iload 2
if_icmplt 5
4: aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
iload 4
aaload
aload 1
invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
astore 3
5: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
arraylength
if_icmplt 3
end local 4 7: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
0 8 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 8 2 statementStartIndex I
1 8 3 result Ljava/lang/Object;
2 7 4 statementIndex I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
frame
statementStartIndex
private java.lang.Object executeOrdered(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=12, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
astore 2
start local 2 1: aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
astore 3
start local 3 2: aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.jumptable:[I
astore 4
start local 4 3: aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.conditionProfiles:[Lcom/oracle/truffle/api/profiles/ConditionProfile;
astore 5
start local 5 4: iconst_0
istore 6
start local 6 5: getstatic com.oracle.truffle.js.nodes.control.SwitchNode.EMPTY:Ljava/lang/Object;
astore 7
start local 7 6: iconst_0
istore 8
start local 8 7: goto 22
8: StackMap locals: com.oracle.truffle.js.nodes.control.SwitchNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.js.nodes.JavaScriptNode[] com.oracle.truffle.js.nodes.JavaScriptNode[] int[] com.oracle.truffle.api.profiles.ConditionProfile[] int java.lang.Object int
StackMap stack:
iload 6
ifne 9
aload 1
aload 2
iload 8
aaload
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.executeConditionAsBoolean:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Z
ifeq 10
9: StackMap locals:
StackMap stack:
iconst_1
istore 6
10: StackMap locals:
StackMap stack:
aload 4
iload 8
iaload
istore 9
start local 9 11: aload 4
iload 8
iconst_1
iadd
iaload
istore 10
start local 10 12: iload 9
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(I)V
13: iload 10
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(I)V
14: iload 9
iload 10
if_icmpeq 21
15: aload 5
iload 8
aaload
iload 6
invokevirtual com.oracle.truffle.api.profiles.ConditionProfile.profile:(Z)Z
ifeq 21
16: iload 9
istore 11
start local 11 17: goto 20
18: StackMap locals: int int int
StackMap stack:
aload 3
iload 11
aaload
aload 1
invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
astore 7
19: iinc 11 1
StackMap locals:
StackMap stack:
20: iload 11
iload 10
if_icmplt 18
end local 11 end local 10 end local 9 21: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
22: iload 8
aload 2
arraylength
if_icmplt 8
23: aload 4
iload 8
iaload
istore 9
start local 9 24: iload 9
invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(I)V
25: iload 9
istore 10
start local 10 26: goto 29
27: StackMap locals: int int
StackMap stack:
aload 3
iload 10
aaload
aload 1
invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
astore 7
28: iinc 10 1
StackMap locals:
StackMap stack:
29: iload 10
aload 3
arraylength
if_icmplt 27
end local 10 30: aload 7
areturn
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 31 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
0 31 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 31 2 caseExpressionsLocal [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
2 31 3 statementsLocal [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
3 31 4 jumptableLocal [I
4 31 5 conditionProfilesLocal [Lcom/oracle/truffle/api/profiles/ConditionProfile;
5 31 6 caseFound Z
6 31 7 result Ljava/lang/Object;
7 31 8 jumptableIdx I
11 21 9 statementStartIndex I
12 21 10 statementEndIndex I
17 21 11 statementIndex I
24 31 9 statementStartIndex I
26 30 10 statementIndex I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
frame
protected com.oracle.truffle.js.nodes.JavaScriptNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.caseExpressions:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 1
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.cloneUninitialized:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.jumptable:[I
aload 0
getfield com.oracle.truffle.js.nodes.control.SwitchNode.statements:[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
aload 1
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.cloneUninitialized:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;Ljava/util/Set;)[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
invokestatic com.oracle.truffle.js.nodes.control.SwitchNode.create:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;[I[Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/control/SwitchNode;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/control/SwitchNode;
0 1 1 materializedTags Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
materializedTags
}
SourceFile: "SwitchNode.java"
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
public final ControlFlowBlockTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBlockTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
public final ControlFlowBranchTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBranchTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
public final Type = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBranchTag$Type of com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowBranchTag
public final ControlFlowRootTag = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag of com.oracle.truffle.js.nodes.instrumentation.JSTags
public final Type = com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag$Type of com.oracle.truffle.js.nodes.instrumentation.JSTags$ControlFlowRootTag
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.NodeInfo(shortName = "switch")