public class sun.tools.tree.ThrowStatement extends sun.tools.tree.Statement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.tree.ThrowStatement
super_class: sun.tools.tree.Statement
{
sun.tools.tree.Expression expr;
descriptor: Lsun/tools/tree/Expression;
flags: (0x0000)
public void <init>(long, sun.tools.tree.Expression);
descriptor: (JLsun/tools/tree/Expression;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
bipush 104
lload 1
invokespecial sun.tools.tree.Statement.<init>:(IJ)V
1: aload 0
aload 3
putfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
2: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/tree/ThrowStatement;
0 3 1 where J
0 3 3 expr Lsun/tools/tree/Expression;
MethodParameters:
Name Flags
where
expr
sun.tools.tree.Vset check(sun.tools.java.Environment, sun.tools.tree.Context, sun.tools.tree.Vset, java.util.Hashtable);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;
flags: (0x0000)
Code:
stack=7, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokevirtual sun.tools.tree.ThrowStatement.checkLabel:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)V
1: aload 0
aload 1
aload 3
invokevirtual sun.tools.tree.ThrowStatement.reach:(Lsun/tools/java/Environment;Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
astore 3
2: aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
aload 1
aload 2
aload 3
aload 4
invokevirtual sun.tools.tree.Expression.checkValue:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/tree/Vset;Ljava/util/Hashtable;)Lsun/tools/tree/Vset;
pop
3: aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
getfield sun.tools.tree.Expression.type:Lsun/tools/java/Type;
bipush 10
invokevirtual sun.tools.java.Type.isType:(I)Z
ifeq 14
4: aload 1
aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
getfield sun.tools.tree.Expression.type:Lsun/tools/java/Type;
invokevirtual sun.tools.java.Environment.getClassDeclaration:(Lsun/tools/java/Type;)Lsun/tools/java/ClassDeclaration;
astore 5
start local 5 5: aload 4
aload 5
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 7
6: aload 4
aload 5
aload 0
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: StackMap locals: sun.tools.java.ClassDeclaration
StackMap stack:
aload 5
aload 1
invokevirtual sun.tools.java.ClassDeclaration.getClassDefinition:(Lsun/tools/java/Environment;)Lsun/tools/java/ClassDefinition;
astore 6
start local 6 8: aload 1
getstatic sun.tools.tree.ThrowStatement.idJavaLangThrowable:Lsun/tools/java/Identifier;
invokevirtual sun.tools.java.Environment.getClassDeclaration:(Lsun/tools/java/Identifier;)Lsun/tools/java/ClassDeclaration;
9: astore 7
start local 7 10: aload 6
aload 1
aload 7
invokevirtual sun.tools.java.ClassDefinition.subClassOf:(Lsun/tools/java/Environment;Lsun/tools/java/ClassDeclaration;)Z
ifne 12
11: aload 1
aload 0
getfield sun.tools.tree.ThrowStatement.where:J
ldc "throw.not.throwable"
aload 6
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;)V
12: StackMap locals: sun.tools.java.ClassDefinition sun.tools.java.ClassDeclaration
StackMap stack:
aload 0
aload 0
aload 1
aload 2
getstatic sun.tools.java.Type.tObject:Lsun/tools/java/Type;
aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
invokevirtual sun.tools.tree.ThrowStatement.convert:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/java/Type;Lsun/tools/tree/Expression;)Lsun/tools/tree/Expression;
putfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
end local 7 end local 6 end local 5 13: goto 19
StackMap locals:
StackMap stack:
14: aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
getfield sun.tools.tree.Expression.type:Lsun/tools/java/Type;
bipush 13
invokevirtual sun.tools.java.Type.isType:(I)Z
ifne 19
15: aload 1
aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
getfield sun.tools.tree.Expression.where:J
ldc "throw.not.throwable"
aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
getfield sun.tools.tree.Expression.type:Lsun/tools/java/Type;
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;)V
16: goto 19
StackMap locals:
StackMap stack: sun.tools.java.ClassNotFound
17: astore 5
start local 5 18: aload 1
aload 0
getfield sun.tools.tree.ThrowStatement.where:J
ldc "class.not.found"
aload 5
getfield sun.tools.java.ClassNotFound.name:Lsun/tools/java/Identifier;
getstatic sun.tools.tree.ThrowStatement.opNames:[Ljava/lang/String;
aload 0
getfield sun.tools.tree.ThrowStatement.op:I
aaload
invokevirtual sun.tools.java.Environment.error:(JLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 5 19: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.tools.tree.Context.getTryExitContext:()Lsun/tools/tree/CheckContext;
astore 5
start local 5 20: aload 5
ifnull 22
21: aload 5
aload 5
getfield sun.tools.tree.CheckContext.vsTryExit:Lsun/tools/tree/Vset;
aload 3
invokevirtual sun.tools.tree.Vset.join:(Lsun/tools/tree/Vset;)Lsun/tools/tree/Vset;
putfield sun.tools.tree.CheckContext.vsTryExit:Lsun/tools/tree/Vset;
22: StackMap locals: sun.tools.tree.CheckContext
StackMap stack:
getstatic sun.tools.tree.ThrowStatement.DEAD_END:Lsun/tools/tree/Vset;
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 23 0 this Lsun/tools/tree/ThrowStatement;
0 23 1 env Lsun/tools/java/Environment;
0 23 2 ctx Lsun/tools/tree/Context;
0 23 3 vset Lsun/tools/tree/Vset;
0 23 4 exp Ljava/util/Hashtable;
5 13 5 c Lsun/tools/java/ClassDeclaration;
8 13 6 def Lsun/tools/java/ClassDefinition;
10 13 7 throwable Lsun/tools/java/ClassDeclaration;
18 19 5 e Lsun/tools/java/ClassNotFound;
20 23 5 exitctx Lsun/tools/tree/CheckContext;
Exception table:
from to target type
1 16 17 Class sun.tools.java.ClassNotFound
MethodParameters:
Name Flags
env
ctx
vset
exp
public sun.tools.tree.Statement inline(sun.tools.java.Environment, sun.tools.tree.Context);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Statement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
aload 1
aload 2
invokevirtual sun.tools.tree.Expression.inlineValue:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;)Lsun/tools/tree/Expression;
putfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
1: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/tree/ThrowStatement;
0 2 1 env Lsun/tools/java/Environment;
0 2 2 ctx Lsun/tools/tree/Context;
MethodParameters:
Name Flags
env
ctx
public sun.tools.tree.Statement copyInline(sun.tools.tree.Context, boolean);
descriptor: (Lsun/tools/tree/Context;Z)Lsun/tools/tree/Statement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.tools.tree.ThrowStatement.clone:()Ljava/lang/Object;
checkcast sun.tools.tree.ThrowStatement
astore 3
start local 3 1: aload 3
aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
aload 1
invokevirtual sun.tools.tree.Expression.copyInline:(Lsun/tools/tree/Context;)Lsun/tools/tree/Expression;
putfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/tree/ThrowStatement;
0 3 1 ctx Lsun/tools/tree/Context;
0 3 2 valNeeded Z
1 3 3 s Lsun/tools/tree/ThrowStatement;
MethodParameters:
Name Flags
ctx
valNeeded
public int costInline(int, sun.tools.java.Environment, sun.tools.tree.Context);
descriptor: (ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
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: iconst_1
aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
iload 1
aload 2
aload 3
invokevirtual sun.tools.tree.Expression.costInline:(ILsun/tools/java/Environment;Lsun/tools/tree/Context;)I
iadd
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/tree/ThrowStatement;
0 1 1 thresh I
0 1 2 env Lsun/tools/java/Environment;
0 1 3 ctx Lsun/tools/tree/Context;
MethodParameters:
Name Flags
thresh
env
ctx
public void code(sun.tools.java.Environment, sun.tools.tree.Context, sun.tools.asm.Assembler);
descriptor: (Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
aload 1
aload 2
aload 3
invokevirtual sun.tools.tree.Expression.codeValue:(Lsun/tools/java/Environment;Lsun/tools/tree/Context;Lsun/tools/asm/Assembler;)V
1: aload 3
aload 0
getfield sun.tools.tree.ThrowStatement.where:J
sipush 191
invokevirtual sun.tools.asm.Assembler.add:(JI)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/tree/ThrowStatement;
0 3 1 env Lsun/tools/java/Environment;
0 3 2 ctx Lsun/tools/tree/Context;
0 3 3 asm Lsun/tools/asm/Assembler;
MethodParameters:
Name Flags
env
ctx
asm
public void print(java.io.PrintStream, int);
descriptor: (Ljava/io/PrintStream;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokespecial sun.tools.tree.Statement.print:(Ljava/io/PrintStream;I)V
1: aload 1
ldc "throw "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
2: aload 0
getfield sun.tools.tree.ThrowStatement.expr:Lsun/tools/tree/Expression;
aload 1
invokevirtual sun.tools.tree.Expression.print:(Ljava/io/PrintStream;)V
3: aload 1
ldc ":"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/tools/tree/ThrowStatement;
0 5 1 out Ljava/io/PrintStream;
0 5 2 indent I
MethodParameters:
Name Flags
out
indent
}
SourceFile: "ThrowStatement.java"