final class com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode
super_class: java.lang.Object
{
final org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess apiAccess;
descriptor: Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
flags: (0x0010) ACC_FINAL
volatile java.lang.Class<?> cachedClass;
descriptor: Ljava/lang/Class;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
volatile com.oracle.truffle.polyglot.PolyglotValue cachedValue;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotValue;
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
volatile com.oracle.truffle.polyglot.PolyglotLanguageContext cachedContext;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private void <init>(com.oracle.truffle.polyglot.PolyglotImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotImpl;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode this
start local 1 // com.oracle.truffle.polyglot.PolyglotImpl polyglot
0: .line 846
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 847
aload 0 /* this */
aload 1 /* polyglot */
invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.apiAccess:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
2: .line 848
return
end local 1 // com.oracle.truffle.polyglot.PolyglotImpl polyglot
end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToHostValueNode;
0 3 1 polyglot Lcom/oracle/truffle/polyglot/PolyglotImpl;
MethodParameters:
Name Flags
polyglot
org.graalvm.polyglot.Value execute(com.oracle.truffle.polyglot.PolyglotLanguageContext, java.lang.Object);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
flags: (0x0000)
Code:
stack=3, locals=7, args_size=3
start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode this
start local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
start local 2 // java.lang.Object value
0: .line 851
aload 2 /* value */
astore 3 /* receiver */
start local 3 // java.lang.Object receiver
1: .line 852
aload 0 /* this */
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedClass:Ljava/lang/Class;
astore 4 /* cachedClassLocal */
start local 4 // java.lang.Class cachedClassLocal
2: .line 853
aload 0 /* this */
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
astore 5 /* cachedContextLocal */
start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext cachedContextLocal
3: .line 855
aload 4 /* cachedClassLocal */
ldc Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Generic;
if_acmpeq 32
4: .line 856
aload 4 /* cachedClassLocal */
ifnonnull 19
5: .line 857
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
6: .line 858
aload 1 /* languageContext */
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.singleContext:Lcom/oracle/truffle/api/Assumption;
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 14
7: .line 859
aload 0 /* this */
aload 3 /* receiver */
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedClass:Ljava/lang/Class;
8: .line 860
aload 1 /* languageContext */
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.lazy:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Lazy;
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy.valueCache:Ljava/util/Map;
aload 3 /* receiver */
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.PolyglotValue
astore 6 /* cache */
start local 6 // com.oracle.truffle.polyglot.PolyglotValue cache
9: .line 861
aload 6 /* cache */
ifnonnull 11
10: .line 862
aload 1 /* languageContext */
aload 3 /* receiver */
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.lookupValueCache:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotValue;
astore 6 /* cache */
11: .line 864
StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode com.oracle.truffle.polyglot.PolyglotLanguageContext java.lang.Object java.lang.Object java.lang.Class com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotValue
StackMap stack:
aload 0 /* this */
aload 1 /* languageContext */
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
12: .line 865
aload 0 /* this */
aload 6 /* cache */
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedValue:Lcom/oracle/truffle/polyglot/PolyglotValue;
13: .line 866
aload 0 /* this */
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.apiAccess:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 3 /* receiver */
aload 6 /* cache */
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newValue:(Ljava/lang/Object;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;)Lorg/graalvm/polyglot/Value;
areturn
end local 6 // com.oracle.truffle.polyglot.PolyglotValue cache
14: .line 870
StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
15: .line 871
aload 0 /* this */
ldc Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Generic;
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedClass:Ljava/lang/Class;
16: .line 872
aload 0 /* this */
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
17: .line 873
aload 0 /* this */
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedValue:Lcom/oracle/truffle/polyglot/PolyglotValue;
18: .line 875
goto 32
StackMap locals:
StackMap stack:
19: aload 2 /* value */
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 4 /* cachedClassLocal */
if_acmpne 28
aload 5 /* cachedContextLocal */
aload 1 /* languageContext */
if_acmpne 28
20: .line 876
invokestatic com.oracle.truffle.api.CompilerDirectives.inInterpreter:()Z
ifeq 21
aload 3 /* receiver */
goto 22
StackMap locals:
StackMap stack:
21: aload 3 /* receiver */
aload 4 /* cachedClassLocal */
invokestatic com.oracle.truffle.api.CompilerDirectives.castExact:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
22: astore 3 /* receiver */
23: .line 877
aload 0 /* this */
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedValue:Lcom/oracle/truffle/polyglot/PolyglotValue;
astore 6 /* cache */
start local 6 // com.oracle.truffle.polyglot.PolyglotValue cache
24: .line 878
aload 6 /* cache */
ifnonnull 27
25: .line 879
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
26: .line 881
goto 32
27: .line 882
StackMap locals: com.oracle.truffle.polyglot.PolyglotValue
StackMap stack:
aload 0 /* this */
getfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.apiAccess:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
aload 3 /* receiver */
aload 6 /* cache */
invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newValue:(Ljava/lang/Object;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;)Lorg/graalvm/polyglot/Value;
areturn
end local 6 // com.oracle.truffle.polyglot.PolyglotValue cache
28: .line 885
StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
29: .line 886
aload 0 /* this */
ldc Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$Generic;
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedClass:Ljava/lang/Class;
30: .line 887
aload 0 /* this */
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
31: .line 888
aload 0 /* this */
aconst_null
putfield com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.cachedValue:Lcom/oracle/truffle/polyglot/PolyglotValue;
32: .line 892
StackMap locals:
StackMap stack:
aload 1 /* languageContext */
aload 2 /* value */
invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
areturn
end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext cachedContextLocal
end local 4 // java.lang.Class cachedClassLocal
end local 3 // java.lang.Object receiver
end local 2 // java.lang.Object value
end local 1 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode this
LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToHostValueNode;
0 33 1 languageContext Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
0 33 2 value Ljava/lang/Object;
1 33 3 receiver Ljava/lang/Object;
2 33 4 cachedClassLocal Ljava/lang/Class<*>;
3 33 5 cachedContextLocal Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
9 14 6 cache Lcom/oracle/truffle/polyglot/PolyglotValue;
24 28 6 cache Lcom/oracle/truffle/polyglot/PolyglotValue;
MethodParameters:
Name Flags
languageContext
value
public static com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode create(com.oracle.truffle.polyglot.PolyglotImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotImpl;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext$ToHostValueNode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // com.oracle.truffle.polyglot.PolyglotImpl polyglot
0: .line 896
new com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode
dup
aload 0 /* polyglot */
invokespecial com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode.<init>:(Lcom/oracle/truffle/polyglot/PolyglotImpl;)V
areturn
end local 0 // com.oracle.truffle.polyglot.PolyglotImpl polyglot
LocalVariableTable:
Start End Slot Name Signature
0 1 0 polyglot Lcom/oracle/truffle/polyglot/PolyglotImpl;
MethodParameters:
Name Flags
polyglot
}
SourceFile: "PolyglotLanguageContext.java"
NestHost: com.oracle.truffle.polyglot.PolyglotLanguageContext
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
final Generic = com.oracle.truffle.polyglot.PolyglotLanguageContext$Generic of com.oracle.truffle.polyglot.PolyglotLanguageContext
final Lazy = com.oracle.truffle.polyglot.PolyglotLanguageContext$Lazy of com.oracle.truffle.polyglot.PolyglotLanguageContext
final ToHostValueNode = com.oracle.truffle.polyglot.PolyglotLanguageContext$ToHostValueNode of com.oracle.truffle.polyglot.PolyglotLanguageContext
public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
public abstract AbstractValueImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl