public abstract class com.oracle.truffle.js.nodes.control.AbstractBlockNode extends com.oracle.truffle.js.nodes.control.StatementNode implements com.oracle.truffle.js.nodes.control.SequenceNode, com.oracle.truffle.api.nodes.BlockNode$ElementExecutor<com.oracle.truffle.js.nodes.JavaScriptNode>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.js.nodes.control.AbstractBlockNode
super_class: com.oracle.truffle.js.nodes.control.StatementNode
{
protected com.oracle.truffle.api.nodes.BlockNode<com.oracle.truffle.js.nodes.JavaScriptNode> block;
descriptor: Lcom/oracle/truffle/api/nodes/BlockNode;
flags: (0x0004) ACC_PROTECTED
Signature: Lcom/oracle/truffle/api/nodes/BlockNode<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
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/AbstractBlockNode;
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.AbstractBlockNode.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(com.oracle.truffle.js.nodes.JavaScriptNode[]);
descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.oracle.truffle.js.nodes.control.StatementNode.<init>:()V
1: aload 0
aload 1
aload 0
invokestatic com.oracle.truffle.api.nodes.BlockNode.create:([Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/BlockNode$ElementExecutor;)Lcom/oracle/truffle/api/nodes/BlockNode;
putfield com.oracle.truffle.js.nodes.control.AbstractBlockNode.block:Lcom/oracle/truffle/api/nodes/BlockNode;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/js/nodes/control/AbstractBlockNode;
0 3 1 statements [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
statements
public final com.oracle.truffle.js.nodes.JavaScriptNode[] getStatements();
descriptor: ()[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.js.nodes.control.AbstractBlockNode.block:Lcom/oracle/truffle/api/nodes/BlockNode;
invokevirtual com.oracle.truffle.api.nodes.BlockNode.getElements:()[Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.js.nodes.JavaScriptNode[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/control/AbstractBlockNode;
public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.nodes.control.AbstractBlockNode.block:Lcom/oracle/truffle/api/nodes/BlockNode;
aload 1
iconst_0
invokevirtual com.oracle.truffle.api.nodes.BlockNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/js/nodes/control/AbstractBlockNode;
0 2 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
MethodParameters:
Name Flags
frame
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=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.js.nodes.control.AbstractBlockNode.block:Lcom/oracle/truffle/api/nodes/BlockNode;
aload 1
iconst_0
invokevirtual com.oracle.truffle.api.nodes.BlockNode.executeGeneric:(Lcom/oracle/truffle/api/frame/VirtualFrame;I)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/nodes/control/AbstractBlockNode;
0 1 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
MethodParameters:
Name Flags
frame
public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.js.nodes.JavaScriptNode, int, int);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/nodes/JavaScriptNode;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
aload 1
invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;)V
1: return
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/js/nodes/control/AbstractBlockNode;
0 2 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 2 2 node Lcom/oracle/truffle/js/nodes/JavaScriptNode;
0 2 3 index I
0 2 4 argument I
MethodParameters:
Name Flags
frame
node
index
argument
public java.lang.Object executeGeneric(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.js.nodes.JavaScriptNode, int, int);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/nodes/JavaScriptNode;II)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
aload 1
invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Ljava/lang/Object;
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/js/nodes/control/AbstractBlockNode;
0 1 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 1 2 node Lcom/oracle/truffle/js/nodes/JavaScriptNode;
0 1 3 index I
0 1 4 argument I
MethodParameters:
Name Flags
frame
node
index
argument
protected static com.oracle.truffle.js.nodes.JavaScriptNode filterStatements(com.oracle.truffle.js.nodes.JavaScriptNode[], boolean);
descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: iload 1
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 24
4: StackMap locals: java.util.ArrayList int int
StackMap stack:
aload 0
iload 4
aaload
astore 5
start local 5 5: aload 5
instanceof com.oracle.truffle.js.nodes.control.EmptyNode
ifne 6
aload 5
instanceof com.oracle.truffle.js.nodes.control.AbstractBlockNode
ifne 6
aload 5
instanceof com.oracle.truffle.js.nodes.control.DiscardResultNode
ifne 6
aload 5
instanceof com.oracle.truffle.js.nodes.access.JSConstantNode$JSConstantUndefinedNode
ifeq 21
6: StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode
StackMap stack:
aload 5
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;
invokevirtual com.oracle.truffle.js.nodes.JavaScriptNode.hasTag:(Ljava/lang/Class;)Z
ifne 21
7: aload 2
ifnonnull 9
8: aload 0
iconst_0
iload 4
invokestatic com.oracle.truffle.js.nodes.control.AbstractBlockNode.newListFromRange:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;II)Ljava/util/ArrayList;
astore 2
9: StackMap locals:
StackMap stack:
aload 5
instanceof com.oracle.truffle.js.nodes.control.AbstractBlockNode
ifeq 12
10: aload 2
aload 5
checkcast com.oracle.truffle.js.nodes.control.AbstractBlockNode
invokevirtual com.oracle.truffle.js.nodes.control.AbstractBlockNode.getStatements:()[Lcom/oracle/truffle/js/nodes/JavaScriptNode;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
11: goto 18
StackMap locals:
StackMap stack:
12: aload 5
instanceof com.oracle.truffle.js.nodes.control.DiscardResultNode
ifeq 17
13: aload 5
checkcast com.oracle.truffle.js.nodes.control.DiscardResultNode
astore 6
start local 6 14: aload 2
aload 6
invokevirtual com.oracle.truffle.js.nodes.control.DiscardResultNode.getOperand:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
15: aload 5
aload 6
invokevirtual com.oracle.truffle.js.nodes.control.DiscardResultNode.getOperand:()Lcom/oracle/truffle/js/nodes/JavaScriptNode;
invokestatic com.oracle.truffle.js.nodes.control.AbstractBlockNode.transferSourceSectionAndTags:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
end local 6 16: goto 18
17: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.js.nodes.control.AbstractBlockNode.$assertionsDisabled:Z
ifne 18
aload 5
instanceof com.oracle.truffle.js.nodes.control.EmptyNode
ifne 18
aload 5
instanceof com.oracle.truffle.js.nodes.access.JSConstantNode$JSConstantUndefinedNode
ifne 18
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
18: StackMap locals:
StackMap stack:
iload 1
ifeq 23
iload 4
aload 0
arraylength
iconst_1
isub
if_icmpne 23
aload 5
instanceof com.oracle.truffle.js.nodes.control.ExprBlockNode
ifne 23
aload 5
instanceof com.oracle.truffle.js.nodes.control.EmptyNode
ifne 23
19: iconst_0
istore 3
20: goto 23
21: StackMap locals:
StackMap stack:
aload 2
ifnull 23
22: aload 2
aload 5
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 5 23: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
24: iload 4
aload 0
arraylength
if_icmplt 4
end local 4 25: aload 2
ifnonnull 26
aload 0
goto 27
StackMap locals:
StackMap stack:
26: aload 2
aload 2
invokevirtual java.util.ArrayList.size:()I
anewarray com.oracle.truffle.js.nodes.JavaScriptNode
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.truffle.js.nodes.JavaScriptNode[]
StackMap locals:
StackMap stack: com.oracle.truffle.js.nodes.JavaScriptNode[]
27: astore 4
start local 4 28: iload 3
ifeq 36
29: aload 4
arraylength
ifne 31
30: invokestatic com.oracle.truffle.js.nodes.control.EmptyNode.create:()Lcom/oracle/truffle/js/nodes/control/EmptyNode;
areturn
31: StackMap locals: com.oracle.truffle.js.nodes.JavaScriptNode[]
StackMap stack:
aload 4
arraylength
iconst_1
if_icmpne 33
32: aload 4
iconst_0
aaload
areturn
33: StackMap locals:
StackMap stack:
aload 4
arraylength
iconst_2
if_icmpne 35
34: aload 4
iconst_0
aaload
aload 4
iconst_1
aaload
invokestatic com.oracle.truffle.js.nodes.binary.DualNode.create:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
areturn
35: StackMap locals:
StackMap stack:
new com.oracle.truffle.js.nodes.control.ExprBlockNode
dup
aload 4
invokespecial com.oracle.truffle.js.nodes.control.ExprBlockNode.<init>:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
areturn
36: StackMap locals:
StackMap stack:
aload 4
arraylength
ifne 38
37: invokestatic com.oracle.truffle.js.nodes.control.EmptyNode.create:()Lcom/oracle/truffle/js/nodes/control/EmptyNode;
areturn
38: StackMap locals:
StackMap stack:
aload 4
arraylength
iconst_1
if_icmpne 40
39: aload 4
iconst_0
aaload
invokestatic com.oracle.truffle.js.nodes.control.DiscardResultNode.create:(Lcom/oracle/truffle/js/nodes/JavaScriptNode;)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
areturn
40: StackMap locals:
StackMap stack:
new com.oracle.truffle.js.nodes.control.VoidBlockNode
dup
aload 4
invokespecial com.oracle.truffle.js.nodes.control.VoidBlockNode.<init>:([Lcom/oracle/truffle/js/nodes/JavaScriptNode;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 originalStatements [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
0 41 1 exprBlock Z
1 41 2 filteredStatements Ljava/util/ArrayList<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
2 41 3 returnExprBlock Z
3 25 4 i I
5 23 5 statement Lcom/oracle/truffle/js/nodes/JavaScriptNode;
14 16 6 voidNode Lcom/oracle/truffle/js/nodes/control/DiscardResultNode;
28 41 4 finalStatements [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
MethodParameters:
Name Flags
originalStatements
exprBlock
protected static java.util.ArrayList<com.oracle.truffle.js.nodes.JavaScriptNode> newListFromRange(com.oracle.truffle.js.nodes.JavaScriptNode[], int, int);
descriptor: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;II)Ljava/util/ArrayList;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
aload 0
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
iload 1
iload 2
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 statements [Lcom/oracle/truffle/js/nodes/JavaScriptNode;
0 1 1 from I
0 1 2 to I
Signature: ([Lcom/oracle/truffle/js/nodes/JavaScriptNode;II)Ljava/util/ArrayList<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
MethodParameters:
Name Flags
statements
from
to
public java.lang.Object executeGeneric(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.nodes.Node, int, int);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/nodes/Node;II)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=5
0: aload 0
aload 1
aload 2
checkcast com.oracle.truffle.js.nodes.JavaScriptNode
iload 3
iload 4
invokevirtual com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeGeneric:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/nodes/JavaScriptNode;II)Ljava/lang/Object;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void executeVoid(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.nodes.Node, int, int);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/nodes/Node;II)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=5
0: aload 0
aload 1
aload 2
checkcast com.oracle.truffle.js.nodes.JavaScriptNode
iload 3
iload 4
invokevirtual com.oracle.truffle.js.nodes.control.AbstractBlockNode.executeVoid:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/js/nodes/JavaScriptNode;II)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lcom/oracle/truffle/js/nodes/control/StatementNode;Lcom/oracle/truffle/js/nodes/control/SequenceNode;Lcom/oracle/truffle/api/nodes/BlockNode$ElementExecutor<Lcom/oracle/truffle/js/nodes/JavaScriptNode;>;
SourceFile: "AbstractBlockNode.java"
InnerClasses:
public final RootBodyTag = com.oracle.truffle.api.instrumentation.StandardTags$RootBodyTag of com.oracle.truffle.api.instrumentation.StandardTags
public abstract ElementExecutor = com.oracle.truffle.api.nodes.BlockNode$ElementExecutor of com.oracle.truffle.api.nodes.BlockNode
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public final JSConstantUndefinedNode = com.oracle.truffle.js.nodes.access.JSConstantNode$JSConstantUndefinedNode of com.oracle.truffle.js.nodes.access.JSConstantNode
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.NodeInfo(cost = com.oracle.truffle.api.nodes.NodeCost.NONE:Lcom/oracle/truffle/api/nodes/NodeCost;)