class com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode 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.polyglot.ContextPolicyTest$LanguageRootNode
super_class: com.oracle.truffle.api.nodes.RootNode
{
private final java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<com.oracle.truffle.api.TruffleLanguage$Env>> languageClass;
descriptor: Ljava/lang/Class;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<Lcom/oracle/truffle/api/TruffleLanguage$Env;>;>;
private final boolean innerContext;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected void <init>(com.oracle.truffle.api.TruffleLanguage<?>, );
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 // com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode this
start local 1 // com.oracle.truffle.api.TruffleLanguage language
start local 2 // boolean innerContext
0: .line 834
aload 0 /* this */
aload 1 /* language */
invokespecial com.oracle.truffle.api.nodes.RootNode.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;)V
1: .line 835
aload 0 /* this */
aload 1 /* language */
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
putfield com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode.languageClass:Ljava/lang/Class;
2: .line 836
aload 0 /* this */
iload 2 /* innerContext */
putfield com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode.innerContext:Z
3: .line 837
return
end local 2 // boolean innerContext
end local 1 // com.oracle.truffle.api.TruffleLanguage language
end local 0 // com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/polyglot/ContextPolicyTest$LanguageRootNode;
0 4 1 language Lcom/oracle/truffle/api/TruffleLanguage<*>;
0 4 2 innerContext Z
Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;Z)V
MethodParameters:
Name Flags
language
innerContext
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=5, locals=8, args_size=2
start local 0 // com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode this
start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
0: .line 841
aload 0 /* this */
getfield com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode.languageClass:Ljava/lang/Class;
invokestatic com.oracle.truffle.api.test.polyglot.ContextPolicyTest$ExclusiveLanguage0.getCurrentContext:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.TruffleLanguage$Env
astore 2 /* env */
start local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
1: .line 842
aconst_null
astore 3 /* context */
start local 3 // com.oracle.truffle.api.TruffleContext context
2: .line 843
aload 0 /* this */
getfield com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode.innerContext:Z
ifeq 4
3: .line 844
aload 2 /* env */
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.newContextBuilder:()Lcom/oracle/truffle/api/TruffleContext$Builder;
invokevirtual com.oracle.truffle.api.TruffleContext$Builder.build:()Lcom/oracle/truffle/api/TruffleContext;
astore 3 /* context */
4: .line 846
StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleContext
StackMap stack:
aconst_null
astore 4 /* prev */
start local 4 // java.lang.Object prev
5: .line 847
aload 3 /* context */
ifnull 7
6: .line 848
aload 3 /* context */
aload 0 /* this */
invokevirtual com.oracle.truffle.api.TruffleContext.enter:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
astore 4 /* prev */
7: .line 851
StackMap locals: java.lang.Object
StackMap stack:
new com.oracle.truffle.api.test.polyglot.ContextPolicyTest$SharedObject
dup
8: .line 852
aload 3 /* context */
9: .line 853
aload 0 /* this */
getfield com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode.languageClass:Ljava/lang/Class;
invokestatic com.oracle.truffle.api.test.polyglot.ContextPolicyTest$ExclusiveLanguage0.getCurrentLanguage:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage;
10: .line 854
aload 0 /* this */
getfield com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode.languageClass:Ljava/lang/Class;
invokestatic com.oracle.truffle.api.test.polyglot.ContextPolicyTest$ExclusiveLanguage0.getCurrentContext:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.TruffleLanguage$Env
11: .line 851
invokespecial com.oracle.truffle.api.test.polyglot.ContextPolicyTest$SharedObject.<init>:(Lcom/oracle/truffle/api/TruffleContext;Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
astore 5 /* obj */
start local 5 // com.oracle.truffle.api.test.polyglot.ContextPolicyTest$SharedObject obj
12: .line 855
aload 5 /* obj */
astore 7
13: .line 857
aload 3 /* context */
ifnull 15
14: .line 858
aload 3 /* context */
aload 0 /* this */
aload 4 /* prev */
invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
15: .line 855
StackMap locals: com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleContext java.lang.Object com.oracle.truffle.api.test.polyglot.ContextPolicyTest$SharedObject top java.lang.Object
StackMap stack:
aload 7
areturn
end local 5 // com.oracle.truffle.api.test.polyglot.ContextPolicyTest$SharedObject obj
16: .line 856
StackMap locals: com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleContext java.lang.Object
StackMap stack: java.lang.Throwable
astore 6
17: .line 857
aload 3 /* context */
ifnull 19
18: .line 858
aload 3 /* context */
aload 0 /* this */
aload 4 /* prev */
invokevirtual com.oracle.truffle.api.TruffleContext.leave:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
19: .line 860
StackMap locals: com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleContext java.lang.Object top java.lang.Throwable
StackMap stack:
aload 6
athrow
end local 4 // java.lang.Object prev
end local 3 // com.oracle.truffle.api.TruffleContext context
end local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
end local 0 // com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode this
LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/api/test/polyglot/ContextPolicyTest$LanguageRootNode;
0 20 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 20 2 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
2 20 3 context Lcom/oracle/truffle/api/TruffleContext;
5 20 4 prev Ljava/lang/Object;
12 16 5 obj Lcom/oracle/truffle/api/test/polyglot/ContextPolicyTest$SharedObject;
Exception table:
from to target type
7 13 16 any
MethodParameters:
Name Flags
frame
}
SourceFile: "ContextPolicyTest.java"
NestHost: com.oracle.truffle.api.test.polyglot.ContextPolicyTest
InnerClasses:
public final Builder = com.oracle.truffle.api.TruffleContext$Builder of com.oracle.truffle.api.TruffleContext
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
public ExclusiveLanguage0 = com.oracle.truffle.api.test.polyglot.ContextPolicyTest$ExclusiveLanguage0 of com.oracle.truffle.api.test.polyglot.ContextPolicyTest
LanguageRootNode = com.oracle.truffle.api.test.polyglot.ContextPolicyTest$LanguageRootNode of com.oracle.truffle.api.test.polyglot.ContextPolicyTest
SharedObject = com.oracle.truffle.api.test.polyglot.ContextPolicyTest$SharedObject of com.oracle.truffle.api.test.polyglot.ContextPolicyTest