abstract class com.oracle.truffle.polyglot.HostObject$WriteFieldNode extends com.oracle.truffle.api.nodes.Node
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.polyglot.HostObject$WriteFieldNode
super_class: com.oracle.truffle.api.nodes.Node
{
static final int LIMIT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
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.nodes.Node.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/HostObject$WriteFieldNode;
public abstract void execute(com.oracle.truffle.polyglot.HostFieldDesc, com.oracle.truffle.polyglot.HostObject, java.lang.Object);
descriptor: (Lcom/oracle/truffle/polyglot/HostFieldDesc;Lcom/oracle/truffle/polyglot/HostObject;Ljava/lang/Object;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException, com.oracle.truffle.api.interop.UnknownIdentifierException
MethodParameters:
Name Flags
field
object
value
static void doCached(com.oracle.truffle.polyglot.HostFieldDesc, com.oracle.truffle.polyglot.HostObject, java.lang.Object, com.oracle.truffle.polyglot.HostFieldDesc, com.oracle.truffle.polyglot.ToHostNode, com.oracle.truffle.api.profiles.BranchProfile);
descriptor: (Lcom/oracle/truffle/polyglot/HostFieldDesc;Lcom/oracle/truffle/polyglot/HostObject;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/HostFieldDesc;Lcom/oracle/truffle/polyglot/ToHostNode;Lcom/oracle/truffle/api/profiles/BranchProfile;)V
flags: (0x0008) ACC_STATIC
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
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.isFinal:()Z
ifeq 3
1: aload 5
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
2: aload 0
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.getName:()Ljava/lang/String;
invokestatic com.oracle.truffle.api.interop.UnknownIdentifierException.create:(Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnknownIdentifierException;
athrow
3: StackMap locals:
StackMap stack:
aload 4
aload 2
aload 3
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.getType:()Ljava/lang/Class;
aload 3
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.getGenericType:()Ljava/lang/reflect/Type;
aload 1
getfield com.oracle.truffle.polyglot.HostObject.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
iconst_1
invokevirtual com.oracle.truffle.polyglot.ToHostNode.execute:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Z)Ljava/lang/Object;
astore 6
start local 6 4: aload 3
aload 1
getfield com.oracle.truffle.polyglot.HostObject.obj:Ljava/lang/Object;
aload 6
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.set:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 6 5: goto 9
StackMap locals:
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
6: astore 6
start local 6 7: aload 5
invokevirtual com.oracle.truffle.api.profiles.BranchProfile.enter:()V
8: aload 2
aload 6
getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.unsupportedTypeException:(Ljava/lang/Object;Ljava/lang/Throwable;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 6 9: StackMap locals:
StackMap stack:
return
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 10 0 field Lcom/oracle/truffle/polyglot/HostFieldDesc;
0 10 1 object Lcom/oracle/truffle/polyglot/HostObject;
0 10 2 rawValue Ljava/lang/Object;
0 10 3 cachedField Lcom/oracle/truffle/polyglot/HostFieldDesc;
0 10 4 toHost Lcom/oracle/truffle/polyglot/ToHostNode;
0 10 5 error Lcom/oracle/truffle/api/profiles/BranchProfile;
4 5 6 value Ljava/lang/Object;
7 9 6 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
Exception table:
from to target type
3 5 6 Class com.oracle.truffle.polyglot.PolyglotEngineException
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException, com.oracle.truffle.api.interop.UnknownIdentifierException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(guards = {"field == cachedField"}, limit = "LIMIT")
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached(value = "field")
4:
com.oracle.truffle.api.dsl.Cached()
5:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
field
object
rawValue
cachedField
toHost
error
static void doUncached(com.oracle.truffle.polyglot.HostFieldDesc, com.oracle.truffle.polyglot.HostObject, java.lang.Object, com.oracle.truffle.polyglot.ToHostNode);
descriptor: (Lcom/oracle/truffle/polyglot/HostFieldDesc;Lcom/oracle/truffle/polyglot/HostObject;Ljava/lang/Object;Lcom/oracle/truffle/polyglot/ToHostNode;)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.isFinal:()Z
ifeq 2
1: aload 0
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.getName:()Ljava/lang/String;
invokestatic com.oracle.truffle.api.interop.UnknownIdentifierException.create:(Ljava/lang/String;)Lcom/oracle/truffle/api/interop/UnknownIdentifierException;
athrow
2: StackMap locals:
StackMap stack:
aload 3
aload 2
aload 0
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.getType:()Ljava/lang/Class;
aload 0
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.getGenericType:()Ljava/lang/reflect/Type;
aload 1
getfield com.oracle.truffle.polyglot.HostObject.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
iconst_1
invokevirtual com.oracle.truffle.polyglot.ToHostNode.execute:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Z)Ljava/lang/Object;
astore 4
start local 4 3: aload 0
aload 1
getfield com.oracle.truffle.polyglot.HostObject.obj:Ljava/lang/Object;
aload 4
invokevirtual com.oracle.truffle.polyglot.HostFieldDesc.set:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 4 4: goto 7
StackMap locals:
StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
5: astore 4
start local 4 6: aload 2
aload 4
getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
invokestatic com.oracle.truffle.polyglot.HostInteropErrors.unsupportedTypeException:(Ljava/lang/Object;Ljava/lang/Throwable;)Lcom/oracle/truffle/api/interop/UnsupportedTypeException;
athrow
end local 4 7: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 field Lcom/oracle/truffle/polyglot/HostFieldDesc;
0 8 1 object Lcom/oracle/truffle/polyglot/HostObject;
0 8 2 rawValue Ljava/lang/Object;
0 8 3 toHost Lcom/oracle/truffle/polyglot/ToHostNode;
3 4 4 val Ljava/lang/Object;
6 7 4 e Lcom/oracle/truffle/polyglot/PolyglotEngineException;
Exception table:
from to target type
2 4 5 Class com.oracle.truffle.polyglot.PolyglotEngineException
Exceptions:
throws com.oracle.truffle.api.interop.UnsupportedTypeException, com.oracle.truffle.api.interop.UnknownIdentifierException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.dsl.Specialization(replaces = {"doCached"})
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
RuntimeInvisibleParameterAnnotations:
0:
1:
2:
3:
com.oracle.truffle.api.dsl.Cached()
MethodParameters:
Name Flags
field
object
rawValue
toHost
}
SourceFile: "HostObject.java"
NestHost: com.oracle.truffle.polyglot.HostObject
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
abstract WriteFieldNode = com.oracle.truffle.polyglot.HostObject$WriteFieldNode of com.oracle.truffle.polyglot.HostObject
RuntimeInvisibleAnnotations:
com.oracle.truffle.api.dsl.GenerateUncached()