abstract class com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod$ReflectBase extends com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod$ReflectBase
super_class: com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod
{
private com.oracle.truffle.api.CallTarget doInvokeTarget;
descriptor: Lcom/oracle/truffle/api/CallTarget;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/polyglot/HostMethodDesc;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod$ReflectBase.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.reflect.Executable);
descriptor: (Ljava/lang/reflect/Executable;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod.<init>:(Ljava/lang/reflect/Executable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod$ReflectBase;
0 2 1 executable Ljava/lang/reflect/Executable;
MethodParameters:
Name Flags
executable
public java.lang.Object invokeGuestToHost(java.lang.Object, java.lang.Object[], com.oracle.truffle.polyglot.PolyglotEngineImpl, com.oracle.truffle.polyglot.PolyglotLanguageContext, com.oracle.truffle.api.nodes.Node);
descriptor: (Ljava/lang/Object;[Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod$ReflectBase.doInvokeTarget:Lcom/oracle/truffle/api/CallTarget;
astore 6
start local 6 1: aload 6
ifnonnull 4
2: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: aload 0
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getHostToGuestCodeCache:()Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
getfield com.oracle.truffle.polyglot.HostToGuestCodeCache.reflectionHostInvoke:Lcom/oracle/truffle/api/CallTarget;
dup
astore 6
putfield com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod$ReflectBase.doInvokeTarget:Lcom/oracle/truffle/api/CallTarget;
4: StackMap locals: com.oracle.truffle.api.CallTarget
StackMap stack:
getstatic com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod$ReflectBase.$assertionsDisabled:Z
ifne 5
aload 6
aload 4
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getHostToGuestCodeCache:()Lcom/oracle/truffle/polyglot/HostToGuestCodeCache;
getfield com.oracle.truffle.polyglot.HostToGuestCodeCache.reflectionHostInvoke:Lcom/oracle/truffle/api/CallTarget;
if_acmpeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 5
aload 6
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 0
aastore
dup
iconst_3
aload 2
aastore
invokestatic com.oracle.truffle.polyglot.GuestToHostRootNode.guestToHostCall:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/CallTarget;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 6 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 6 0 this Lcom/oracle/truffle/polyglot/HostMethodDesc$SingleMethod$ReflectBase;
0 6 1 receiver Ljava/lang/Object;
0 6 2 arguments [Ljava/lang/Object;
0 6 3 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
0 6 4 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 6 5 node Lcom/oracle/truffle/api/nodes/Node;
1 6 6 target Lcom/oracle/truffle/api/CallTarget;
MethodParameters:
Name Flags
receiver
arguments
engine
languageContext
node
}
SourceFile: "HostMethodDesc.java"
NestHost: com.oracle.truffle.polyglot.HostMethodDesc
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
abstract SingleMethod = com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod of com.oracle.truffle.polyglot.HostMethodDesc
abstract ReflectBase = com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod$ReflectBase of com.oracle.truffle.polyglot.HostMethodDesc$SingleMethod