class jdk.nashorn.internal.codegen.Lower$3 extends jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.nashorn.internal.codegen.Lower$3
super_class: jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor
{
final jdk.nashorn.internal.codegen.Lower this$0;
descriptor: Ljdk/nashorn/internal/codegen/Lower;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final jdk.nashorn.internal.ir.ThrowNode val$rethrow;
descriptor: Ljdk/nashorn/internal/ir/ThrowNode;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final jdk.nashorn.internal.ir.Block val$finallyBlock;
descriptor: Ljdk/nashorn/internal/ir/Block;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final jdk.nashorn.internal.ir.FunctionNode val$fn;
descriptor: Ljdk/nashorn/internal/ir/FunctionNode;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.util.ArrayList val$inlinedFinallies;
descriptor: Ljava/util/ArrayList;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(jdk.nashorn.internal.codegen.Lower, jdk.nashorn.internal.ir.ThrowNode, jdk.nashorn.internal.ir.Block, jdk.nashorn.internal.ir.FunctionNode, java.util.ArrayList);
descriptor: (Ljdk/nashorn/internal/codegen/Lower;Ljdk/nashorn/internal/ir/ThrowNode;Ljdk/nashorn/internal/ir/Block;Ljdk/nashorn/internal/ir/FunctionNode;Ljava/util/ArrayList;)V
flags: (0x0000)
Code:
stack=2, locals=6, args_size=6
start local 0 0: aload 0
aload 1
putfield jdk.nashorn.internal.codegen.Lower$3.this$0:Ljdk/nashorn/internal/codegen/Lower;
aload 0
aload 2
putfield jdk.nashorn.internal.codegen.Lower$3.val$rethrow:Ljdk/nashorn/internal/ir/ThrowNode;
aload 0
aload 3
putfield jdk.nashorn.internal.codegen.Lower$3.val$finallyBlock:Ljdk/nashorn/internal/ir/Block;
aload 0
aload 4
putfield jdk.nashorn.internal.codegen.Lower$3.val$fn:Ljdk/nashorn/internal/ir/FunctionNode;
aload 0
aload 5
putfield jdk.nashorn.internal.codegen.Lower$3.val$inlinedFinallies:Ljava/util/ArrayList;
aload 0
invokespecial jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/codegen/Lower$3;
MethodParameters:
Name Flags
this$0 final
val$rethrow final
val$finallyBlock final
val$fn final
val$inlinedFinallies final
public boolean enterFunctionNode(jdk.nashorn.internal.ir.FunctionNode);
descriptor: (Ljdk/nashorn/internal/ir/FunctionNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/codegen/Lower$3;
0 1 1 functionNode Ljdk/nashorn/internal/ir/FunctionNode;
MethodParameters:
Name Flags
functionNode final
public jdk.nashorn.internal.ir.Node leaveThrowNode(jdk.nashorn.internal.ir.ThrowNode);
descriptor: (Ljdk/nashorn/internal/ir/ThrowNode;)Ljdk/nashorn/internal/ir/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$rethrow:Ljdk/nashorn/internal/ir/ThrowNode;
aload 1
if_acmpne 2
1: new jdk.nashorn.internal.ir.BlockStatement
dup
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$finallyBlock:Ljdk/nashorn/internal/ir/Block;
aload 1
invokestatic jdk.nashorn.internal.codegen.Lower.prependFinally:(Ljdk/nashorn/internal/ir/Block;Ljdk/nashorn/internal/ir/Statement;)Ljdk/nashorn/internal/ir/Block;
invokespecial jdk.nashorn.internal.ir.BlockStatement.<init>:(Ljdk/nashorn/internal/ir/Block;)V
areturn
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/Lower$3;
0 3 1 throwNode Ljdk/nashorn/internal/ir/ThrowNode;
MethodParameters:
Name Flags
throwNode final
public jdk.nashorn.internal.ir.Node leaveBreakNode(jdk.nashorn.internal.ir.BreakNode);
descriptor: (Ljdk/nashorn/internal/ir/BreakNode;)Ljdk/nashorn/internal/ir/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.codegen.Lower$3.leaveJumpStatement:(Ljdk/nashorn/internal/ir/JumpStatement;)Ljdk/nashorn/internal/ir/Node;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/codegen/Lower$3;
0 1 1 breakNode Ljdk/nashorn/internal/ir/BreakNode;
MethodParameters:
Name Flags
breakNode final
public jdk.nashorn.internal.ir.Node leaveContinueNode(jdk.nashorn.internal.ir.ContinueNode);
descriptor: (Ljdk/nashorn/internal/ir/ContinueNode;)Ljdk/nashorn/internal/ir/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.nashorn.internal.codegen.Lower$3.leaveJumpStatement:(Ljdk/nashorn/internal/ir/JumpStatement;)Ljdk/nashorn/internal/ir/Node;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/codegen/Lower$3;
0 1 1 continueNode Ljdk/nashorn/internal/ir/ContinueNode;
MethodParameters:
Name Flags
continueNode final
private jdk.nashorn.internal.ir.Node leaveJumpStatement(jdk.nashorn.internal.ir.JumpStatement);
descriptor: (Ljdk/nashorn/internal/ir/JumpStatement;)Ljdk/nashorn/internal/ir/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.lc:Ljdk/nashorn/internal/ir/LexicalContext;
invokevirtual jdk.nashorn.internal.ir.JumpStatement.getTarget:(Ljdk/nashorn/internal/ir/LexicalContext;)Ljdk/nashorn/internal/ir/BreakableNode;
ifnonnull 2
1: aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$fn:Ljdk/nashorn/internal/ir/FunctionNode;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$inlinedFinallies:Ljava/util/ArrayList;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$finallyBlock:Ljdk/nashorn/internal/ir/Block;
aload 1
invokestatic jdk.nashorn.internal.codegen.Lower.prependFinally:(Ljdk/nashorn/internal/ir/Block;Ljdk/nashorn/internal/ir/Statement;)Ljdk/nashorn/internal/ir/Block;
invokestatic jdk.nashorn.internal.codegen.Lower.createJumpToInlinedFinally:(Ljdk/nashorn/internal/ir/FunctionNode;Ljava/util/List;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/JumpToInlinedFinally;
areturn
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/codegen/Lower$3;
0 3 1 jump Ljdk/nashorn/internal/ir/JumpStatement;
MethodParameters:
Name Flags
jump final
public jdk.nashorn.internal.ir.Node leaveReturnNode(jdk.nashorn.internal.ir.ReturnNode);
descriptor: (Ljdk/nashorn/internal/ir/ReturnNode;)Ljdk/nashorn/internal/ir/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=13, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.nashorn.internal.ir.ReturnNode.getExpression:()Ljdk/nashorn/internal/ir/Expression;
astore 2
start local 2 1: aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$finallyBlock:Ljdk/nashorn/internal/ir/Block;
invokestatic jdk.nashorn.internal.codegen.Lower.isTerminalFinally:(Ljdk/nashorn/internal/ir/Block;)Z
ifeq 10
2: aload 2
ifnonnull 4
3: aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$fn:Ljdk/nashorn/internal/ir/FunctionNode;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$inlinedFinallies:Ljava/util/ArrayList;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$finallyBlock:Ljdk/nashorn/internal/ir/Block;
invokestatic jdk.nashorn.internal.codegen.Lower.ensureUniqueNamesIn:(Ljdk/nashorn/internal/ir/Node;)Ljdk/nashorn/internal/ir/Node;
checkcast jdk.nashorn.internal.ir.Block
invokestatic jdk.nashorn.internal.codegen.Lower.createJumpToInlinedFinally:(Ljdk/nashorn/internal/ir/FunctionNode;Ljava/util/List;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/JumpToInlinedFinally;
areturn
4: StackMap locals: jdk.nashorn.internal.ir.Expression
StackMap stack:
new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 5: aload 1
invokevirtual jdk.nashorn.internal.ir.ReturnNode.getLineNumber:()I
istore 4
start local 4 6: aload 1
invokevirtual jdk.nashorn.internal.ir.ReturnNode.getToken:()J
lstore 5
start local 5 7: aload 3
new jdk.nashorn.internal.ir.ExpressionStatement
dup
iload 4
lload 5
aload 1
invokevirtual jdk.nashorn.internal.ir.ReturnNode.getFinish:()I
aload 2
invokespecial jdk.nashorn.internal.ir.ExpressionStatement.<init>:(IJILjdk/nashorn/internal/ir/Expression;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aload 3
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$fn:Ljdk/nashorn/internal/ir/FunctionNode;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$inlinedFinallies:Ljava/util/ArrayList;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$finallyBlock:Ljdk/nashorn/internal/ir/Block;
invokestatic jdk.nashorn.internal.codegen.Lower.ensureUniqueNamesIn:(Ljdk/nashorn/internal/ir/Node;)Ljdk/nashorn/internal/ir/Node;
checkcast jdk.nashorn.internal.ir.Block
invokestatic jdk.nashorn.internal.codegen.Lower.createJumpToInlinedFinally:(Ljdk/nashorn/internal/ir/FunctionNode;Ljava/util/List;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/JumpToInlinedFinally;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: new jdk.nashorn.internal.ir.BlockStatement
dup
iload 4
new jdk.nashorn.internal.ir.Block
dup
lload 5
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$finallyBlock:Ljdk/nashorn/internal/ir/Block;
invokevirtual jdk.nashorn.internal.ir.Block.getFinish:()I
aload 3
invokespecial jdk.nashorn.internal.ir.Block.<init>:(JILjava/util/List;)V
invokespecial jdk.nashorn.internal.ir.BlockStatement.<init>:(ILjdk/nashorn/internal/ir/Block;)V
areturn
end local 5 end local 4 end local 3 10: StackMap locals:
StackMap stack:
aload 2
ifnull 11
aload 2
instanceof jdk.nashorn.internal.ir.LiteralNode$PrimitiveLiteralNode
ifne 11
aload 2
instanceof jdk.nashorn.internal.ir.IdentNode
ifeq 12
getstatic jdk.nashorn.internal.codegen.CompilerConstants.RETURN:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.symbolName:()Ljava/lang/String;
aload 2
checkcast jdk.nashorn.internal.ir.IdentNode
invokevirtual jdk.nashorn.internal.ir.IdentNode.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$fn:Ljdk/nashorn/internal/ir/FunctionNode;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$inlinedFinallies:Ljava/util/ArrayList;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$finallyBlock:Ljdk/nashorn/internal/ir/Block;
aload 1
invokestatic jdk.nashorn.internal.codegen.Lower.prependFinally:(Ljdk/nashorn/internal/ir/Block;Ljdk/nashorn/internal/ir/Statement;)Ljdk/nashorn/internal/ir/Block;
invokestatic jdk.nashorn.internal.codegen.Lower.createJumpToInlinedFinally:(Ljdk/nashorn/internal/ir/FunctionNode;Ljava/util/List;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/JumpToInlinedFinally;
areturn
12: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 13: aload 1
invokevirtual jdk.nashorn.internal.ir.ReturnNode.getLineNumber:()I
istore 4
start local 4 14: aload 1
invokevirtual jdk.nashorn.internal.ir.ReturnNode.getToken:()J
lstore 5
start local 5 15: aload 1
invokevirtual jdk.nashorn.internal.ir.ReturnNode.getFinish:()I
istore 7
start local 7 16: new jdk.nashorn.internal.ir.IdentNode
dup
aload 2
invokevirtual jdk.nashorn.internal.ir.Expression.getToken:()J
aload 2
invokevirtual jdk.nashorn.internal.ir.Expression.getFinish:()I
getstatic jdk.nashorn.internal.codegen.CompilerConstants.RETURN:Ljdk/nashorn/internal/codegen/CompilerConstants;
invokevirtual jdk.nashorn.internal.codegen.CompilerConstants.symbolName:()Ljava/lang/String;
invokespecial jdk.nashorn.internal.ir.IdentNode.<init>:(JILjava/lang/String;)V
astore 8
start local 8 17: aload 3
new jdk.nashorn.internal.ir.ExpressionStatement
dup
iload 4
lload 5
iload 7
new jdk.nashorn.internal.ir.BinaryNode
dup
aload 1
invokevirtual jdk.nashorn.internal.ir.ReturnNode.getToken:()J
getstatic jdk.nashorn.internal.parser.TokenType.ASSIGN:Ljdk/nashorn/internal/parser/TokenType;
invokestatic jdk.nashorn.internal.parser.Token.recast:(JLjdk/nashorn/internal/parser/TokenType;)J
aload 8
aload 2
invokespecial jdk.nashorn.internal.ir.BinaryNode.<init>:(JLjdk/nashorn/internal/ir/Expression;Ljdk/nashorn/internal/ir/Expression;)V
invokespecial jdk.nashorn.internal.ir.ExpressionStatement.<init>:(IJILjdk/nashorn/internal/ir/Expression;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
18: aload 3
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$fn:Ljdk/nashorn/internal/ir/FunctionNode;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$inlinedFinallies:Ljava/util/ArrayList;
aload 0
getfield jdk.nashorn.internal.codegen.Lower$3.val$finallyBlock:Ljdk/nashorn/internal/ir/Block;
aload 1
aload 8
invokevirtual jdk.nashorn.internal.ir.ReturnNode.setExpression:(Ljdk/nashorn/internal/ir/Expression;)Ljdk/nashorn/internal/ir/ReturnNode;
invokestatic jdk.nashorn.internal.codegen.Lower.prependFinally:(Ljdk/nashorn/internal/ir/Block;Ljdk/nashorn/internal/ir/Statement;)Ljdk/nashorn/internal/ir/Block;
invokestatic jdk.nashorn.internal.codegen.Lower.createJumpToInlinedFinally:(Ljdk/nashorn/internal/ir/FunctionNode;Ljava/util/List;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/JumpToInlinedFinally;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
19: new jdk.nashorn.internal.ir.BlockStatement
dup
iload 4
new jdk.nashorn.internal.ir.Block
dup
lload 5
iload 7
aload 3
invokespecial jdk.nashorn.internal.ir.Block.<init>:(JILjava/util/List;)V
invokespecial jdk.nashorn.internal.ir.BlockStatement.<init>:(ILjdk/nashorn/internal/ir/Block;)V
areturn
end local 8 end local 7 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 20 0 this Ljdk/nashorn/internal/codegen/Lower$3;
0 20 1 returnNode Ljdk/nashorn/internal/ir/ReturnNode;
1 20 2 expr Ljdk/nashorn/internal/ir/Expression;
5 10 3 newStatements Ljava/util/List<Ljdk/nashorn/internal/ir/Statement;>;
6 10 4 retLineNumber I
7 10 5 retToken J
13 20 3 newStatements Ljava/util/List<Ljdk/nashorn/internal/ir/Statement;>;
14 20 4 retLineNumber I
15 20 5 retToken J
16 20 7 retFinish I
17 20 8 resultNode Ljdk/nashorn/internal/ir/Expression;
MethodParameters:
Name Flags
returnNode final
}
SourceFile: "Lower.java"
EnclosingMethod: jdk.nashorn.internal.codegen.Lower.spliceFinally:(Ljdk/nashorn/internal/ir/TryNode;Ljdk/nashorn/internal/ir/ThrowNode;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/TryNode;
NestHost: jdk.nashorn.internal.codegen.Lower
InnerClasses:
jdk.nashorn.internal.codegen.Lower$3
public PrimitiveLiteralNode = jdk.nashorn.internal.ir.LiteralNode$PrimitiveLiteralNode of jdk.nashorn.internal.ir.LiteralNode