class com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode extends com.oracle.truffle.api.nodes.RootNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode
super_class: com.oracle.truffle.api.nodes.RootNode
{
com.oracle.truffle.api.interop.InteropLibrary interop;
descriptor: Lcom/oracle/truffle/api/interop/InteropLibrary;
flags: (0x0000)
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
final com.oracle.truffle.api.test.host.HostExceptionTest this$0;
descriptor: Lcom/oracle/truffle/api/test/host/HostExceptionTest;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.api.test.host.HostExceptionTest);
descriptor: (Lcom/oracle/truffle/api/test/host/HostExceptionTest;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 // com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode this
0: .line 512
aload 0 /* this */
aload 1
putfield com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode.this$0:Lcom/oracle/truffle/api/test/host/HostExceptionTest;
1: .line 513
aload 0 /* this */
invokestatic com.oracle.truffle.api.test.polyglot.ProxyLanguage.getCurrentLanguage:()Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;
invokespecial com.oracle.truffle.api.nodes.RootNode.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;)V
2: .line 510
aload 0 /* this */
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
iconst_5
invokevirtual com.oracle.truffle.api.library.LibraryFactory.createDispatched:(I)Lcom/oracle/truffle/api/library/Library;
checkcast com.oracle.truffle.api.interop.InteropLibrary
putfield com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
3: .line 514
return
end local 0 // com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/host/HostExceptionTest$CatcherRootNode;
MethodParameters:
Name Flags
this$0 final
public com.oracle.truffle.api.source.SourceSection getSourceSection();
descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode this
0: .line 519
ldc "proxyLanguage"
ldc "\na\nb\nc\n"
ldc "catcher"
invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
iconst_4
invokevirtual com.oracle.truffle.api.source.Source.createSection:(I)Lcom/oracle/truffle/api/source/SourceSection;
areturn
end local 0 // com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/host/HostExceptionTest$CatcherRootNode;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode this
0: .line 524
ldc "catcher"
areturn
end local 0 // com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/host/HostExceptionTest$CatcherRootNode;
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=5, args_size=2
start local 0 // com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode this
start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
0: .line 529
aload 1 /* frame */
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getArguments:()[Ljava/lang/Object;
iconst_0
aaload
checkcast com.oracle.truffle.api.interop.TruffleObject
astore 2 /* thrower */
start local 2 // com.oracle.truffle.api.interop.TruffleObject thrower
1: .line 530
aload 1 /* frame */
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getArguments:()[Ljava/lang/Object;
iconst_1
aload 1 /* frame */
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getArguments:()[Ljava/lang/Object;
arraylength
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
astore 3 /* args */
start local 3 // java.lang.Object[] args
2: .line 532
aload 0 /* this */
getfield com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 2 /* thrower */
aload 3 /* args */
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.execute:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
3: areturn
4: .line 533
StackMap locals: com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.interop.TruffleObject java.lang.Object[]
StackMap stack: com.oracle.truffle.api.interop.InteropException
astore 4 /* e */
start local 4 // com.oracle.truffle.api.interop.InteropException e
5: .line 534
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
6: .line 535
new java.lang.AssertionError
dup
aload 4 /* e */
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 4 // com.oracle.truffle.api.interop.InteropException e
7: .line 536
StackMap locals:
StackMap stack: java.lang.Exception
astore 4 /* ex */
start local 4 // java.lang.Exception ex
8: .line 537
aload 0 /* this */
getfield com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode.interop:Lcom/oracle/truffle/api/interop/InteropLibrary;
aload 4 /* ex */
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isException:(Ljava/lang/Object;)Z
ifeq 10
9: .line 538
aload 0 /* this */
getfield com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode.this$0:Lcom/oracle/truffle/api/test/host/HostExceptionTest;
aload 4 /* ex */
invokevirtual com.oracle.truffle.api.test.host.HostExceptionTest.checkAndUnwrapException:(Ljava/lang/Throwable;)Ljava/lang/Object;
areturn
10: .line 540
StackMap locals: java.lang.Exception
StackMap stack:
aload 4 /* ex */
athrow
end local 4 // java.lang.Exception ex
end local 3 // java.lang.Object[] args
end local 2 // com.oracle.truffle.api.interop.TruffleObject thrower
end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
end local 0 // com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/test/host/HostExceptionTest$CatcherRootNode;
0 11 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 11 2 thrower Lcom/oracle/truffle/api/interop/TruffleObject;
2 11 3 args [Ljava/lang/Object;
5 7 4 e Lcom/oracle/truffle/api/interop/InteropException;
8 11 4 ex Ljava/lang/Exception;
Exception table:
from to target type
2 3 4 Class com.oracle.truffle.api.interop.UnsupportedTypeException
2 3 4 Class com.oracle.truffle.api.interop.ArityException
2 3 4 Class com.oracle.truffle.api.interop.UnsupportedMessageException
2 3 7 Class java.lang.Exception
MethodParameters:
Name Flags
frame
}
SourceFile: "HostExceptionTest.java"
NestHost: com.oracle.truffle.api.test.host.HostExceptionTest
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
public final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
CatcherRootNode = com.oracle.truffle.api.test.host.HostExceptionTest$CatcherRootNode of com.oracle.truffle.api.test.host.HostExceptionTest