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