final class com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl extends com.oracle.truffle.api.impl.Accessor$ExceptionSupport
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl
super_class: com.oracle.truffle.api.impl.Accessor$ExceptionSupport
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.impl.Accessor$ExceptionSupport.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
public java.lang.Throwable getLazyStackTrace(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.exception.AbstractTruffleException
invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getLazyStackTrace:()Ljava/lang/Throwable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 1 1 exception Ljava/lang/Throwable;
MethodParameters:
Name Flags
exception
public void setLazyStackTrace(java.lang.Throwable, java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast com.oracle.truffle.api.exception.AbstractTruffleException
aload 2
invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.setLazyStackTrace:(Ljava/lang/Throwable;)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/exception/ExceptionAccessor$ExceptionSupportImpl;
0 2 1 exception Ljava/lang/Throwable;
0 2 2 stackTrace Ljava/lang/Throwable;
MethodParameters:
Name Flags
exception
stackTrace
public java.lang.Object createDefaultStackTraceElementObject(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.truffle.api.exception.DefaultStackTraceElementObject
dup
aload 1
aload 2
invokespecial com.oracle.truffle.api.exception.DefaultStackTraceElementObject.<init>:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/source/SourceSection;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 1 1 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 1 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
MethodParameters:
Name Flags
rootNode
sourceSection
public boolean isException(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.oracle.truffle.api.exception.AbstractTruffleException
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 1 1 receiver Ljava/lang/Object;
MethodParameters:
Name Flags
receiver
public java.lang.RuntimeException throwException(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/RuntimeException;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.exception.AbstractTruffleException
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 1 1 receiver Ljava/lang/Object;
MethodParameters:
Name Flags
receiver
public java.lang.Object getExceptionType(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.interop.ExceptionType.RUNTIME_ERROR:Lcom/oracle/truffle/api/interop/ExceptionType;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 1 1 receiver Ljava/lang/Object;
MethodParameters:
Name Flags
receiver
public boolean isExceptionIncompleteSource(java.lang.Object);
descriptor: (Ljava/lang/Object;)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 Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 1 1 receiver Ljava/lang/Object;
MethodParameters:
Name Flags
receiver
public int getExceptionExitStatus(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.throwUnsupportedMessageException:()Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 1 1 receiver Ljava/lang/Object;
MethodParameters:
Name Flags
receiver
public boolean hasExceptionCause(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.exception.AbstractTruffleException
invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getCause:()Ljava/lang/Throwable;
invokestatic com.oracle.truffle.api.exception.AbstractTruffleException.isTruffleException:(Ljava/lang/Throwable;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 1 1 receiver Ljava/lang/Object;
MethodParameters:
Name Flags
receiver
public java.lang.Object getExceptionCause(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.exception.AbstractTruffleException
invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getCause:()Ljava/lang/Throwable;
astore 2
start local 2 1: aload 2
invokestatic com.oracle.truffle.api.exception.AbstractTruffleException.isTruffleException:(Ljava/lang/Throwable;)Z
ifeq 3
2: aload 2
areturn
3: StackMap locals: java.lang.Throwable
StackMap stack:
invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.throwUnsupportedMessageException:()Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 4 1 receiver Ljava/lang/Object;
1 4 2 throwable Ljava/lang/Throwable;
MethodParameters:
Name Flags
receiver
public boolean hasExceptionMessage(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.exception.AbstractTruffleException
invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getMessage:()Ljava/lang/String;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 2 1 receiver Ljava/lang/Object;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
receiver
public java.lang.Object getExceptionMessage(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.exception.AbstractTruffleException
invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getMessage:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.throwUnsupportedMessageException:()Ljava/lang/RuntimeException;
athrow
3: StackMap locals: java.lang.String
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 4 1 receiver Ljava/lang/Object;
1 4 2 message Ljava/lang/String;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
receiver
public boolean hasExceptionStackTrace(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 1 1 receiver Ljava/lang/Object;
MethodParameters:
Name Flags
receiver
public java.lang.Object getExceptionStackTrace(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
checkcast java.lang.Throwable
invokestatic com.oracle.truffle.api.TruffleStackTrace.getStackTrace:(Ljava/lang/Throwable;)Ljava/util/List;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
astore 2
3: StackMap locals: java.util.List
StackMap stack:
aload 2
invokeinterface java.util.List.size:()I
anewarray java.lang.Object
astore 3
start local 3 4: iconst_0
istore 4
start local 4 5: goto 8
6: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 3
iload 4
aload 2
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.oracle.truffle.api.TruffleStackTraceElement
invokevirtual com.oracle.truffle.api.TruffleStackTraceElement.getGuestObject:()Ljava/lang/Object;
aastore
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
aload 3
arraylength
if_icmplt 6
end local 4 9: new com.oracle.truffle.api.exception.ExceptionAccessor$InteropList
dup
aload 3
invokespecial com.oracle.truffle.api.exception.ExceptionAccessor$InteropList.<init>:([Ljava/lang/Object;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 10 1 receiver Ljava/lang/Object;
1 10 2 stack Ljava/util/List<Lcom/oracle/truffle/api/TruffleStackTraceElement;>;
4 10 3 items [Ljava/lang/Object;
5 9 4 i I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
receiver
public boolean hasSourceLocation(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.exception.AbstractTruffleException
invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
ifnull 2
iconst_1
ireturn
StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
2: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 3 1 receiver Ljava/lang/Object;
1 3 2 location Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
receiver
public com.oracle.truffle.api.source.SourceSection getSourceLocation(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/source/SourceSection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.truffle.api.exception.AbstractTruffleException
invokevirtual com.oracle.truffle.api.exception.AbstractTruffleException.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
goto 3
StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: com.oracle.truffle.api.source.SourceSection
3: astore 3
start local 3 4: aload 3
ifnonnull 6
5: invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.throwUnsupportedMessageException:()Ljava/lang/RuntimeException;
athrow
6: StackMap locals: com.oracle.truffle.api.source.SourceSection
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 7 1 receiver Ljava/lang/Object;
1 7 2 location Lcom/oracle/truffle/api/nodes/Node;
4 7 3 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
MethodParameters:
Name Flags
receiver
public boolean assertGuestObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.AssertionError
dup
ldc "Guest object must be null."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.interop.InteropLibrary.getUncached:()Lcom/oracle/truffle/api/interop/InteropLibrary;
astore 2
start local 2 3: aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasExecutableName:(Ljava/lang/Object;)Z
ifeq 10
4: aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getExecutableName:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 5: goto 8
end local 3 StackMap locals: com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl java.lang.Object com.oracle.truffle.api.interop.InteropLibrary
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
6: astore 4
start local 4 7: new java.lang.AssertionError
dup
ldc "Failed to get the executable name."
aload 4
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 start local 3 8: StackMap locals: java.lang.Object
StackMap stack:
aload 2
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isString:(Ljava/lang/Object;)Z
ifne 10
9: new java.lang.AssertionError
dup
ldc "Executable name must be an interop string."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 3 10: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasDeclaringMetaObject:(Ljava/lang/Object;)Z
ifeq 17
11: aload 2
aload 1
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getDeclaringMetaObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 12: goto 15
end local 3 StackMap locals:
StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
13: astore 4
start local 4 14: new java.lang.AssertionError
dup
ldc "Failed to get the declaring meta object."
aload 4
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 start local 3 15: StackMap locals: java.lang.Object
StackMap stack:
aload 2
aload 3
invokevirtual com.oracle.truffle.api.interop.InteropLibrary.isMetaObject:(Ljava/lang/Object;)Z
ifne 17
16: new java.lang.AssertionError
dup
ldc "Declaring meta object must be an interop meta object"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 3 17: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/api/exception/ExceptionAccessor$ExceptionSupportImpl;
0 18 1 guestObject Ljava/lang/Object;
3 18 2 interop Lcom/oracle/truffle/api/interop/InteropLibrary;
5 6 3 executableName Ljava/lang/Object;
8 10 3 executableName Ljava/lang/Object;
7 8 4 um Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
12 13 3 metaObject Ljava/lang/Object;
15 17 3 metaObject Ljava/lang/Object;
14 15 4 um Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
Exception table:
from to target type
4 5 6 Class com.oracle.truffle.api.interop.UnsupportedMessageException
11 12 13 Class com.oracle.truffle.api.interop.UnsupportedMessageException
MethodParameters:
Name Flags
guestObject
private static java.lang.RuntimeException throwUnsupportedMessageException();
descriptor: ()Ljava/lang/RuntimeException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Ljava/lang/RuntimeException;
invokestatic com.oracle.truffle.api.interop.UnsupportedMessageException.create:()Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
invokestatic com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl.silenceException:(Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast java.lang.RuntimeException
athrow
LocalVariableTable:
Start End Slot Name Signature
private static <E extends java.lang.Throwable> E silenceException(java.lang.Class<E>, java.lang.Throwable) throws E;
descriptor: (Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/Throwable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/Class<TE;>;
0 1 1 ex Ljava/lang/Throwable;
Exceptions:
throws java.lang.Throwable
Signature: <E:Ljava/lang/Throwable;>(Ljava/lang/Class<TE;>;Ljava/lang/Throwable;)TE;^TE;
MethodParameters:
Name Flags
type
ex
}
SourceFile: "ExceptionAccessor.java"
NestHost: com.oracle.truffle.api.exception.ExceptionAccessor
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
final ExceptionSupportImpl = com.oracle.truffle.api.exception.ExceptionAccessor$ExceptionSupportImpl of com.oracle.truffle.api.exception.ExceptionAccessor
final InteropList = com.oracle.truffle.api.exception.ExceptionAccessor$InteropList of com.oracle.truffle.api.exception.ExceptionAccessor
public abstract ExceptionSupport = com.oracle.truffle.api.impl.Accessor$ExceptionSupport of com.oracle.truffle.api.impl.Accessor