final class com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl extends com.oracle.truffle.api.exception.AbstractTruffleException
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl
super_class: com.oracle.truffle.api.exception.AbstractTruffleException
{
private final com.oracle.truffle.api.interop.ExceptionType exceptionType;
descriptor: Lcom/oracle/truffle/api/interop/ExceptionType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.function.Consumer<com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind> exceptionInjection;
descriptor: Ljava/util/function/Consumer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Consumer<Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;>;
void <init>(java.lang.String, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
getstatic com.oracle.truffle.api.interop.ExceptionType.RUNTIME_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
aconst_null
invokespecial com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/interop/ExceptionType;Ljava/util/function/Consumer;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
0 2 1 message Ljava/lang/String;
0 2 2 location Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
message
location
void <init>(java.lang.String, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.interop.ExceptionType, java.util.function.Consumer<com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind>);
descriptor: (Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/interop/ExceptionType;Ljava/util/function/Consumer;)V
flags: (0x0000)
Code:
stack=3, locals=5, 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
invokespecial com.oracle.truffle.api.exception.AbstractTruffleException.<init>:(Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;)V
1: aload 0
aload 3
putfield com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.exceptionType:Lcom/oracle/truffle/api/interop/ExceptionType;
2: aload 0
aload 4
putfield com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.exceptionInjection:Ljava/util/function/Consumer;
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
0 4 1 message Ljava/lang/String;
0 4 2 location Lcom/oracle/truffle/api/nodes/Node;
0 4 3 exceptionType Lcom/oracle/truffle/api/interop/ExceptionType;
0 4 4 exceptionInjection Ljava/util/function/Consumer<Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;>;
Signature: (Ljava/lang/String;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/interop/ExceptionType;Ljava/util/function/Consumer<Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;>;)V
MethodParameters:
Name Flags
message
location
exceptionType
exceptionInjection
boolean isException();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.IS_EXCEPTION:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.injectException:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
java.lang.RuntimeException throwException();
descriptor: ()Ljava/lang/RuntimeException;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.THROW_EXCEPTION:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.injectException:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
1: aload 0
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
com.oracle.truffle.api.interop.ExceptionType getExceptionType();
descriptor: ()Lcom/oracle/truffle/api/interop/ExceptionType;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.GET_EXCEPTION_TYPE:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.injectException:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
1: aload 0
getfield com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.exceptionType:Lcom/oracle/truffle/api/interop/ExceptionType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
int getExceptionExitStatus();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.GET_EXCEPTION_EXIT_STATUS:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.injectException:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
1: aload 0
getfield com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.exceptionType:Lcom/oracle/truffle/api/interop/ExceptionType;
getstatic com.oracle.truffle.api.interop.ExceptionType.EXIT:Lcom/oracle/truffle/api/interop/ExceptionType;
if_acmpeq 3
2: invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
athrow
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
boolean isExceptionIncompleteSource();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.IS_EXCEPTION_INCOMPLETE_SOURCE:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.injectException:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
1: aload 0
getfield com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.exceptionType:Lcom/oracle/truffle/api/interop/ExceptionType;
getstatic com.oracle.truffle.api.interop.ExceptionType.PARSE_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
if_acmpeq 3
2: invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
athrow
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
boolean hasSourceLocation();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.HAS_SOURCE_LOCATION:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.injectException:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
1: aload 0
invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
astore 1
start local 1 2: aload 1
ifnull 3
aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
ifnull 3
iconst_1
ireturn
StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
2 4 1 location Lcom/oracle/truffle/api/nodes/Node;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage()
com.oracle.truffle.api.source.SourceSection getSource();
descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getstatic com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind.GET_SOURCE_LOCATION:Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.injectException:(Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
1: aload 0
invokevirtual com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
astore 1
start local 1 2: aload 1
ifnonnull 3
aconst_null
goto 4
StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
3: aload 1
invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
StackMap locals:
StackMap stack: com.oracle.truffle.api.source.SourceSection
4: astore 2
start local 2 5: aload 2
ifnonnull 7
6: invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
athrow
7: StackMap locals: com.oracle.truffle.api.source.SourceSection
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
2 8 1 location Lcom/oracle/truffle/api/nodes/Node;
5 8 2 section Lcom/oracle/truffle/api/source/SourceSection;
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedMessageException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportMessage(name = "getSourceLocation")
private void injectException(com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind);
descriptor: (Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.exceptionInjection:Ljava/util/function/Consumer;
ifnull 2
1: aload 0
getfield com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl.exceptionInjection:Ljava/util/function/Consumer;
aload 1
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl;
0 3 1 messageKind Lcom/oracle/truffle/api/test/TruffleExceptionTest$TruffleExceptionImpl$MessageKind;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
messageKind
}
SourceFile: "TruffleExceptionTest.java"
NestHost: com.oracle.truffle.api.test.TruffleExceptionTest
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
final TruffleExceptionImpl = com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl of com.oracle.truffle.api.test.TruffleExceptionTest
final MessageKind = com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl$MessageKind of com.oracle.truffle.api.test.TruffleExceptionTest$TruffleExceptionImpl
RuntimeVisibleAnnotations:
com.oracle.truffle.api.library.ExportLibrary(value = Lcom/oracle/truffle/api/interop/InteropLibrary;)