final class com.oracle.truffle.polyglot.EngineAccessor$EngineImpl extends com.oracle.truffle.api.impl.Accessor$EngineSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl
  super_class: com.oracle.truffle.api.impl.Accessor$EngineSupport
{
  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: .line 166
            ldc Lcom/oracle/truffle/polyglot/EngineAccessor;
            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.EngineAccessor$EngineImpl.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 168
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.impl.Accessor$EngineSupport.<init>:()V
         1: .line 169
            return
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;

  public boolean isDisposed(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 173
            aload 1 /* polyglotLanguageContext */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getEngine:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.closed:Z
            ireturn
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageContext  Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public com.oracle.truffle.api.TruffleLanguage$ContextReference<java.lang.Object> getCurrentContextReference();
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguage
         0: .line 178
            aload 1 /* polyglotLanguage */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getContextReference:()Lcom/oracle/truffle/polyglot/PolyglotReferences$AbstractContextReference;
            areturn
        end local 1 // java.lang.Object polyglotLanguage
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguage  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Ljava/lang/Object;>;
    MethodParameters:
                  Name  Flags
      polyglotLanguage  

  public boolean hasCurrentContext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 183
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;

  public boolean isPolyglotEvalAllowed(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 188
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 2 /* languageContext */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         1: .line 189
            aload 2 /* languageContext */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isPolyglotEvalAllowed:(Ljava/lang/String;)Z
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotLanguageContext  Ljava/lang/Object;
            1    2     2          languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public boolean isPolyglotBindingsAccessAllowed(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 194
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 2 /* languageContext */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         1: .line 195
            aload 2 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isPolyglotBindingsAccessAllowed:()Z
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotLanguageContext  Ljava/lang/Object;
            1    2     2          languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public java.time.ZoneId getTimeZone(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/time/ZoneId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 200
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getTimeZone:()Ljava/time/ZoneId;
            areturn
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageContext  Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public java.lang.Object getPolyglotEngine(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageInstance
         0: .line 205
            aload 1 /* polyglotLanguageInstance */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            areturn
        end local 1 // java.lang.Object polyglotLanguageInstance
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    1     0                      this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageInstance  Ljava/lang/Object;
    MethodParameters:
                          Name  Flags
      polyglotLanguageInstance  

  public <C>  getDefaultLanguageView(com.oracle.truffle.api.TruffleLanguage<C>, C, );
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.TruffleLanguage truffleLanguage
        start local 2 // java.lang.Object context
        start local 3 // java.lang.Object value
         0: .line 210
            new com.oracle.truffle.polyglot.DefaultLanguageView
            dup
            aload 1 /* truffleLanguage */
            aload 2 /* context */
            aload 3 /* value */
            invokespecial com.oracle.truffle.polyglot.DefaultLanguageView.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Object;Ljava/lang/Object;)V
            areturn
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object context
        end local 1 // com.oracle.truffle.api.TruffleLanguage truffleLanguage
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  truffleLanguage  Lcom/oracle/truffle/api/TruffleLanguage<TC;>;
            0    1     2          context  TC;
            0    1     3            value  Ljava/lang/Object;
    Signature: <C:Ljava/lang/Object;>(Lcom/oracle/truffle/api/TruffleLanguage<TC;>;TC;Ljava/lang/Object;)Ljava/lang/Object;
    MethodParameters:
                 Name  Flags
      truffleLanguage  
      context          
      value            

  public java.lang.Object getLanguageView(com.oracle.truffle.api.nodes.LanguageInfo, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo viewLanguage
        start local 2 // java.lang.Object value
         0: .line 215
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 1 /* viewLanguage */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 3 /* language */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 216
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 3 /* language */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContextInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         2: .line 217
            aload 4 /* context */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageView:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo viewLanguage
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1  viewLanguage  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    3     2         value  Ljava/lang/Object;
            1    3     3      language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            2    3     4       context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
              Name  Flags
      viewLanguage  
      value         

  public java.lang.Object getScopedView(com.oracle.truffle.api.nodes.LanguageInfo, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo viewLanguage
        start local 2 // com.oracle.truffle.api.nodes.Node location
        start local 3 // com.oracle.truffle.api.frame.Frame frame
        start local 4 // java.lang.Object value
         0: .line 222
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 1 /* viewLanguage */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 5 /* language */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 223
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 5 /* language */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContextInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 6 /* context */
        start local 6 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         2: .line 224
            aload 6 /* context */
            aload 2 /* location */
            aload 3 /* frame */
            aload 4 /* value */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getScopedView:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 4 // java.lang.Object value
        end local 3 // com.oracle.truffle.api.frame.Frame frame
        end local 2 // com.oracle.truffle.api.nodes.Node location
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo viewLanguage
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1  viewLanguage  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    3     2      location  Lcom/oracle/truffle/api/nodes/Node;
            0    3     3         frame  Lcom/oracle/truffle/api/frame/Frame;
            0    3     4         value  Ljava/lang/Object;
            1    3     5      language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            2    3     6       context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
              Name  Flags
      viewLanguage  
      location      
      frame         
      value         

  public com.oracle.truffle.api.nodes.LanguageInfo getLanguageInfo(, java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotInstrument
        start local 2 // java.lang.Class languageClass
         0: .line 229
            aload 1 /* polyglotInstrument */
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            getfield com.oracle.truffle.polyglot.PolyglotInstrument.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 2 /* languageClass */
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguage:(Ljava/lang/Class;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.info:Lcom/oracle/truffle/api/nodes/LanguageInfo;
            areturn
        end local 2 // java.lang.Class languageClass
        end local 1 // java.lang.Object polyglotInstrument
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotInstrument  Ljava/lang/Object;
            0    1     2       languageClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    Signature: (Ljava/lang/Object;Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
    MethodParameters:
                    Name  Flags
      polyglotInstrument  
      languageClass       

  public com.oracle.truffle.api.CallTarget parseForLanguage(java.lang.Object, com.oracle.truffle.api.source.Source, java.lang.String[], boolean);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;Z)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object sourceLanguageContext
        start local 2 // com.oracle.truffle.api.source.Source source
        start local 3 // java.lang.String[] argumentNames
        start local 4 // boolean allowInternal
         0: .line 234
            aload 1 /* sourceLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 5 /* sourceContext */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext sourceContext
         1: .line 235
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 5 /* sourceContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            if_acmpeq 4
         2: .line 236
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         3: .line 237
            ldc "The context is not entered."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         4: .line 239
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 5 /* sourceContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 5 /* sourceContext */
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getLanguage:()Ljava/lang/String;
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getMimeType:()Ljava/lang/String;
            iconst_1
            iload 4 /* allowInternal */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.findLanguage:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 6 /* targetLanguage */
        start local 6 // com.oracle.truffle.polyglot.PolyglotLanguage targetLanguage
         5: .line 240
            aload 5 /* sourceContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 6 /* targetLanguage */
            aload 5 /* sourceContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContextInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 7 /* targetContext */
        start local 7 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetContext
         6: .line 241
            aload 7 /* targetContext */
            aload 5 /* sourceContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getLanguageInstance:()Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
         7: .line 242
            aload 7 /* targetContext */
            aload 5 /* sourceContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            aload 2 /* source */
            aload 3 /* argumentNames */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.parseCached:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/api/source/Source;[Ljava/lang/String;)Lcom/oracle/truffle/api/CallTarget;
            areturn
        end local 7 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetContext
        end local 6 // com.oracle.truffle.polyglot.PolyglotLanguage targetLanguage
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext sourceContext
        end local 4 // boolean allowInternal
        end local 3 // java.lang.String[] argumentNames
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // java.lang.Object sourceLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    8     0                   this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    8     1  sourceLanguageContext  Ljava/lang/Object;
            0    8     2                 source  Lcom/oracle/truffle/api/source/Source;
            0    8     3          argumentNames  [Ljava/lang/String;
            0    8     4          allowInternal  Z
            1    8     5          sourceContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            5    8     6         targetLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            6    8     7          targetContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                       Name  Flags
      sourceLanguageContext  
      source                 
      argumentNames          
      allowInternal          

  public com.oracle.truffle.api.TruffleLanguage$Env getEnvForInstrument(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.String languageId
        start local 2 // java.lang.String mimeType
         0: .line 247
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 248
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aconst_null
            aload 1 /* languageId */
            aload 2 /* mimeType */
            iconst_1
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.findLanguage:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 4 /* foundLanguage */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguage foundLanguage
         2: .line 249
            aload 3 /* context */
            aload 4 /* foundLanguage */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContextInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguage foundLanguage
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 2 // java.lang.String mimeType
        end local 1 // java.lang.String languageId
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1     languageId  Ljava/lang/String;
            0    3     2       mimeType  Ljava/lang/String;
            1    3     3        context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            2    3     4  foundLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    MethodParameters:
            Name  Flags
      languageId  
      mimeType    

  public org.graalvm.polyglot.SourceSection createSourceSection(java.lang.Object, org.graalvm.polyglot.Source, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Ljava/lang/Object;Lorg/graalvm/polyglot/Source;Lcom/oracle/truffle/api/source/SourceSection;)Lorg/graalvm/polyglot/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotObject
        start local 2 // org.graalvm.polyglot.Source source
        start local 3 // com.oracle.truffle.api.source.SourceSection sectionImpl
         0: .line 254
            aload 1 /* polyglotObject */
            checkcast com.oracle.truffle.polyglot.PolyglotImpl$VMObject
            invokeinterface com.oracle.truffle.polyglot.PolyglotImpl$VMObject.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            astore 4 /* impl */
        start local 4 // com.oracle.truffle.polyglot.PolyglotImpl impl
         1: .line 255
            aload 4 /* impl */
            aload 3 /* sectionImpl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getPolyglotSourceSection:(Lcom/oracle/truffle/api/source/SourceSection;)Lorg/graalvm/polyglot/SourceSection;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotImpl impl
        end local 3 // com.oracle.truffle.api.source.SourceSection sectionImpl
        end local 2 // org.graalvm.polyglot.Source source
        end local 1 // java.lang.Object polyglotObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotObject  Ljava/lang/Object;
            0    2     2          source  Lorg/graalvm/polyglot/Source;
            0    2     3     sectionImpl  Lcom/oracle/truffle/api/source/SourceSection;
            1    2     4            impl  Lcom/oracle/truffle/polyglot/PolyglotImpl;
    MethodParameters:
                Name  Flags
      polyglotObject  
      source          
      sectionImpl     

  public com.oracle.truffle.api.TruffleFile getTruffleFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.String path
         0: .line 260
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 261
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 2 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getPublicFileSystemContext:()Ljava/lang/Object;
            aload 1 /* path */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getTruffleFile:(Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 1 // java.lang.String path
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1     path  Ljava/lang/String;
            1    2     2  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
      Name  Flags
      path  

  public com.oracle.truffle.api.TruffleFile getTruffleFile(java.net.URI);
    descriptor: (Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.net.URI uri
         0: .line 266
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 267
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 2 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getPublicFileSystemContext:()Ljava/lang/Object;
            aload 1 /* uri */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getTruffleFile:(Ljava/lang/Object;Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 1 // java.net.URI uri
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1      uri  Ljava/net/URI;
            1    2     2  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
      Name  Flags
      uri   

  public <T> java.lang.Iterable<T> loadServices(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Class type
         0: .line 272
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 2 /* found */
        start local 2 // java.util.Map found
         1: .line 274
            aload 1 /* type */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ldc Lcom/oracle/truffle/api/Truffle;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            if_acmpne 6
         2: .line 275
            aload 1 /* type */
            aload 1 /* type */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Class java.util.Map top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Object
            astore 3 /* service */
        start local 3 // java.lang.Object service
         4: .line 276
            aload 2 /* found */
            aload 3 /* service */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* service */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.lang.Object service
         5: .line 275
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 280
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Class java.util.Map
      StackMap stack:
            invokestatic com.oracle.truffle.polyglot.EngineAccessor.locatorOrDefaultLoaders:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Class java.util.Map top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier
            astore 3 /* loaderSupplier */
        start local 3 // com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier loaderSupplier
         8: .line 281
            aload 3 /* loaderSupplier */
            invokevirtual com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier.get:()Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 5 /* loader */
        start local 5 // java.lang.ClassLoader loader
         9: .line 282
            aload 5 /* loader */
            aload 1 /* type */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.seesTheSameClass:(Ljava/lang/ClassLoader;Ljava/lang/Class;)Z
            ifeq 15
        10: .line 283
            getstatic com.oracle.truffle.polyglot.EngineAccessor.JDKSERVICES:Lcom/oracle/truffle/api/impl/Accessor$JDKSupport;
            aload 5 /* loader */
            aconst_null
            invokevirtual com.oracle.truffle.api.impl.Accessor$JDKSupport.exportTo:(Ljava/lang/ClassLoader;Ljava/lang/String;)V
        11: .line 284
            aload 1 /* type */
            aload 5 /* loader */
            invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            astore 7
            goto 14
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Class java.util.Map com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier java.util.Iterator java.lang.ClassLoader top java.util.Iterator
      StackMap stack:
        12: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Object
            astore 6 /* service */
        start local 6 // java.lang.Object service
        13: .line 285
            aload 2 /* found */
            aload 6 /* service */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 6 /* service */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.Object service
        14: .line 284
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 5 // java.lang.ClassLoader loader
        end local 3 // com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier loaderSupplier
        15: .line 280
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Class java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        16: .line 289
            aload 2 /* found */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            areturn
        end local 2 // java.util.Map found
        end local 1 // java.lang.Class type
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0   17     1            type  Ljava/lang/Class<TT;>;
            1   17     2           found  Ljava/util/Map<Ljava/lang/Class<*>;TT;>;
            4    5     3         service  TT;
            8   15     3  loaderSupplier  Lcom/oracle/truffle/polyglot/EngineAccessor$AbstractClassLoaderSupplier;
            9   15     5          loader  Ljava/lang/ClassLoader;
           13   14     6         service  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Ljava/lang/Iterable<TT;>;
    MethodParameters:
      Name  Flags
      type  

  private static boolean seesTheSameClass(java.lang.ClassLoader, java.lang.Class<?>);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.ClassLoader loader
        start local 1 // java.lang.Class type
         0: .line 294
            aload 0 /* loader */
            ifnull 1
            aload 0 /* loader */
            aload 1 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            aload 1 /* type */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
         2: ireturn
         3: .line 295
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
         4: .line 296
            iconst_0
            ireturn
        end local 1 // java.lang.Class type
        end local 0 // java.lang.ClassLoader loader
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  loader  Ljava/lang/ClassLoader;
            0    5     1    type  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.ClassNotFoundException
    Signature: (Ljava/lang/ClassLoader;Ljava/lang/Class<*>;)Z
    MethodParameters:
        Name  Flags
      loader  
      type    

  public <T> T lookup(com.oracle.truffle.api.InstrumentInfo, java.lang.Class<T>);
    descriptor: (Lcom/oracle/truffle/api/InstrumentInfo;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.InstrumentInfo info
        start local 2 // java.lang.Class serviceClass
         0: .line 302
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* info */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getPolyglotInstrument:(Lcom/oracle/truffle/api/InstrumentInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 3 /* instrument */
        start local 3 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         1: .line 303
            aload 3 /* instrument */
            aload 2 /* serviceClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.lookupInternal:(Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        end local 2 // java.lang.Class serviceClass
        end local 1 // com.oracle.truffle.api.InstrumentInfo info
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1          info  Lcom/oracle/truffle/api/InstrumentInfo;
            0    2     2  serviceClass  Ljava/lang/Class<TT;>;
            1    2     3    instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/InstrumentInfo;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
              Name  Flags
      info          
      serviceClass  

  public <S> S lookup(com.oracle.truffle.api.nodes.LanguageInfo, java.lang.Class<S>);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo info
        start local 2 // java.lang.Class serviceClass
         0: .line 308
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 1 /* info */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 3 /* language */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 309
            aload 3 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            aload 2 /* serviceClass */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.supportsService:(Ljava/lang/Class;)Z
            ifne 3
         2: .line 310
            aconst_null
            areturn
         3: .line 312
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 3 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 4 /* languageContext */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         4: .line 313
            aload 4 /* languageContext */
            aload 3 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureCreated:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
         5: .line 314
            aload 4 /* languageContext */
            aload 2 /* serviceClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.lookupService:(Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 2 // java.lang.Class serviceClass
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo info
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    6     1             info  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    6     2     serviceClass  Ljava/lang/Class<TS;>;
            1    6     3         language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            4    6     4  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    Signature: <S:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Class<TS;>;)TS;
    MethodParameters:
              Name  Flags
      info          
      serviceClass  

  public <C, T extends com.oracle.truffle.api.TruffleLanguage<C>> C getCurrentContext(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Class languageClass
         0: .line 320
            aload 1 /* languageClass */
            invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
         1: .line 321
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getLanguageContext:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         2: .line 322
            aload 2 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 3 /* env */
        start local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
         3: .line 323
            aload 3 /* env */
            ifnonnull 6
         4: .line 324
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         5: .line 325
            ldc "Current context is not yet initialized or already disposed."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         6: .line 327
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.api.TruffleLanguage$Env
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 3 /* env */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
            areturn
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    7     1  languageClass  Ljava/lang/Class<TT;>;
            2    7     2        context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            3    7     3            env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    Signature: <C:Ljava/lang/Object;T:Lcom/oracle/truffle/api/TruffleLanguage<TC;>;>(Ljava/lang/Class<TT;>;)TC;
    MethodParameters:
               Name  Flags
      languageClass  

  public com.oracle.truffle.api.TruffleContext getTruffleContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 332
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 2 /* languageContext */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         1: .line 333
            aload 2 /* languageContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotLanguageContext  Ljava/lang/Object;
            1    2     2          languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public com.oracle.truffle.api.TruffleContext getCurrentCreatorTruffleContext();
    descriptor: ()Lcom/oracle/truffle/api/TruffleContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 338
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 1 /* context */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 339
            aload 1 /* context */
            ifnull 2
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            goto 3
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.TruffleContext
         3: areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            1    4     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  public <T extends com.oracle.truffle.api.TruffleLanguage<?>> T getCurrentLanguage(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Class languageClass
         0: .line 345
            aload 1 /* languageClass */
            invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
         1: .line 346
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         2: .line 347
            aload 2 /* context */
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getLanguageContext:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 3 /* env */
        start local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
         3: .line 348
            aload 3 /* env */
            ifnonnull 6
         4: .line 349
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         5: .line 350
            ldc "Current context is not yet initialized or already disposed."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         6: .line 352
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.api.TruffleLanguage$Env
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 3 /* env */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguage:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguage;
            areturn
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    7     1  languageClass  Ljava/lang/Class<TT;>;
            2    7     2        context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            3    7     3            env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<*>;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
               Name  Flags
      languageClass  

  public java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo> getInternalLanguages();
    descriptor: (Ljava/lang/Object;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotObject
         0: .line 357
            aload 1 /* polyglotObject */
            instanceof com.oracle.truffle.polyglot.PolyglotLanguageContext
            ifeq 2
         1: .line 358
            aload 1 /* polyglotObject */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAccessibleLanguages:(Z)Ljava/util/Map;
            areturn
         2: .line 360
      StackMap locals:
      StackMap stack:
            aload 1 /* polyglotObject */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getEngine:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalLanguageInfo:Ljava/util/Map;
            areturn
        end local 1 // java.lang.Object polyglotObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1  polyglotObject  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
    MethodParameters:
                Name  Flags
      polyglotObject  

  public java.util.Map<java.lang.String, com.oracle.truffle.api.nodes.LanguageInfo> getPublicLanguages();
    descriptor: (Ljava/lang/Object;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotObject
         0: .line 366
            aload 1 /* polyglotObject */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAccessibleLanguages:(Z)Ljava/util/Map;
            areturn
        end local 1 // java.lang.Object polyglotObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotObject  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/nodes/LanguageInfo;>;
    MethodParameters:
                Name  Flags
      polyglotObject  

  public java.util.Map<java.lang.String, com.oracle.truffle.api.InstrumentInfo> getInstruments();
    descriptor: (Ljava/lang/Object;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotObject
         0: .line 371
            aload 1 /* polyglotObject */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getEngine:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToInternalInstrumentInfo:Ljava/util/Map;
            areturn
        end local 1 // java.lang.Object polyglotObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotObject  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/api/InstrumentInfo;>;
    MethodParameters:
                Name  Flags
      polyglotObject  

  private static com.oracle.truffle.polyglot.PolyglotEngineImpl getEngine(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object polyglotObject
         0: .line 375
            aload 0 /* polyglotObject */
            instanceof com.oracle.truffle.polyglot.PolyglotImpl$VMObject
            ifne 2
         1: .line 376
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
         2: .line 378
      StackMap locals:
      StackMap stack:
            aload 0 /* polyglotObject */
            checkcast com.oracle.truffle.polyglot.PolyglotImpl$VMObject
            invokeinterface com.oracle.truffle.polyglot.PolyglotImpl$VMObject.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            areturn
        end local 0 // java.lang.Object polyglotObject
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0  polyglotObject  Ljava/lang/Object;
    Exceptions:
      throws java.lang.AssertionError
    MethodParameters:
                Name  Flags
      polyglotObject  

  public com.oracle.truffle.api.TruffleLanguage$Env getEnvForInstrument(com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Lcom/oracle/truffle/api/TruffleLanguage$Env;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo info
         0: .line 383
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 1 /* info */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 2 /* language */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
         1: .line 384
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 2 /* language */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContextInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo info
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1      info  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            1    2     2  language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    MethodParameters:
      Name  Flags
      info  

  static com.oracle.truffle.polyglot.PolyglotLanguage findObjectLanguage(com.oracle.truffle.polyglot.PolyglotEngineImpl, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        start local 1 // java.lang.Object value
         0: .line 388
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 2 /* lib */
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary lib
         1: .line 389
            aload 2 /* lib */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasLanguage:(Ljava/lang/Object;)Z
            ifeq 6
         2: .line 391
            aload 0 /* engine */
            aload 2 /* lib */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getLanguage:(Ljava/lang/Object;)Ljava/lang/Class;
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguage:(Ljava/lang/Class;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
         3: areturn
         4: .line 392
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 3 /* e */
        start local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         5: .line 393
            aload 3 /* e */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         6: .line 396
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary lib
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    7     1   value  Ljava/lang/Object;
            1    7     2     lib  Lcom/oracle/truffle/api/interop/InteropLibrary;
            5    6     3       e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
        Name  Flags
      engine  
      value   

  static com.oracle.truffle.polyglot.PolyglotLanguage getLanguageView(com.oracle.truffle.polyglot.PolyglotEngineImpl, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        start local 1 // java.lang.Object value
         0: .line 401
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 2 /* lib */
        start local 2 // com.oracle.truffle.api.interop.InteropLibrary lib
         1: .line 402
            aload 2 /* lib */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasLanguage:(Ljava/lang/Object;)Z
            ifeq 6
         2: .line 404
            aload 0 /* engine */
            aload 2 /* lib */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getLanguage:(Ljava/lang/Object;)Ljava/lang/Class;
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getLanguage:(Ljava/lang/Class;Z)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
         3: areturn
         4: .line 405
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl java.lang.Object com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 3 /* e */
        start local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         5: .line 406
            aload 3 /* e */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         6: .line 409
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.oracle.truffle.api.interop.InteropLibrary lib
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    7     1   value  Ljava/lang/Object;
            1    7     2     lib  Lcom/oracle/truffle/api/interop/InteropLibrary;
            5    6     3       e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
        Name  Flags
      engine  
      value   

  static boolean isPrimitive(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object value
         0: .line 414
            aload 0 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 1 /* valueClass */
        start local 1 // java.lang.Class valueClass
         1: .line 415
            aload 1 /* valueClass */
            ldc Ljava/lang/Boolean;
            if_acmpeq 5
            aload 1 /* valueClass */
            ldc Ljava/lang/Byte;
            if_acmpeq 5
            aload 1 /* valueClass */
            ldc Ljava/lang/Short;
            if_acmpeq 5
            aload 1 /* valueClass */
            ldc Ljava/lang/Integer;
            if_acmpeq 5
            aload 1 /* valueClass */
            ldc Ljava/lang/Long;
            if_acmpeq 5
         2: .line 416
            aload 1 /* valueClass */
            ldc Ljava/lang/Float;
            if_acmpeq 5
            aload 1 /* valueClass */
            ldc Ljava/lang/Double;
            if_acmpeq 5
         3: .line 417
            aload 1 /* valueClass */
            ldc Ljava/lang/Character;
            if_acmpeq 5
            aload 1 /* valueClass */
            ldc Ljava/lang/String;
            if_acmpeq 5
         4: .line 415
            iconst_0
            ireturn
      StackMap locals: java.lang.Class
      StackMap stack:
         5: iconst_1
            ireturn
        end local 1 // java.lang.Class valueClass
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0       value  Ljava/lang/Object;
            1    6     1  valueClass  Ljava/lang/Class<*>;
    MethodParameters:
       Name  Flags
      value  final

  public com.oracle.truffle.api.TruffleLanguage$Env getLegacyLanguageEnv(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)Lcom/oracle/truffle/api/TruffleLanguage$Env;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object obj
        start local 2 // boolean nullForHost
         0: .line 422
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 423
            aload 3 /* context */
            ifnonnull 3
         2: .line 424
            aconst_null
            areturn
         3: .line 426
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 3 /* context */
            aload 1 /* obj */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.findLegacyLanguage:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 4 /* language */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
         4: .line 427
            aload 4 /* language */
            ifnonnull 6
         5: .line 428
            aconst_null
            areturn
         6: .line 430
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            aload 3 /* context */
            aload 4 /* language */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 2 // boolean nullForHost
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    7     1          obj  Ljava/lang/Object;
            0    7     2  nullForHost  Z
            1    7     3      context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            4    7     4     language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    MethodParameters:
             Name  Flags
      obj          
      nullForHost  

  private static com.oracle.truffle.polyglot.PolyglotLanguage findLegacyLanguage(com.oracle.truffle.polyglot.PolyglotContextImpl, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        start local 1 // java.lang.Object value
         0: .line 434
            aconst_null
            astore 2 /* foundLanguage */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage foundLanguage
         1: .line 435
            aload 0 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.contexts:[Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage top int int com.oracle.truffle.polyglot.PolyglotLanguageContext[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* searchContext */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext searchContext
         3: .line 436
            aload 3 /* searchContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.isCreated:()Z
            ifeq 8
         4: .line 437
            aload 3 /* searchContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 7 /* searchEnv */
        start local 7 // com.oracle.truffle.api.TruffleLanguage$Env searchEnv
         5: .line 438
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 7 /* searchEnv */
            aload 1 /* value */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.isObjectOfLanguage:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;)Z
            ifeq 8
         6: .line 439
            aload 3 /* searchContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 2 /* foundLanguage */
         7: .line 440
            goto 10
        end local 7 // com.oracle.truffle.api.TruffleLanguage$Env searchEnv
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext searchContext
         8: .line 435
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 2
        10: .line 444
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            aload 2 /* foundLanguage */
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage foundLanguage
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0        context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   11     1          value  Ljava/lang/Object;
            1   11     2  foundLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            3    8     3  searchContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            5    8     7      searchEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
         Name  Flags
      context  
      value    

  public java.lang.Object getCurrentPolyglotEngine();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 449
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 1 /* context */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 450
            aload 1 /* context */
            ifnonnull 3
         2: .line 451
            aconst_null
            areturn
         3: .line 453
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            1    4     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  public boolean isMultiThreaded(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object guestObject
         0: .line 458
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 459
            aload 2 /* context */
            ifnonnull 3
         2: .line 460
            iconst_1
            ireturn
         3: .line 462
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 1 /* guestObject */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.isPrimitive:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 463
            iconst_0
            ireturn
         5: .line 464
      StackMap locals:
      StackMap stack:
            aload 1 /* guestObject */
            instanceof com.oracle.truffle.polyglot.HostObject
            ifne 6
            aload 1 /* guestObject */
            instanceof com.oracle.truffle.polyglot.PolyglotBindings
            ifeq 7
         6: .line 465
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         7: .line 467
      StackMap locals:
      StackMap stack:
            aload 2 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* guestObject */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.findObjectLanguage:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 3 /* language */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
         8: .line 468
            aload 3 /* language */
            ifnonnull 10
         9: .line 470
            iconst_1
            ireturn
        10: .line 472
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            aload 2 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.singleThreaded:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ireturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 1 // java.lang.Object guestObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0   11     1  guestObject  Ljava/lang/Object;
            1   11     2      context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            8   11     3     language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    MethodParameters:
             Name  Flags
      guestObject  

  public boolean isEvalRoot(com.oracle.truffle.api.nodes.RootNode);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.RootNode target
         0: .line 478
            iconst_0
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.RootNode target
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  target  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
        Name  Flags
      target  

  public java.lang.RuntimeException engineToLanguageException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Throwable t
         0: .line 483
            aload 1 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            areturn
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     

  public java.lang.RuntimeException engineToInstrumentException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Throwable t
         0: .line 488
            aload 1 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.engineToInstrumentException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            areturn
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     

  public java.lang.Object getCurrentFileSystemContext();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 493
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.requireContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getPublicFileSystemContext:()Ljava/lang/Object;
            areturn
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;

  public java.lang.Object getPublicFileSystemContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 498
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getPublicFileSystemContext:()Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageContext  Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public java.lang.Object getInternalFileSystemContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 503
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getInternalFileSystemContext:()Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageContext  Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public java.util.Map<java.lang.String, java.util.Collection<? extends com.oracle.truffle.api.TruffleFile$FileTypeDetector>> getEngineFileTypeDetectors();
    descriptor: (Ljava/lang/Object;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object engineFileSystemObject
         0: .line 508
            aload 1 /* engineFileSystemObject */
            instanceof com.oracle.truffle.polyglot.PolyglotLanguageContext
            ifeq 2
         1: .line 509
            aload 1 /* engineFileSystemObject */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            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.getFileTypeDetectorsSupplier:()Ljava/util/function/Supplier;
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.util.Map
            areturn
         2: .line 510
      StackMap locals:
      StackMap stack:
            aload 1 /* engineFileSystemObject */
            instanceof com.oracle.truffle.polyglot.PolyglotSource$EmbedderFileSystemContext
            ifeq 4
         3: .line 511
            aload 1 /* engineFileSystemObject */
            checkcast com.oracle.truffle.polyglot.PolyglotSource$EmbedderFileSystemContext
            getfield com.oracle.truffle.polyglot.PolyglotSource$EmbedderFileSystemContext.fileTypeDetectors:Ljava/util/function/Supplier;
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.util.Map
            areturn
         4: .line 513
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 1 // java.lang.Object engineFileSystemObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    5     0                    this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    5     1  engineFileSystemObject  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;>;
    MethodParameters:
                        Name  Flags
      engineFileSystemObject  

  public java.util.Set<java.lang.String> getValidMimeTypes(, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object engineObject
        start local 2 // java.lang.String language
         0: .line 519
            aload 1 /* engineObject */
            aload 2 /* language */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getLanguageCache:(Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/polyglot/LanguageCache;
            astore 3 /* lang */
        start local 3 // com.oracle.truffle.polyglot.LanguageCache lang
         1: .line 520
            aload 3 /* lang */
            ifnull 3
         2: .line 521
            aload 3 /* lang */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getMimeTypes:()Ljava/util/Set;
            areturn
         3: .line 523
      StackMap locals: com.oracle.truffle.polyglot.LanguageCache
      StackMap stack:
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            areturn
        end local 3 // com.oracle.truffle.polyglot.LanguageCache lang
        end local 2 // java.lang.String language
        end local 1 // java.lang.Object engineObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    4     1  engineObject  Ljava/lang/Object;
            0    4     2      language  Ljava/lang/String;
            1    4     3          lang  Lcom/oracle/truffle/polyglot/LanguageCache;
    Signature: (Ljava/lang/Object;Ljava/lang/String;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
              Name  Flags
      engineObject  
      language      

  private static com.oracle.truffle.polyglot.LanguageCache getLanguageCache(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/polyglot/LanguageCache;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Object engineObject
        start local 1 // java.lang.String language
         0: .line 528
            aload 0 /* engineObject */
            instanceof com.oracle.truffle.polyglot.PolyglotLanguageContext
            ifeq 5
         1: .line 529
            aload 0 /* engineObject */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            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.idToLanguage:Ljava/util/Map;
            aload 1 /* language */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 2 /* polyglotLanguage */
        start local 2 // com.oracle.truffle.polyglot.PolyglotLanguage polyglotLanguage
         2: .line 530
            aload 2 /* polyglotLanguage */
            ifnull 4
         3: .line 531
            aload 2 /* polyglotLanguage */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            areturn
         4: .line 533
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotLanguage polyglotLanguage
         5: .line 535
      StackMap locals:
      StackMap stack:
            aload 0 /* engineObject */
            instanceof com.oracle.truffle.polyglot.PolyglotSource$EmbedderFileSystemContext
            ifeq 7
         6: .line 536
            aload 0 /* engineObject */
            checkcast com.oracle.truffle.polyglot.PolyglotSource$EmbedderFileSystemContext
            getfield com.oracle.truffle.polyglot.PolyglotSource$EmbedderFileSystemContext.cachedLanguages:Ljava/util/Map;
            aload 1 /* language */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.LanguageCache
            areturn
         7: .line 538
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 1 // java.lang.String language
        end local 0 // java.lang.Object engineObject
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0      engineObject  Ljava/lang/Object;
            0    8     1          language  Ljava/lang/String;
            2    5     2  polyglotLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    Exceptions:
      throws java.lang.AssertionError
    MethodParameters:
              Name  Flags
      engineObject  
      language      

  public boolean isCharacterBasedSource(java.lang.Object, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object fsEngineObject
        start local 2 // java.lang.String language
        start local 3 // java.lang.String mimeType
         0: .line 544
            aload 1 /* fsEngineObject */
            aload 2 /* language */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getLanguageCache:(Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/polyglot/LanguageCache;
            astore 4 /* cache */
        start local 4 // com.oracle.truffle.polyglot.LanguageCache cache
         1: .line 545
            aload 4 /* cache */
            ifnonnull 3
         2: .line 546
            iconst_1
            ireturn
         3: .line 548
      StackMap locals: com.oracle.truffle.polyglot.LanguageCache
      StackMap stack:
            aload 3 /* mimeType */
            astore 5 /* useMimeType */
        start local 5 // java.lang.String useMimeType
         4: .line 549
            aload 5 /* useMimeType */
            ifnonnull 6
         5: .line 550
            aload 4 /* cache */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getDefaultMimeType:()Ljava/lang/String;
            astore 5 /* useMimeType */
         6: .line 552
      StackMap locals: java.lang.String
      StackMap stack:
            aload 5 /* useMimeType */
            ifnull 7
            aload 4 /* cache */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getMimeTypes:()Ljava/util/Set;
            aload 5 /* useMimeType */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 553
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 555
      StackMap locals:
      StackMap stack:
            aload 4 /* cache */
            aload 5 /* useMimeType */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.isCharacterMimeType:(Ljava/lang/String;)Z
            ireturn
        end local 5 // java.lang.String useMimeType
        end local 4 // com.oracle.truffle.polyglot.LanguageCache cache
        end local 3 // java.lang.String mimeType
        end local 2 // java.lang.String language
        end local 1 // java.lang.Object fsEngineObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    9     1  fsEngineObject  Ljava/lang/Object;
            0    9     2        language  Ljava/lang/String;
            0    9     3        mimeType  Ljava/lang/String;
            1    9     4           cache  Lcom/oracle/truffle/polyglot/LanguageCache;
            4    9     5     useMimeType  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      fsEngineObject  
      language        
      mimeType        

  public boolean isMimeTypeSupported(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // java.lang.String mimeType
         0: .line 560
            aload 1 /* polyglotLanguageContext */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getEngine:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            astore 3 /* engine */
        start local 3 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         1: .line 561
            aload 3 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.idToLanguage:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Object java.lang.String com.oracle.truffle.polyglot.PolyglotEngineImpl top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 4 /* language */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
         3: .line 562
            aload 4 /* language */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getMimeTypes:()Ljava/util/Set;
            aload 2 /* mimeType */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 563
            iconst_1
            ireturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
         5: .line 561
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 566
            iconst_0
            ireturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 2 // java.lang.String mimeType
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    7     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    7     1  polyglotLanguageContext  Ljava/lang/Object;
            0    7     2                 mimeType  Ljava/lang/String;
            1    7     3                   engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            3    5     4                 language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      mimeType                 

  public java.lang.Object getInstrumentationHandler(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotObject
         0: .line 571
            aload 1 /* polyglotObject */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getEngine:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object polyglotObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotObject  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      polyglotObject  

  public java.lang.Object importSymbol(java.lang.Object, com.oracle.truffle.api.TruffleLanguage$Env, java.lang.String);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 3 // java.lang.String symbolName
         0: .line 577
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         1: .line 578
            aload 4 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.polyglotBindings:Ljava/util/Map;
            aload 3 /* symbolName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Value
            astore 5 /* value */
        start local 5 // org.graalvm.polyglot.Value value
         2: .line 579
            aload 5 /* value */
            ifnull 4
         3: .line 580
            aload 4 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 5 /* value */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getReceiver:(Lorg/graalvm/polyglot/Value;)Ljava/lang/Object;
            areturn
         4: .line 582
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext org.graalvm.polyglot.Value
      StackMap stack:
            aload 4 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 3 /* symbolName */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.findLegacyExportedSymbol:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            astore 5 /* value */
         5: .line 583
            aload 5 /* value */
            ifnull 7
         6: .line 584
            aload 4 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 5 /* value */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getReceiver:(Lorg/graalvm/polyglot/Value;)Ljava/lang/Object;
            areturn
         7: .line 587
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // org.graalvm.polyglot.Value value
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 3 // java.lang.String symbolName
        end local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    8     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    8     1  polyglotLanguageContext  Ljava/lang/Object;
            0    8     2                      env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    8     3               symbolName  Ljava/lang/String;
            1    8     4                  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            2    8     5                    value  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      env                      
      symbolName               

  public java.lang.Object lookupHostSymbol(java.lang.Object, com.oracle.truffle.api.TruffleLanguage$Env, java.lang.String);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 3 // java.lang.String symbolName
         0: .line 592
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         1: .line 593
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContextImpl:()Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            astore 5 /* hostContext */
        start local 5 // com.oracle.truffle.polyglot.HostLanguage$HostContext hostContext
         2: .line 594
            aload 5 /* hostContext */
            aload 3 /* symbolName */
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* clazz */
        start local 6 // java.lang.Class clazz
         3: .line 595
            aload 6 /* clazz */
            ifnonnull 5
         4: .line 596
            aconst_null
            areturn
         5: .line 598
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.HostLanguage$HostContext java.lang.Class
      StackMap stack:
            aload 6 /* clazz */
            aload 4 /* context */
            invokestatic com.oracle.truffle.polyglot.HostObject.forStaticClass:(Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
            areturn
        end local 6 // java.lang.Class clazz
        end local 5 // com.oracle.truffle.polyglot.HostLanguage$HostContext hostContext
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 3 // java.lang.String symbolName
        end local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    6     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    6     1  polyglotLanguageContext  Ljava/lang/Object;
            0    6     2                      env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    6     3               symbolName  Ljava/lang/String;
            1    6     4                  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            2    6     5              hostContext  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            3    6     6                    clazz  Ljava/lang/Class<*>;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      env                      
      symbolName               

  public  asHostSymbol(, java.lang.Class<?>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // java.lang.Class symbolClass
         0: .line 603
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         1: .line 604
            aload 2 /* symbolClass */
            aload 3 /* context */
            invokestatic com.oracle.truffle.polyglot.HostObject.forStaticClass:(Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 2 // java.lang.Class symbolClass
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotLanguageContext  Ljava/lang/Object;
            0    2     2              symbolClass  Ljava/lang/Class<*>;
            1    2     3                  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;)Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      symbolClass              

  public boolean isHostAccessAllowed(java.lang.Object, com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 609
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         1: .line 610
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.hostLookupAllowed:Z
            ireturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotLanguageContext  Ljava/lang/Object;
            0    2     2                      env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    2     3                  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      env                      

  public boolean isNativeAccessAllowed(java.lang.Object, com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 615
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         1: .line 616
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.nativeAccessAllowed:Z
            ireturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 2 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotLanguageContext  Ljava/lang/Object;
            0    2     2                      env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    2     3                  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      env                      

  public boolean inContextPreInitialization(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotObject
         0: .line 622
            aload 1 /* polyglotObject */
            instanceof com.oracle.truffle.polyglot.PolyglotContextImpl
            ifeq 3
         1: .line 623
            aload 1 /* polyglotObject */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 2 /* polyglotContext */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
         2: .line 624
            goto 9
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
      StackMap locals:
      StackMap stack:
         3: aload 1 /* polyglotObject */
            instanceof com.oracle.truffle.polyglot.PolyglotLanguageContext
            ifeq 6
         4: .line 625
            aload 1 /* polyglotObject */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* polyglotContext */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
         5: .line 626
            goto 9
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
      StackMap locals:
      StackMap stack:
         6: aload 1 /* polyglotObject */
            instanceof com.oracle.truffle.polyglot.PolyglotSource$EmbedderFileSystemContext
            ifeq 8
         7: .line 627
            iconst_0
            ireturn
         8: .line 629
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
         9: .line 631
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 2 /* polyglotContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.inContextPreInitialization:Z
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
        end local 1 // java.lang.Object polyglotObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0   10     1   polyglotObject  Ljava/lang/Object;
            2    3     2  polyglotContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            5    6     2  polyglotContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            9   10     2  polyglotContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
                Name  Flags
      polyglotObject  

  public void exportSymbol(java.lang.Object, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // java.lang.String symbolName
        start local 3 // java.lang.Object value
         0: .line 637
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         1: .line 638
            aload 3 /* value */
            ifnonnull 4
         2: .line 639
            aload 4 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getPolyglotGuestBindings:()Ljava/util/Map;
            aload 2 /* symbolName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 640
            return
         4: .line 642
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 3 /* value */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.isGuestPrimitive:(Ljava/lang/Object;)Z
            ifne 6
            aload 3 /* value */
            instanceof com.oracle.truffle.api.interop.TruffleObject
            ifne 6
         5: .line 643
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid exported value. Must be an interop value."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 645
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getPolyglotGuestBindings:()Ljava/util/Map;
            aload 2 /* symbolName */
            aload 4 /* context */
            aload 3 /* value */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 646
            return
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 3 // java.lang.Object value
        end local 2 // java.lang.String symbolName
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    8     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    8     1  polyglotLanguageContext  Ljava/lang/Object;
            0    8     2               symbolName  Ljava/lang/String;
            0    8     3                    value  Ljava/lang/Object;
            1    8     4                  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      symbolName               
      value                    

  public java.util.Map<java.lang.String, ? extends java.lang.Object> getExportedSymbols();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 651
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 1 /* currentContext */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl currentContext
         1: .line 652
            aload 1 /* currentContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getPolyglotBindings:()Lorg/graalvm/polyglot/Value;
            ldc Ljava/util/Map;
            invokevirtual org.graalvm.polyglot.Value.as:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.Map
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl currentContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            1    2     1  currentContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    Signature: ()Ljava/util/Map<Ljava/lang/String;+Ljava/lang/Object;>;

  public java.lang.Object getPolyglotBindingsObject();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 657
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 1 /* currentContext */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl currentContext
         1: .line 658
            aload 1 /* currentContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getPolyglotBindingsObject:()Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl currentContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            1    2     1  currentContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  public java.lang.Object toGuestValue(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object context
         0: .line 663
            aload 2 /* context */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 3 /* languageContext */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         1: .line 664
            aload 1 /* obj */
            instanceof org.graalvm.polyglot.Value
            ifeq 4
         2: .line 665
            aload 3 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 1 /* obj */
            checkcast org.graalvm.polyglot.Value
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getImpl:(Lorg/graalvm/polyglot/Value;)Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;
            checkcast com.oracle.truffle.polyglot.PolyglotValue
            astore 4 /* valueImpl */
        start local 4 // com.oracle.truffle.polyglot.PolyglotValue valueImpl
         3: .line 666
            aload 4 /* valueImpl */
            getfield com.oracle.truffle.polyglot.PolyglotValue.languageContext:Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 3 /* languageContext */
        end local 4 // com.oracle.truffle.polyglot.PolyglotValue valueImpl
         4: .line 668
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 3 /* languageContext */
            aconst_null
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.toGuestValue:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 2 // java.lang.Object context
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    5     1              obj  Ljava/lang/Object;
            0    5     2          context  Ljava/lang/Object;
            1    5     3  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            3    4     4        valueImpl  Lcom/oracle/truffle/polyglot/PolyglotValue;
    MethodParameters:
         Name  Flags
      obj      
      context  

  public java.lang.Object asBoxedGuestValue(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object guestObject
        start local 2 // java.lang.Object polyglotLanguageContext
         0: .line 673
            aload 2 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 3 /* languageContext */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         1: .line 674
            aload 1 /* guestObject */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.isGuestPrimitive:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 675
            aload 1 /* guestObject */
            aload 3 /* languageContext */
            invokestatic com.oracle.truffle.polyglot.HostObject.forObject:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
            areturn
         3: .line 676
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 1 /* guestObject */
            instanceof com.oracle.truffle.api.interop.TruffleObject
            ifeq 5
         4: .line 677
            aload 1 /* guestObject */
            areturn
         5: .line 679
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         6: .line 680
            new java.lang.IllegalArgumentException
            dup
            ldc "Provided value not an interop value."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 2 // java.lang.Object polyglotLanguageContext
        end local 1 // java.lang.Object guestObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    7     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    7     1              guestObject  Ljava/lang/Object;
            0    7     2  polyglotLanguageContext  Ljava/lang/Object;
            1    7     3          languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                         Name  Flags
      guestObject              
      polyglotLanguageContext  

  public java.lang.Iterable<com.oracle.truffle.api.Scope> createDefaultLexicalScope(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame, java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.frame.Frame frame
        start local 3 // java.lang.Class language
         0: .line 687
            aload 1 /* node */
            aload 2 /* frame */
            aload 3 /* language */
            invokestatic com.oracle.truffle.polyglot.LegacyDefaultScope.lexicalScope:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class;)Ljava/lang/Iterable;
            areturn
        end local 3 // java.lang.Class language
        end local 2 // com.oracle.truffle.api.frame.Frame frame
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1      node  Lcom/oracle/truffle/api/nodes/Node;
            0    1     2     frame  Lcom/oracle/truffle/api/frame/Frame;
            0    1     3  language  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    MethodParameters:
          Name  Flags
      node      
      frame     
      language  

  public java.lang.Iterable<com.oracle.truffle.api.Scope> createDefaultTopScope();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object global
         0: .line 693
            aload 1 /* global */
            invokestatic com.oracle.truffle.polyglot.LegacyDefaultScope.topScope:(Ljava/lang/Object;)Ljava/lang/Iterable;
            areturn
        end local 1 // java.lang.Object global
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  global  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    MethodParameters:
        Name  Flags
      global  

  public  getDefaultVariables(com.oracle.truffle.api.nodes.RootNode, com.oracle.truffle.api.frame.Frame, java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.RootNode root
        start local 2 // com.oracle.truffle.api.frame.Frame frame
        start local 3 // java.lang.Class language
         0: .line 698
            aload 1 /* root */
            aload 2 /* frame */
            aload 3 /* language */
            invokestatic com.oracle.truffle.polyglot.DefaultScope.getVariables:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Class language
        end local 2 // com.oracle.truffle.api.frame.Frame frame
        end local 1 // com.oracle.truffle.api.nodes.RootNode root
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1      root  Lcom/oracle/truffle/api/nodes/RootNode;
            0    1     2     frame  Lcom/oracle/truffle/api/frame/Frame;
            0    1     3  language  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    Signature: (Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/frame/Frame;Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      root      
      frame     
      language  

  public  getDefaultArguments([], java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: ([Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object[] frameArguments
        start local 2 // java.lang.Class language
         0: .line 703
            aload 1 /* frameArguments */
            aload 2 /* language */
            invokestatic com.oracle.truffle.polyglot.DefaultScope.getArguments:([Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class language
        end local 1 // java.lang.Object[] frameArguments
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  frameArguments  [Ljava/lang/Object;
            0    1     2        language  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    Signature: ([Ljava/lang/Object;Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      frameArguments  
      language        

  public void reportAllLanguageContexts(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
        start local 2 // java.lang.Object contextsListener
         0: .line 708
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            aload 2 /* contextsListener */
            checkcast com.oracle.truffle.api.instrumentation.ContextsListener
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.reportAllLanguageContexts:(Lcom/oracle/truffle/api/instrumentation/ContextsListener;)V
         1: .line 709
            return
        end local 2 // java.lang.Object contextsListener
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1    polyglotEngine  Ljava/lang/Object;
            0    2     2  contextsListener  Ljava/lang/Object;
    MethodParameters:
                  Name  Flags
      polyglotEngine    
      contextsListener  

  public void reportAllContextThreads(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
        start local 2 // java.lang.Object threadsListener
         0: .line 713
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            aload 2 /* threadsListener */
            checkcast com.oracle.truffle.api.instrumentation.ThreadsListener
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.reportAllContextThreads:(Lcom/oracle/truffle/api/instrumentation/ThreadsListener;)V
         1: .line 714
            return
        end local 2 // java.lang.Object threadsListener
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1   polyglotEngine  Ljava/lang/Object;
            0    2     2  threadsListener  Ljava/lang/Object;
    MethodParameters:
                 Name  Flags
      polyglotEngine   
      threadsListener  

  public com.oracle.truffle.api.TruffleContext getParentContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotContext
         0: .line 718
            aload 1 /* polyglotContext */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.parent:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* parent */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl parent
         1: .line 719
            aload 2 /* parent */
            ifnull 3
         2: .line 720
            aload 2 /* parent */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            areturn
         3: .line 722
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl parent
        end local 1 // java.lang.Object polyglotContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    4     1  polyglotContext  Ljava/lang/Object;
            1    4     2           parent  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
                 Name  Flags
      polyglotContext  

  public java.lang.Object enterInternalContext(com.oracle.truffle.api.nodes.Node, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // java.lang.Object polyglotLanguageContext
         0: .line 728
            aload 2 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 729
            aload 1 /* node */
            aload 3 /* context */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.resolveEngine:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            astore 4 /* engine */
        start local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         2: .line 730
            aload 4 /* engine */
            invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 731
            aload 4 /* engine */
            aload 3 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            areturn
         4: .line 733
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack:
            aload 3 /* context */
            aload 4 /* engine */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.enterInternalContextBoundary:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/Object;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 2 // java.lang.Object polyglotLanguageContext
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    5     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    5     1                     node  Lcom/oracle/truffle/api/nodes/Node;
            0    5     2  polyglotLanguageContext  Ljava/lang/Object;
            1    5     3                  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            2    5     4                   engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    MethodParameters:
                         Name  Flags
      node                     
      polyglotLanguageContext  

  private static java.lang.Object enterInternalContextBoundary(com.oracle.truffle.polyglot.PolyglotContextImpl, com.oracle.truffle.polyglot.PolyglotEngineImpl);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         0: .line 739
            aload 1 /* engine */
            aload 0 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.enter:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    1     1   engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      context  
      engine   

  public void leaveInternalContext(com.oracle.truffle.api.nodes.Node, java.lang.Object, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // java.lang.Object impl
        start local 3 // java.lang.Object prev
         0: .line 744
            aload 1 /* node */
            invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
         1: .line 745
            aload 2 /* impl */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         2: .line 746
            aload 1 /* node */
            aload 4 /* context */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.resolveEngine:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            astore 5 /* engine */
        start local 5 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         3: .line 747
            aload 5 /* engine */
            invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 748
            aload 5 /* engine */
            aload 3 /* prev */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            aload 4 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         5: .line 749
            goto 7
         6: .line 750
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack:
            aload 3 /* prev */
            aload 4 /* context */
            aload 5 /* engine */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.leaveInternalContextBoundary:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
         7: .line 752
      StackMap locals:
      StackMap stack:
            return
        end local 5 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 3 // java.lang.Object prev
        end local 2 // java.lang.Object impl
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    8     1     node  Lcom/oracle/truffle/api/nodes/Node;
            0    8     2     impl  Ljava/lang/Object;
            0    8     3     prev  Ljava/lang/Object;
            2    8     4  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            3    8     5   engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    MethodParameters:
      Name  Flags
      node  
      impl  
      prev  

  private static void leaveInternalContextBoundary(java.lang.Object, com.oracle.truffle.polyglot.PolyglotContextImpl, com.oracle.truffle.polyglot.PolyglotEngineImpl);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.Object prev
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         0: .line 756
            aload 2 /* engine */
            aload 0 /* prev */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            aload 1 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.leave:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
         1: .line 757
            return
        end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // java.lang.Object prev
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     prev  Ljava/lang/Object;
            0    2     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0    2     2   engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      prev     
      context  
      engine   

  private static com.oracle.truffle.polyglot.PolyglotEngineImpl resolveEngine(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.polyglot.PolyglotContextImpl);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node node
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         0: .line 761
            aload 0 /* node */
            ifnull 9
         1: .line 762
            aload 0 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 3 /* root */
        start local 3 // com.oracle.truffle.api.nodes.RootNode root
         2: .line 763
            aload 3 /* root */
            ifnonnull 5
         3: .line 764
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         4: .line 765
            new java.lang.IllegalStateException
            dup
            ldc "Passed node is not yet adopted. Adopt it first."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 767
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.polyglot.PolyglotContextImpl top com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            aload 3 /* root */
            invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
         6: .line 768
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 3 /* root */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotEngine:(Lcom/oracle/truffle/api/nodes/RootNode;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            astore 2 /* engine */
        start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         7: .line 769
            aload 2 /* engine */
            invokestatic com.oracle.truffle.api.CompilerAsserts.partialEvaluationConstant:(Ljava/lang/Object;)V
         8: .line 770
            getstatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.$assertionsDisabled:Z
            ifne 10
            aload 2 /* engine */
            ifnonnull 10
            new java.lang.AssertionError
            dup
            ldc "root node engine must not be null"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // com.oracle.truffle.api.nodes.RootNode root
        end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         9: .line 772
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            astore 2 /* engine */
        start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        10: .line 774
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack:
            aload 2 /* engine */
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     node  Lcom/oracle/truffle/api/nodes/Node;
            0   11     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            7    9     2   engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
           10   11     2   engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            2    9     3     root  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
         Name  Flags
      node     
      context  

  public boolean isContextEntered(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object impl
         0: .line 779
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 1 /* impl */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object impl
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  impl  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      impl  

  public com.oracle.truffle.api.TruffleContext createInternalContext(, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/lang/Object;Ljava/util/Map;)Lcom/oracle/truffle/api/TruffleContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object sourcePolyglotLanguageContext
        start local 2 // java.util.Map config
         0: .line 784
            aload 1 /* sourcePolyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 3 /* creator */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext creator
         1: .line 786
            aload 3 /* creator */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            dup
            astore 5
            monitorenter
         2: .line 787
            new com.oracle.truffle.polyglot.PolyglotContextImpl
            dup
            aload 3 /* creator */
            aload 2 /* config */
            invokespecial com.oracle.truffle.polyglot.PolyglotContextImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/Map;)V
            astore 4 /* impl */
        start local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl impl
         3: .line 788
            aload 4 /* impl */
            aload 4 /* impl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 4 /* impl */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newContext:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractContextImpl;)Lorg/graalvm/polyglot/Context;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorApi:Lorg/graalvm/polyglot/Context;
         4: .line 789
            aload 4 /* impl */
            aload 4 /* impl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 4 /* impl */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newContext:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractContextImpl;)Lorg/graalvm/polyglot/Context;
            putfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentApi:Lorg/graalvm/polyglot/Context;
         5: .line 786
            aload 5
            monitorexit
         6: goto 9
        end local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl impl
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Object java.util.Map com.oracle.truffle.polyglot.PolyglotLanguageContext top com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
         7: aload 5
            monitorexit
         8: athrow
        start local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl impl
         9: .line 791
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Object java.util.Map com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 4 /* impl */
            dup
            astore 5
            monitorenter
        10: .line 792
            aload 4 /* impl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initializeContextLocals:()V
        11: .line 793
            aload 4 /* impl */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 3 /* creator */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.initializeMultiContext:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;)V
        12: .line 794
            aload 4 /* impl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.notifyContextCreated:()V
        13: .line 795
            aload 4 /* impl */
            aload 3 /* creator */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguage.getId:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.initializeLanguage:(Ljava/lang/String;)Z
            pop
        14: .line 791
            aload 5
            monitorexit
        15: goto 18
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Object java.util.Map com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotContextImpl com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack: java.lang.Throwable
        16: aload 5
            monitorexit
        17: athrow
        18: .line 797
      StackMap locals:
      StackMap stack:
            aload 4 /* impl */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.creatorTruffleContext:Lcom/oracle/truffle/api/TruffleContext;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl impl
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguageContext creator
        end local 2 // java.util.Map config
        end local 1 // java.lang.Object sourcePolyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   19     0                           this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0   19     1  sourcePolyglotLanguageContext  Ljava/lang/Object;
            0   19     2                         config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            1   19     3                        creator  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            3    7     4                           impl  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            9   19     4                           impl  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any
          10    15      16  any
          16    17      16  any
    Signature: (Ljava/lang/Object;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Lcom/oracle/truffle/api/TruffleContext;
    MethodParameters:
                               Name  Flags
      sourcePolyglotLanguageContext  
      config                         

  public boolean isCreateThreadAllowed(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 802
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.createThreadAllowed:Z
            ireturn
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageContext  Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public java.lang.Thread createThread(java.lang.Object, java.lang.Runnable, java.lang.Object, java.lang.ThreadGroup, long);
    descriptor: (Ljava/lang/Object;Ljava/lang/Runnable;Ljava/lang/Object;Ljava/lang/ThreadGroup;J)Ljava/lang/Thread;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // java.lang.Runnable runnable
        start local 3 // java.lang.Object innerContextImpl
        start local 4 // java.lang.ThreadGroup group
        start local 5 // long stackSize
         0: .line 807
            aload 0 /* this */
            aload 1 /* polyglotLanguageContext */
            invokevirtual com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.isCreateThreadAllowed:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 808
            ldc "Creating threads is not allowed."
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         2: .line 811
      StackMap locals:
      StackMap stack:
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 7 /* threadContext */
        start local 7 // com.oracle.truffle.polyglot.PolyglotLanguageContext threadContext
         3: .line 812
            aload 3 /* innerContextImpl */
            ifnull 6
         4: .line 813
            aload 3 /* innerContextImpl */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 8 /* innerContext */
        start local 8 // com.oracle.truffle.polyglot.PolyglotContextImpl innerContext
         5: .line 814
            aload 8 /* innerContext */
            aload 7 /* threadContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 7 /* threadContext */
        end local 8 // com.oracle.truffle.polyglot.PolyglotContextImpl innerContext
         6: .line 816
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            new com.oracle.truffle.polyglot.PolyglotThread
            dup
            aload 7 /* threadContext */
            aload 2 /* runnable */
            aload 4 /* group */
            lload 5 /* stackSize */
            invokespecial com.oracle.truffle.polyglot.PolyglotThread.<init>:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Runnable;Ljava/lang/ThreadGroup;J)V
            astore 8 /* newThread */
        start local 8 // com.oracle.truffle.polyglot.PolyglotThread newThread
         7: .line 817
            aload 7 /* threadContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 8 /* newThread */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.checkMultiThreadedAccess:(Lcom/oracle/truffle/polyglot/PolyglotThread;)V
         8: .line 818
            aload 8 /* newThread */
            areturn
        end local 8 // com.oracle.truffle.polyglot.PolyglotThread newThread
        end local 7 // com.oracle.truffle.polyglot.PolyglotLanguageContext threadContext
        end local 5 // long stackSize
        end local 4 // java.lang.ThreadGroup group
        end local 3 // java.lang.Object innerContextImpl
        end local 2 // java.lang.Runnable runnable
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    9     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    9     1  polyglotLanguageContext  Ljava/lang/Object;
            0    9     2                 runnable  Ljava/lang/Runnable;
            0    9     3         innerContextImpl  Ljava/lang/Object;
            0    9     4                    group  Ljava/lang/ThreadGroup;
            0    9     5                stackSize  J
            3    9     7            threadContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            5    6     8             innerContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            7    9     8                newThread  Lcom/oracle/truffle/polyglot/PolyglotThread;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      runnable                 
      innerContextImpl         
      group                    
      stackSize                

  public java.lang.RuntimeException wrapHostException(com.oracle.truffle.api.nodes.Node, java.lang.Object, java.lang.Throwable);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.Node location
        start local 2 // java.lang.Object languageContext
        start local 3 // java.lang.Throwable exception
         0: .line 823
            aload 2 /* languageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            aload 3 /* exception */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.hostToGuestException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            areturn
        end local 3 // java.lang.Throwable exception
        end local 2 // java.lang.Object languageContext
        end local 1 // com.oracle.truffle.api.nodes.Node location
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1         location  Lcom/oracle/truffle/api/nodes/Node;
            0    1     2  languageContext  Ljava/lang/Object;
            0    1     3        exception  Ljava/lang/Throwable;
    MethodParameters:
                 Name  Flags
      location         
      languageContext  
      exception        

  public boolean isHostException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Throwable exception
         0: .line 828
            aload 1 /* exception */
            instanceof com.oracle.truffle.polyglot.HostException
            ireturn
        end local 1 // java.lang.Throwable exception
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  exception  Ljava/lang/Throwable;
    MethodParameters:
           Name  Flags
      exception  

  public java.lang.Throwable asHostException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Throwable exception
         0: .line 833
            aload 1 /* exception */
            instanceof com.oracle.truffle.polyglot.HostException
            ifne 3
         1: .line 834
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 835
            new java.lang.IllegalArgumentException
            dup
            ldc "Provided value not a host exception."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 837
      StackMap locals:
      StackMap stack:
            aload 1 /* exception */
            checkcast com.oracle.truffle.polyglot.HostException
            invokevirtual com.oracle.truffle.polyglot.HostException.getOriginal:()Ljava/lang/Throwable;
            areturn
        end local 1 // java.lang.Throwable exception
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    4     1  exception  Ljava/lang/Throwable;
    MethodParameters:
           Name  Flags
      exception  

  public java.lang.Object getCurrentHostContext();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 842
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 1 /* polyglotContext */
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
         1: .line 843
            aload 1 /* polyglotContext */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
         2: aload 1 /* polyglotContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
      StackMap locals:
      StackMap stack: com.oracle.truffle.polyglot.PolyglotLanguageContext
         3: areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl polyglotContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            1    4     1  polyglotContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;

  public java.lang.Object getPolyglotBindingsForLanguage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 848
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getPolyglotGuestBindings:()Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageContext  Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public java.lang.Object findMetaObjectForLanguage(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // java.lang.Object value
         0: .line 853
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:(Ljava/lang/Object;)Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            astore 3 /* lib */
        start local 3 // com.oracle.truffle.api.interop.InteropLibrary lib
         1: .line 854
            aload 3 /* lib */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.hasMetaObject:(Ljava/lang/Object;)Z
            ifeq 6
         2: .line 856
            aload 3 /* lib */
            aload 2 /* value */
            invokevirtual com.oracle.truffle.api.interop.InteropLibrary.getMetaObject:(Ljava/lang/Object;)Ljava/lang/Object;
         3: areturn
         4: .line 857
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Object java.lang.Object com.oracle.truffle.api.interop.InteropLibrary
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            astore 4 /* e */
        start local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         5: .line 858
            ldc "Unexpected unsupported message."
            aload 4 /* e */
            invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // com.oracle.truffle.api.interop.UnsupportedMessageException e
         6: .line 861
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // com.oracle.truffle.api.interop.InteropLibrary lib
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    7     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    7     1  polyglotLanguageContext  Ljava/lang/Object;
            0    7     2                    value  Ljava/lang/Object;
            1    7     3                      lib  Lcom/oracle/truffle/api/interop/InteropLibrary;
            5    6     4                        e  Lcom/oracle/truffle/api/interop/UnsupportedMessageException;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      value                    

  public org.graalvm.polyglot.PolyglotException wrapGuestException(java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.String languageId
        start local 2 // java.lang.Throwable e
         0: .line 867
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 3 /* pc */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl pc
         1: .line 868
            aload 3 /* pc */
            ifnonnull 3
         2: .line 869
            aconst_null
            areturn
         3: .line 871
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 3 /* pc */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aconst_null
            aload 1 /* languageId */
            aconst_null
            iconst_1
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.findLanguage:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 4 /* language */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
         4: .line 872
            aload 3 /* pc */
            aload 4 /* language */
            aconst_null
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContextInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 5 /* languageContext */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         5: .line 873
            aload 5 /* languageContext */
            aload 2 /* e */
            iconst_1
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
            areturn
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguage language
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl pc
        end local 2 // java.lang.Throwable e
        end local 1 // java.lang.String languageId
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    6     1       languageId  Ljava/lang/String;
            0    6     2                e  Ljava/lang/Throwable;
            1    6     3               pc  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            4    6     4         language  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            5    6     5  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
            Name  Flags
      languageId  
      e           

  public java.util.Set<? extends java.lang.Class<?>> getProvidedTags(com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
         0: .line 878
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 1 /* language */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getProvidedTags:()Ljava/util/Set;
            areturn
        end local 1 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
    Signature: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/util/Set<+Ljava/lang/Class<*>;>;
    MethodParameters:
          Name  Flags
      language  

  public <T> T getOrCreateRuntimeData();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
         0: .line 884
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            astore 2 /* useEngine */
        start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl useEngine
         1: .line 885
            aload 2 /* useEngine */
            ifnonnull 3
         2: .line 886
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.getFallbackEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            astore 2 /* useEngine */
         3: .line 888
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack:
            aload 2 /* useEngine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.runtimeData:Ljava/lang/Object;
            areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl useEngine
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    4     1  polyglotEngine  Ljava/lang/Object;
            1    4     2       useEngine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;)TT;
    MethodParameters:
                Name  Flags
      polyglotEngine  

  public org.graalvm.options.OptionValues getEngineOptionValues(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/options/OptionValues;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
         0: .line 893
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            areturn
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotEngine  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      polyglotEngine  

  public java.util.Collection<com.oracle.truffle.api.CallTarget> findCallTargets();
    descriptor: (Ljava/lang/Object;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
         0: .line 898
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.instrumentationHandler:Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.getLoadedCallTargets:(Ljava/lang/Object;)Ljava/util/Collection;
            areturn
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotEngine  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/Collection<Lcom/oracle/truffle/api/CallTarget;>;
    MethodParameters:
                Name  Flags
      polyglotEngine  

  public void preinitializeContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
         0: .line 903
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.preInitialize:()V
         1: .line 904
            return
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotEngine  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      polyglotEngine  

  public void finalizeStore(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
         0: .line 908
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.finalizeStore:()V
         1: .line 909
            return
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotEngine  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      polyglotEngine  

  public java.lang.Object getEngineLock(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
         0: .line 913
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.lock:Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotEngine  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      polyglotEngine  

  public boolean isInternal(org.graalvm.polyglot.io.FileSystem);
    descriptor: (Lorg/graalvm/polyglot/io/FileSystem;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // org.graalvm.polyglot.io.FileSystem fs
         0: .line 918
            aload 1 /* fs */
            invokestatic com.oracle.truffle.polyglot.FileSystems.isInternal:(Lorg/graalvm/polyglot/io/FileSystem;)Z
            ireturn
        end local 1 // org.graalvm.polyglot.io.FileSystem fs
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1    fs  Lorg/graalvm/polyglot/io/FileSystem;
    MethodParameters:
      Name  Flags
      fs    

  public boolean hasAllAccess(org.graalvm.polyglot.io.FileSystem);
    descriptor: (Lorg/graalvm/polyglot/io/FileSystem;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // org.graalvm.polyglot.io.FileSystem fs
         0: .line 923
            aload 1 /* fs */
            invokestatic com.oracle.truffle.polyglot.FileSystems.hasAllAccess:(Lorg/graalvm/polyglot/io/FileSystem;)Z
            ireturn
        end local 1 // org.graalvm.polyglot.io.FileSystem fs
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1    fs  Lorg/graalvm/polyglot/io/FileSystem;
    MethodParameters:
      Name  Flags
      fs    

  public void addToHostClassPath(java.lang.Object, com.oracle.truffle.api.TruffleFile);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // com.oracle.truffle.api.TruffleFile entry
         0: .line 928
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContextImpl:()Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            astore 3 /* hostContext */
        start local 3 // com.oracle.truffle.polyglot.HostLanguage$HostContext hostContext
         1: .line 929
            aload 3 /* hostContext */
            aload 2 /* entry */
            invokevirtual com.oracle.truffle.polyglot.HostLanguage$HostContext.addToHostClasspath:(Lcom/oracle/truffle/api/TruffleFile;)V
         2: .line 930
            return
        end local 3 // com.oracle.truffle.polyglot.HostLanguage$HostContext hostContext
        end local 2 // com.oracle.truffle.api.TruffleFile entry
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    3     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1  polyglotLanguageContext  Ljava/lang/Object;
            0    3     2                    entry  Lcom/oracle/truffle/api/TruffleFile;
            1    3     3              hostContext  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      entry                    

  public java.lang.String getLanguageHome(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object engineObject
         0: .line 934
            aload 1 /* engineObject */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.getLanguageHome:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object engineObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  engineObject  Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      engineObject  

  public boolean isInstrumentExceptionsAreThrown(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
         0: .line 941
            aload 1 /* polyglotEngine */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getEngine:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.engineOptionValues:Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 2 /* engineOptionValues */
        start local 2 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptionValues
         1: .line 942
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.areAssertionsEnabled:()Z
            ifeq 2
            aload 2 /* engineOptionValues */
            getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.InstrumentExceptionsAreThrown:Lorg/graalvm/options/OptionKey;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.hasBeenSet:(Lorg/graalvm/options/OptionKey;)Z
            ifeq 4
         2: .line 943
      StackMap locals: com.oracle.truffle.polyglot.OptionValuesImpl
      StackMap stack:
            aload 2 /* engineOptionValues */
            getstatic com.oracle.truffle.polyglot.PolyglotEngineOptions.InstrumentExceptionsAreThrown:Lorg/graalvm/options/OptionKey;
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 4
         3: .line 942
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 2 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptionValues
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    5     1      polyglotEngine  Ljava/lang/Object;
            1    5     2  engineOptionValues  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    MethodParameters:
                Name  Flags
      polyglotEngine  

  private static boolean areAssertionsEnabled();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 948
            iconst_0
            istore 0 /* assertsEnabled */
        start local 0 // boolean assertsEnabled
         1: .line 950
            getstatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.$assertionsDisabled:Z
            ifne 2
            iconst_1
            dup
            istore 0 /* assertsEnabled */
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 951
      StackMap locals: int
      StackMap stack:
            iload 0 /* assertsEnabled */
            ireturn
        end local 0 // boolean assertsEnabled
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            1    3     0  assertsEnabled  Z

  public java.lang.Object createDefaultLoggerCache();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 956
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.defaultSPI:()Lcom/oracle/truffle/polyglot/PolyglotLoggers$LoggerCache;
            areturn
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;

  public java.util.logging.Handler getLogHandler(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/util/logging/Handler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object loggerCache
         0: .line 961
            aload 1 /* loggerCache */
            checkcast com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache
            invokeinterface com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache.getLogHandler:()Ljava/util/logging/Handler;
            areturn
        end local 1 // java.lang.Object loggerCache
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  loggerCache  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      loggerCache  

  public java.util.logging.LogRecord createLogRecord(java.lang.Object, java.util.logging.Level, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Object[], java.lang.Throwable);
    descriptor: (Ljava/lang/Object;Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/util/logging/LogRecord;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=9
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object loggerCache
        start local 2 // java.util.logging.Level level
        start local 3 // java.lang.String loggerName
        start local 4 // java.lang.String message
        start local 5 // java.lang.String className
        start local 6 // java.lang.String methodName
        start local 7 // java.lang.Object[] parameters
        start local 8 // java.lang.Throwable thrown
         0: .line 966
            aload 1 /* loggerCache */
            checkcast com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache
            aload 2 /* level */
            aload 3 /* loggerName */
            aload 4 /* message */
            aload 5 /* className */
            aload 6 /* methodName */
            aload 7 /* parameters */
            aload 8 /* thrown */
            invokeinterface com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache.createLogRecord:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)Ljava/util/logging/LogRecord;
            areturn
        end local 8 // java.lang.Throwable thrown
        end local 7 // java.lang.Object[] parameters
        end local 6 // java.lang.String methodName
        end local 5 // java.lang.String className
        end local 4 // java.lang.String message
        end local 3 // java.lang.String loggerName
        end local 2 // java.util.logging.Level level
        end local 1 // java.lang.Object loggerCache
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  loggerCache  Ljava/lang/Object;
            0    1     2        level  Ljava/util/logging/Level;
            0    1     3   loggerName  Ljava/lang/String;
            0    1     4      message  Ljava/lang/String;
            0    1     5    className  Ljava/lang/String;
            0    1     6   methodName  Ljava/lang/String;
            0    1     7   parameters  [Ljava/lang/Object;
            0    1     8       thrown  Ljava/lang/Throwable;
    MethodParameters:
             Name  Flags
      loggerCache  
      level        
      loggerName   
      message      
      className    
      methodName   
      parameters   
      thrown       

  public java.lang.Object getCurrentOuterContext();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 971
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.getCurrentOuterContext:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            areturn
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;

  public java.util.Map<java.lang.String, java.util.logging.Level> getLogLevels();
    descriptor: (Ljava/lang/Object;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object loggerCache
         0: .line 976
            aload 1 /* loggerCache */
            checkcast com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache
            invokeinterface com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache.getLogLevels:()Ljava/util/Map;
            areturn
        end local 1 // java.lang.Object loggerCache
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  loggerCache  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
    MethodParameters:
             Name  Flags
      loggerCache  final

  public java.lang.Object getLoggerOwner(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object loggerCache
         0: .line 981
            aload 1 /* loggerCache */
            checkcast com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache
            invokeinterface com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            areturn
        end local 1 // java.lang.Object loggerCache
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  loggerCache  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      loggerCache  

  public java.util.Set<java.lang.String> getLanguageIds();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 986
            invokestatic com.oracle.truffle.polyglot.LanguageCache.languages:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            areturn
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public java.util.Set<java.lang.String> getInstrumentIds();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 991
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* ids */
        start local 1 // java.util.Set ids
         1: .line 992
            invokestatic com.oracle.truffle.polyglot.InstrumentCache.load:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.InstrumentCache
            astore 2 /* cache */
        start local 2 // com.oracle.truffle.polyglot.InstrumentCache cache
         3: .line 993
            aload 1 /* ids */
            aload 2 /* cache */
            invokevirtual com.oracle.truffle.polyglot.InstrumentCache.getId:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // com.oracle.truffle.polyglot.InstrumentCache cache
         4: .line 992
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 995
            aload 1 /* ids */
            areturn
        end local 1 // java.util.Set ids
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            1    6     1    ids  Ljava/util/Set<Ljava/lang/String;>;
            3    4     2  cache  Lcom/oracle/truffle/polyglot/InstrumentCache;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public java.util.Set<java.lang.String> getInternalIds();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 1000
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.getInternalIds:()Ljava/util/Set;
            areturn
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public java.lang.Object asHostObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object obj
         0: .line 1005
            getstatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.isHostObject:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1006
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic com.oracle.truffle.polyglot.HostObject.valueOf:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public boolean isHostFunction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object obj
         0: .line 1011
            aload 1 /* obj */
            invokestatic com.oracle.truffle.polyglot.HostFunction.isInstance:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public boolean isHostObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object obj
         0: .line 1016
            aload 1 /* obj */
            invokestatic com.oracle.truffle.polyglot.HostObject.isInstance:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public boolean isHostSymbol(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object obj
         0: .line 1021
            aload 1 /* obj */
            invokestatic com.oracle.truffle.polyglot.HostObject.isHostObjectInstance:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1022
            aload 1 /* obj */
            checkcast com.oracle.truffle.polyglot.HostObject
            invokevirtual com.oracle.truffle.polyglot.HostObject.isStaticClass:()Z
            ireturn
         2: .line 1024
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public <S> S lookupService(, com.oracle.truffle.api.nodes.LanguageInfo, com.oracle.truffle.api.nodes.LanguageInfo, java.lang.Class<S>);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
        start local 3 // com.oracle.truffle.api.nodes.LanguageInfo accessingLanguage
        start local 4 // java.lang.Class type
         0: .line 1029
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 2 /* language */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 5 /* lang */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguage lang
         1: .line 1030
            aload 5 /* lang */
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.cache:Lcom/oracle/truffle/polyglot/LanguageCache;
            aload 4 /* type */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache.supportsService:(Ljava/lang/Class;)Z
            ifne 3
         2: .line 1031
            aconst_null
            areturn
         3: .line 1033
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack:
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 5 /* lang */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 6 /* context */
        start local 6 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
         4: .line 1034
            aload 6 /* context */
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 3 /* accessingLanguage */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureCreated:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
         5: .line 1035
            aload 6 /* context */
            aload 4 /* type */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.lookupService:(Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 6 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguage lang
        end local 4 // java.lang.Class type
        end local 3 // com.oracle.truffle.api.nodes.LanguageInfo accessingLanguage
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo language
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    6     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    6     1  polyglotLanguageContext  Ljava/lang/Object;
            0    6     2                 language  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    6     3        accessingLanguage  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            0    6     4                     type  Ljava/lang/Class<TS;>;
            1    6     5                     lang  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            4    6     6                  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    Signature: <S:Ljava/lang/Object;>(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/LanguageInfo;Lcom/oracle/truffle/api/nodes/LanguageInfo;Ljava/lang/Class<TS;>;)TS;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      language                 
      accessingLanguage        
      type                     

  public com.oracle.truffle.api.TruffleLogger getLogger(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotInstrument
        start local 2 // java.lang.String loggerName
         0: .line 1040
            aload 1 /* polyglotInstrument */
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 3 /* instrument */
        start local 3 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         1: .line 1041
            aload 3 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotInstrument.getId:()Ljava/lang/String;
            astore 4 /* id */
        start local 4 // java.lang.String id
         2: .line 1042
            aload 1 /* polyglotInstrument */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getEngine:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            astore 5 /* engine */
        start local 5 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         3: .line 1043
            aload 5 /* engine */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getOrCreateEngineLoggers:()Ljava/lang/Object;
            astore 6 /* loggerCache */
        start local 6 // java.lang.Object loggerCache
         4: .line 1044
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 4 /* id */
            aload 2 /* loggerName */
            aload 6 /* loggerCache */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLogger:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleLogger;
            areturn
        end local 6 // java.lang.Object loggerCache
        end local 5 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 4 // java.lang.String id
        end local 3 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        end local 2 // java.lang.String loggerName
        end local 1 // java.lang.Object polyglotInstrument
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    5     1  polyglotInstrument  Ljava/lang/Object;
            0    5     2          loggerName  Ljava/lang/String;
            1    5     3          instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
            2    5     4                  id  Ljava/lang/String;
            3    5     5              engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            4    5     6         loggerCache  Ljava/lang/Object;
    MethodParameters:
                    Name  Flags
      polyglotInstrument  
      loggerName          

  public  convertPrimitive(, java.lang.Class<?>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object value
        start local 2 // java.lang.Class requestedType
         0: .line 1049
            aload 1 /* value */
            aload 2 /* requestedType */
            invokestatic com.oracle.truffle.api.interop.InteropLibrary.getFactory:()Lcom/oracle/truffle/api/library/LibraryFactory;
            invokevirtual com.oracle.truffle.api.library.LibraryFactory.getUncached:()Lcom/oracle/truffle/api/library/Library;
            checkcast com.oracle.truffle.api.interop.InteropLibrary
            invokestatic com.oracle.truffle.polyglot.ToHostNode.convertLossLess:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/interop/InteropLibrary;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class requestedType
        end local 1 // java.lang.Object value
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1          value  Ljava/lang/Object;
            0    1     2  requestedType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;)Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      value          
      requestedType  

  public <T extends com.oracle.truffle.api.TruffleLanguage<C>, C> com.oracle.truffle.api.TruffleLanguage$ContextReference<C> lookupContextReference(, com.oracle.truffle.api.TruffleLanguage<?>, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
        start local 2 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
        start local 3 // java.lang.Class targetLanguageClass
         0: .line 1057
            getstatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.$assertionsDisabled:Z
            ifne 1
            aload 2 /* sourceLanguageSPI */
            ifnull 1
            aload 2 /* sourceLanguageSPI */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* targetLanguageClass */
            if_acmpne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1058
      StackMap locals:
      StackMap stack:
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            aload 3 /* targetLanguageClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCurrentLanguageInstance:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            astore 4 /* instance */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
         2: .line 1059
            aload 4 /* instance */
            aload 2 /* sourceLanguageSPI */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.resolveLanguage:(Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.lookupContextSupplier:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
        end local 3 // java.lang.Class targetLanguageClass
        end local 2 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1       polyglotEngine  Ljava/lang/Object;
            0    3     2    sourceLanguageSPI  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0    3     3  targetLanguageClass  Ljava/lang/Class<TT;>;
            2    3     4             instance  Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<TC;>;C:Ljava/lang/Object;>(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage<*>;Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<TC;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                     Name  Flags
      polyglotEngine       
      sourceLanguageSPI    
      targetLanguageClass  

  public <T extends com.oracle.truffle.api.TruffleLanguage<C>, C> com.oracle.truffle.api.TruffleLanguage$ContextReference<C> getDirectContextReference(, com.oracle.truffle.api.TruffleLanguage<?>, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
        start local 2 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
        start local 3 // java.lang.Class targetLanguageClass
         0: .line 1066
            getstatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.$assertionsDisabled:Z
            ifne 1
            aload 2 /* sourceLanguageSPI */
            ifnull 1
            aload 2 /* sourceLanguageSPI */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* targetLanguageClass */
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1067
      StackMap locals:
      StackMap stack:
            aload 2 /* sourceLanguageSPI */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.resolveLanguageInstance:(Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.getDirectContextSupplier:()Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            areturn
        end local 3 // java.lang.Class targetLanguageClass
        end local 2 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1       polyglotEngine  Ljava/lang/Object;
            0    2     2    sourceLanguageSPI  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0    2     3  targetLanguageClass  Ljava/lang/Class<TT;>;
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<TC;>;C:Ljava/lang/Object;>(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage<*>;Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<TC;>;
    MethodParameters:
                     Name  Flags
      polyglotEngine       
      sourceLanguageSPI    
      targetLanguageClass  

  public <T extends com.oracle.truffle.api.TruffleLanguage<?>> com.oracle.truffle.api.TruffleLanguage$LanguageReference<T> getDirectLanguageReference(, com.oracle.truffle.api.TruffleLanguage<?>, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
        start local 2 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
        start local 3 // java.lang.Class targetLanguageClass
         0: .line 1074
            getstatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.$assertionsDisabled:Z
            ifne 1
            aload 2 /* sourceLanguageSPI */
            ifnull 1
            aload 2 /* sourceLanguageSPI */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* targetLanguageClass */
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1075
      StackMap locals:
      StackMap stack:
            aload 2 /* sourceLanguageSPI */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.resolveLanguageInstance:(Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.getDirectLanguageReference:()Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
            areturn
        end local 3 // java.lang.Class targetLanguageClass
        end local 2 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1       polyglotEngine  Ljava/lang/Object;
            0    2     2    sourceLanguageSPI  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0    2     3  targetLanguageClass  Ljava/lang/Class<TT;>;
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<*>;>(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage<*>;Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<TT;>;
    MethodParameters:
                     Name  Flags
      polyglotEngine       
      sourceLanguageSPI    
      targetLanguageClass  

  public <T extends com.oracle.truffle.api.TruffleLanguage<?>> com.oracle.truffle.api.TruffleLanguage$LanguageReference<T> lookupLanguageReference(, com.oracle.truffle.api.TruffleLanguage<?>, java.lang.Class<T>);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngineImpl
        start local 2 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
        start local 3 // java.lang.Class targetLanguageClass
         0: .line 1083
            getstatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.$assertionsDisabled:Z
            ifne 1
            aload 2 /* sourceLanguageSPI */
            ifnull 1
            aload 2 /* sourceLanguageSPI */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* targetLanguageClass */
            if_acmpne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1084
      StackMap locals:
      StackMap stack:
            aload 1 /* polyglotEngineImpl */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            aload 3 /* targetLanguageClass */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getCurrentLanguageInstance:(Ljava/lang/Class;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
            astore 4 /* instance */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
         2: .line 1085
            aload 4 /* instance */
            aload 2 /* sourceLanguageSPI */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.resolveLanguage:(Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageInstance.lookupLanguageSupplier:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageInstance instance
        end local 3 // java.lang.Class targetLanguageClass
        end local 2 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
        end local 1 // java.lang.Object polyglotEngineImpl
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1   polyglotEngineImpl  Ljava/lang/Object;
            0    3     2    sourceLanguageSPI  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0    3     3  targetLanguageClass  Ljava/lang/Class<TT;>;
            2    3     4             instance  Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<*>;>(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage<*>;Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<TT;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                     Name  Flags
      polyglotEngineImpl   
      sourceLanguageSPI    
      targetLanguageClass  

  private static com.oracle.truffle.polyglot.PolyglotLanguageInstance resolveLanguageInstance(com.oracle.truffle.api.TruffleLanguage<?>);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
         0: .line 1089
            aload 0 /* sourceLanguageSPI */
            ifnonnull 2
         1: .line 1090
            aconst_null
            areturn
         2: .line 1092
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* sourceLanguageSPI */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getPolyglotLanguageInstance:(Lcom/oracle/truffle/api/TruffleLanguage;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0  sourceLanguageSPI  Lcom/oracle/truffle/api/TruffleLanguage<*>;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;)Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;
    MethodParameters:
                   Name  Flags
      sourceLanguageSPI  

  private static com.oracle.truffle.polyglot.PolyglotLanguage resolveLanguage(com.oracle.truffle.api.TruffleLanguage<?>);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
         0: .line 1096
            aload 0 /* sourceLanguageSPI */
            ifnonnull 2
         1: .line 1097
            aconst_null
            areturn
         2: .line 1099
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 0 /* sourceLanguageSPI */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getPolyglotLanguageInstance:(Lcom/oracle/truffle/api/TruffleLanguage;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
            getfield com.oracle.truffle.polyglot.PolyglotLanguageInstance.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleLanguage sourceLanguageSPI
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0  sourceLanguageSPI  Lcom/oracle/truffle/api/TruffleLanguage<*>;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;)Lcom/oracle/truffle/polyglot/PolyglotLanguage;
    MethodParameters:
                   Name  Flags
      sourceLanguageSPI  

  public org.graalvm.polyglot.io.FileSystem getFileSystem(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/polyglot/io/FileSystem;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotContext
         0: .line 1104
            aload 1 /* polyglotContext */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.fileSystem:Lorg/graalvm/polyglot/io/FileSystem;
            areturn
        end local 1 // java.lang.Object polyglotContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotContext  Ljava/lang/Object;
    MethodParameters:
                 Name  Flags
      polyglotContext  

  public int getAsynchronousStackDepth(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polylgotLanguage
         0: .line 1109
            aload 1 /* polylgotLanguage */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            getfield com.oracle.truffle.polyglot.PolyglotLanguage.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAsynchronousStackDepth:()I
            ireturn
        end local 1 // java.lang.Object polylgotLanguage
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polylgotLanguage  Ljava/lang/Object;
    MethodParameters:
                  Name  Flags
      polylgotLanguage  

  public void setAsynchronousStackDepth(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotInstrument
        start local 2 // int depth
         0: .line 1114
            aload 1 /* polyglotInstrument */
            invokestatic com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.getEngine:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* polyglotInstrument */
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            iload 2 /* depth */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.setAsynchronousStackDepth:(Lcom/oracle/truffle/polyglot/PolyglotInstrument;I)V
         1: .line 1115
            return
        end local 2 // int depth
        end local 1 // java.lang.Object polyglotInstrument
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotInstrument  Ljava/lang/Object;
            0    2     2               depth  I
    MethodParameters:
                    Name  Flags
      polyglotInstrument  
      depth               

  public boolean isCreateProcessAllowed(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polylgotLanguageContext
         0: .line 1119
            aload 1 /* polylgotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.createProcessAllowed:Z
            ireturn
        end local 1 // java.lang.Object polylgotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polylgotLanguageContext  Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polylgotLanguageContext  

  public java.util.Map<java.lang.String, java.lang.String> getProcessEnvironment();
    descriptor: (Ljava/lang/Object;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 1124
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextConfig.getEnvironment:()Ljava/util/Map;
            areturn
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageContext  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public java.lang.Process createSubProcess(, java.util.List<java.lang.String>, java.lang.String, java.util.Map<java.lang.String, java.lang.String>, boolean, org.graalvm.polyglot.io.ProcessHandler$Redirect, org.graalvm.polyglot.io.ProcessHandler$Redirect, org.graalvm.polyglot.io.ProcessHandler$Redirect);
    descriptor: (Ljava/lang/Object;Ljava/util/List;Ljava/lang/String;Ljava/util/Map;ZLorg/graalvm/polyglot/io/ProcessHandler$Redirect;Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;)Ljava/lang/Process;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=16, args_size=9
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // java.util.List cmd
        start local 3 // java.lang.String cwd
        start local 4 // java.util.Map environment
        start local 5 // boolean redirectErrorStream
        start local 6 // org.graalvm.polyglot.io.ProcessHandler$Redirect inputRedirect
        start local 7 // org.graalvm.polyglot.io.ProcessHandler$Redirect outputRedirect
        start local 8 // org.graalvm.polyglot.io.ProcessHandler$Redirect errorRedirect
         0: .line 1130
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 9 /* languageContext */
        start local 9 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         1: .line 1131
            aload 9 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getIO:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
            aload 7 /* outputRedirect */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess.getOutputStream:(Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;)Ljava/io/OutputStream;
            astore 10 /* stdOut */
        start local 10 // java.io.OutputStream stdOut
         2: .line 1132
            aload 9 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getIO:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
            aload 8 /* errorRedirect */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess.getOutputStream:(Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;)Ljava/io/OutputStream;
            astore 11 /* stdErr */
        start local 11 // java.io.OutputStream stdErr
         3: .line 1133
            aload 10 /* stdOut */
            ifnonnull 4
            aload 7 /* outputRedirect */
            goto 5
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLanguageContext java.io.OutputStream java.io.OutputStream
      StackMap stack:
         4: getstatic org.graalvm.polyglot.io.ProcessHandler$Redirect.PIPE:Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;
      StackMap locals:
      StackMap stack: org.graalvm.polyglot.io.ProcessHandler$Redirect
         5: astore 12 /* useOutputRedirect */
        start local 12 // org.graalvm.polyglot.io.ProcessHandler$Redirect useOutputRedirect
         6: .line 1134
            aload 11 /* stdErr */
            ifnonnull 7
            aload 8 /* errorRedirect */
            goto 8
      StackMap locals: org.graalvm.polyglot.io.ProcessHandler$Redirect
      StackMap stack:
         7: getstatic org.graalvm.polyglot.io.ProcessHandler$Redirect.PIPE:Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;
      StackMap locals:
      StackMap stack: org.graalvm.polyglot.io.ProcessHandler$Redirect
         8: astore 13 /* useErrorRedirect */
        start local 13 // org.graalvm.polyglot.io.ProcessHandler$Redirect useErrorRedirect
         9: .line 1135
            aload 9 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getIO:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
            aload 2 /* cmd */
            aload 3 /* cwd */
            aload 4 /* environment */
            iload 5 /* redirectErrorStream */
            aload 6 /* inputRedirect */
            aload 12 /* useOutputRedirect */
            aload 13 /* useErrorRedirect */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess.newProcessCommand:(Ljava/util/List;Ljava/lang/String;Ljava/util/Map;ZLorg/graalvm/polyglot/io/ProcessHandler$Redirect;Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;)Lorg/graalvm/polyglot/io/ProcessHandler$ProcessCommand;
            astore 14 /* command */
        start local 14 // org.graalvm.polyglot.io.ProcessHandler$ProcessCommand command
        10: .line 1136
            aload 9 /* languageContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.processHandler:Lorg/graalvm/polyglot/io/ProcessHandler;
            aload 14 /* command */
            invokeinterface org.graalvm.polyglot.io.ProcessHandler.start:(Lorg/graalvm/polyglot/io/ProcessHandler$ProcessCommand;)Ljava/lang/Process;
            astore 15 /* process */
        start local 15 // java.lang.Process process
        11: .line 1138
            aload 9 /* languageContext */
        12: .line 1139
            aload 2 /* cmd */
        13: .line 1140
            aload 15 /* process */
        14: .line 1141
            aload 10 /* stdOut */
        15: .line 1142
            aload 11 /* stdErr */
        16: .line 1137
            invokestatic com.oracle.truffle.polyglot.ProcessHandlers.decorate:(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/List;Ljava/lang/Process;Ljava/io/OutputStream;Ljava/io/OutputStream;)Ljava/lang/Process;
            areturn
        end local 15 // java.lang.Process process
        end local 14 // org.graalvm.polyglot.io.ProcessHandler$ProcessCommand command
        end local 13 // org.graalvm.polyglot.io.ProcessHandler$Redirect useErrorRedirect
        end local 12 // org.graalvm.polyglot.io.ProcessHandler$Redirect useOutputRedirect
        end local 11 // java.io.OutputStream stdErr
        end local 10 // java.io.OutputStream stdOut
        end local 9 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 8 // org.graalvm.polyglot.io.ProcessHandler$Redirect errorRedirect
        end local 7 // org.graalvm.polyglot.io.ProcessHandler$Redirect outputRedirect
        end local 6 // org.graalvm.polyglot.io.ProcessHandler$Redirect inputRedirect
        end local 5 // boolean redirectErrorStream
        end local 4 // java.util.Map environment
        end local 3 // java.lang.String cwd
        end local 2 // java.util.List cmd
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   17     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0   17     1  polyglotLanguageContext  Ljava/lang/Object;
            0   17     2                      cmd  Ljava/util/List<Ljava/lang/String;>;
            0   17     3                      cwd  Ljava/lang/String;
            0   17     4              environment  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   17     5      redirectErrorStream  Z
            0   17     6            inputRedirect  Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;
            0   17     7           outputRedirect  Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;
            0   17     8            errorRedirect  Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;
            1   17     9          languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            2   17    10                   stdOut  Ljava/io/OutputStream;
            3   17    11                   stdErr  Ljava/io/OutputStream;
            6   17    12        useOutputRedirect  Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;
            9   17    13         useErrorRedirect  Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;
           10   17    14                  command  Lorg/graalvm/polyglot/io/ProcessHandler$ProcessCommand;
           11   17    15                  process  Ljava/lang/Process;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Object;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZLorg/graalvm/polyglot/io/ProcessHandler$Redirect;Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;)Ljava/lang/Process;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      cmd                      
      cwd                      
      environment              
      redirectErrorStream      
      inputRedirect            
      outputRedirect           
      errorRedirect            

  public boolean hasDefaultProcessHandler(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
         0: .line 1147
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.config:Lcom/oracle/truffle/polyglot/PolyglotContextConfig;
            getfield com.oracle.truffle.polyglot.PolyglotContextConfig.processHandler:Lorg/graalvm/polyglot/io/ProcessHandler;
            invokestatic com.oracle.truffle.polyglot.ProcessHandlers.isDefault:(Lorg/graalvm/polyglot/io/ProcessHandler;)Z
            ireturn
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageContext  Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  

  public org.graalvm.polyglot.io.ProcessHandler$Redirect createRedirectToOutputStream(java.lang.Object, java.io.OutputStream);
    descriptor: (Ljava/lang/Object;Ljava/io/OutputStream;)Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // java.io.OutputStream stream
         0: .line 1152
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getIO:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
            aload 2 /* stream */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess.createRedirectToStream:(Ljava/io/OutputStream;)Lorg/graalvm/polyglot/io/ProcessHandler$Redirect;
            areturn
        end local 2 // java.io.OutputStream stream
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    1     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotLanguageContext  Ljava/lang/Object;
            0    1     2                   stream  Ljava/io/OutputStream;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      stream                   

  public boolean isIOAllowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
         0: .line 1157
            getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_IO:Z
            ireturn
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;

  public java.lang.String getUnparsedOptionValue(org.graalvm.options.OptionValues, org.graalvm.options.OptionKey<?>);
    descriptor: (Lorg/graalvm/options/OptionValues;Lorg/graalvm/options/OptionKey;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // org.graalvm.options.OptionValues optionValues
        start local 2 // org.graalvm.options.OptionKey optionKey
         0: .line 1162
            aload 1 /* optionValues */
            instanceof com.oracle.truffle.polyglot.OptionValuesImpl
            ifne 2
         1: .line 1163
            new java.lang.IllegalArgumentException
            dup
            ldc "Only %s is supported."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1165
      StackMap locals:
      StackMap stack:
            aload 1 /* optionValues */
            checkcast com.oracle.truffle.polyglot.OptionValuesImpl
            aload 2 /* optionKey */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.getUnparsedOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/String;
            areturn
        end local 2 // org.graalvm.options.OptionKey optionKey
        end local 1 // org.graalvm.options.OptionValues optionValues
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1  optionValues  Lorg/graalvm/options/OptionValues;
            0    3     2     optionKey  Lorg/graalvm/options/OptionKey<*>;
    Signature: (Lorg/graalvm/options/OptionValues;Lorg/graalvm/options/OptionKey<*>;)Ljava/lang/String;
    MethodParameters:
              Name  Flags
      optionValues  
      optionKey     

  public java.lang.String getRelativePathInLanguageHome(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.TruffleFile truffleFile
         0: .line 1170
            aload 1 /* truffleFile */
            invokestatic com.oracle.truffle.polyglot.FileSystems.getRelativePathInLanguageHome:(Lcom/oracle/truffle/api/TruffleFile;)Ljava/lang/String;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleFile truffleFile
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  truffleFile  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
             Name  Flags
      truffleFile  

  public void onSourceCreated(com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/source/Source;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.source.Source source
         0: .line 1175
            invokestatic com.oracle.truffle.polyglot.PolyglotContextImpl.currentNotEntered:()Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 2 /* currentContext */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl currentContext
         1: .line 1176
            aload 2 /* currentContext */
            ifnull 3
            aload 2 /* currentContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
            ifnull 3
         2: .line 1177
            aload 2 /* currentContext */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.sourcesToInvalidate:Ljava/util/List;
            aload 1 /* source */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1179
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl currentContext
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    4     1          source  Lcom/oracle/truffle/api/source/Source;
            1    4     2  currentContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
        Name  Flags
      source  

  public java.lang.String getReinitializedPath(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.TruffleFile truffleFile
         0: .line 1183
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* truffleFile */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getFileSystem:(Lcom/oracle/truffle/api/TruffleFile;)Lorg/graalvm/polyglot/io/FileSystem;
            astore 2 /* fs */
        start local 2 // org.graalvm.polyglot.io.FileSystem fs
         1: .line 1184
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* truffleFile */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getPath:(Lcom/oracle/truffle/api/TruffleFile;)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         2: .line 1185
            aload 2 /* fs */
            checkcast com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
            aload 3 /* path */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.pathToString:(Ljava/nio/file/Path;)Ljava/lang/String;
            areturn
        end local 3 // java.nio.file.Path path
        end local 2 // org.graalvm.polyglot.io.FileSystem fs
        end local 1 // com.oracle.truffle.api.TruffleFile truffleFile
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1  truffleFile  Lcom/oracle/truffle/api/TruffleFile;
            1    3     2           fs  Lorg/graalvm/polyglot/io/FileSystem;
            2    3     3         path  Ljava/nio/file/Path;
    MethodParameters:
             Name  Flags
      truffleFile  

  public java.net.URI getReinitializedURI(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Ljava/net/URI;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.TruffleFile truffleFile
         0: .line 1190
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* truffleFile */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getFileSystem:(Lcom/oracle/truffle/api/TruffleFile;)Lorg/graalvm/polyglot/io/FileSystem;
            astore 2 /* fs */
        start local 2 // org.graalvm.polyglot.io.FileSystem fs
         1: .line 1191
            getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
            aload 1 /* truffleFile */
            invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getPath:(Lcom/oracle/truffle/api/TruffleFile;)Ljava/nio/file/Path;
            astore 3 /* path */
        start local 3 // java.nio.file.Path path
         2: .line 1192
            aload 2 /* fs */
            checkcast com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem
            aload 3 /* path */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem.absolutePathtoURI:(Ljava/nio/file/Path;)Ljava/net/URI;
            areturn
        end local 3 // java.nio.file.Path path
        end local 2 // org.graalvm.polyglot.io.FileSystem fs
        end local 1 // com.oracle.truffle.api.TruffleFile truffleFile
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1  truffleFile  Lcom/oracle/truffle/api/TruffleFile;
            1    3     2           fs  Lorg/graalvm/polyglot/io/FileSystem;
            2    3     3         path  Ljava/nio/file/Path;
    MethodParameters:
             Name  Flags
      truffleFile  

  public boolean initializeLanguage(java.lang.Object, com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/LanguageInfo;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // com.oracle.truffle.api.nodes.LanguageInfo targetLanguage
         0: .line 1197
            getstatic com.oracle.truffle.polyglot.EngineAccessor.NODES:Lcom/oracle/truffle/api/impl/Accessor$NodeSupport;
            aload 2 /* targetLanguage */
            invokevirtual com.oracle.truffle.api.impl.Accessor$NodeSupport.getPolyglotLanguage:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotLanguage
            astore 3 /* targetPolyglotLanguage */
        start local 3 // com.oracle.truffle.polyglot.PolyglotLanguage targetPolyglotLanguage
         1: .line 1198
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 3 /* targetPolyglotLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getContext:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 4 /* targetLanguageContext */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetLanguageContext
         2: .line 1199
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.language:Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            astore 5 /* accessingPolyglotLanguage */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguage accessingPolyglotLanguage
         3: .line 1201
            aload 4 /* targetLanguageContext */
            aload 5 /* accessingPolyglotLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.checkAccess:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)V
         4: .line 1202
            goto 9
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Object com.oracle.truffle.api.nodes.LanguageInfo com.oracle.truffle.polyglot.PolyglotLanguage com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotLanguage
      StackMap stack: com.oracle.truffle.polyglot.PolyglotEngineException
         5: astore 6 /* notAccessible */
        start local 6 // com.oracle.truffle.polyglot.PolyglotEngineException notAccessible
         6: .line 1203
            aload 6 /* notAccessible */
            getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
            instanceof java.lang.IllegalArgumentException
            ifeq 8
         7: .line 1204
            new java.lang.SecurityException
            dup
            aload 6 /* notAccessible */
            getfield com.oracle.truffle.polyglot.PolyglotEngineException.e:Ljava/lang/RuntimeException;
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1206
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineException
      StackMap stack:
            aload 6 /* notAccessible */
            athrow
        end local 6 // com.oracle.truffle.polyglot.PolyglotEngineException notAccessible
         9: .line 1208
      StackMap locals:
      StackMap stack:
            aload 4 /* targetLanguageContext */
            aload 5 /* accessingPolyglotLanguage */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.ensureInitialized:(Lcom/oracle/truffle/polyglot/PolyglotLanguage;)Z
            ireturn
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguage accessingPolyglotLanguage
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext targetLanguageContext
        end local 3 // com.oracle.truffle.polyglot.PolyglotLanguage targetPolyglotLanguage
        end local 2 // com.oracle.truffle.api.nodes.LanguageInfo targetLanguage
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   10     0                       this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0   10     1    polyglotLanguageContext  Ljava/lang/Object;
            0   10     2             targetLanguage  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            1   10     3     targetPolyglotLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            2   10     4      targetLanguageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            3   10     5  accessingPolyglotLanguage  Lcom/oracle/truffle/polyglot/PolyglotLanguage;
            6    9     6              notAccessible  Lcom/oracle/truffle/polyglot/PolyglotEngineException;
      Exception table:
        from    to  target  type
           3     4       5  Class com.oracle.truffle.polyglot.PolyglotEngineException
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      targetLanguage           

  public boolean isHostToGuestRootNode(com.oracle.truffle.api.nodes.RootNode);
    descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
         0: .line 1213
            aload 1 /* rootNode */
            instanceof com.oracle.truffle.polyglot.HostToGuestRootNode
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
          Name  Flags
      rootNode  

  public java.lang.AssertionError invalidSharingError(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/AssertionError;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotEngine
         0: .line 1218
            aload 1 /* polyglotEngine */
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            invokestatic com.oracle.truffle.polyglot.PolyglotReferences.invalidSharingError:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)Ljava/lang/AssertionError;
            areturn
        end local 1 // java.lang.Object polyglotEngine
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  polyglotEngine  Ljava/lang/Object;
    Exceptions:
      throws java.lang.AssertionError
    MethodParameters:
                Name  Flags
      polyglotEngine  

  public <T> com.oracle.truffle.api.ContextLocal<T> createInstrumentContextLocal();
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextLocal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object factory
         0: .line 1223
            aload 1 /* factory */
            invokestatic com.oracle.truffle.polyglot.PolyglotLocals.createInstrumentContextLocal:(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextLocal;
            areturn
        end local 1 // java.lang.Object factory
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  factory  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextLocal<TT;>;
    MethodParameters:
         Name  Flags
      factory  

  public <T> com.oracle.truffle.api.ContextThreadLocal<T> createInstrumentContextThreadLocal();
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextThreadLocal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object factory
         0: .line 1228
            aload 1 /* factory */
            invokestatic com.oracle.truffle.polyglot.PolyglotLocals.createInstrumentContextThreadLocal:(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextThreadLocal;
            areturn
        end local 1 // java.lang.Object factory
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  factory  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextThreadLocal<TT;>;
    MethodParameters:
         Name  Flags
      factory  

  public <T> com.oracle.truffle.api.ContextLocal<T> createLanguageContextLocal();
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextLocal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object factory
         0: .line 1233
            aload 1 /* factory */
            invokestatic com.oracle.truffle.polyglot.PolyglotLocals.createLanguageContextLocal:(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextLocal;
            areturn
        end local 1 // java.lang.Object factory
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  factory  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextLocal<TT;>;
    MethodParameters:
         Name  Flags
      factory  

  public <T> com.oracle.truffle.api.ContextThreadLocal<T> createLanguageContextThreadLocal();
    descriptor: (Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextThreadLocal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object factory
         0: .line 1238
            aload 1 /* factory */
            invokestatic com.oracle.truffle.polyglot.PolyglotLocals.createLanguageContextThreadLocal:(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextThreadLocal;
            areturn
        end local 1 // java.lang.Object factory
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  factory  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Object;)Lcom/oracle/truffle/api/ContextThreadLocal<TT;>;
    MethodParameters:
         Name  Flags
      factory  

  public void initializeInstrumentContextLocal(java.util.List<? extends com.oracle.truffle.api.ContextLocal<?>>, );
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.util.List locals
        start local 2 // java.lang.Object polyglotInstrument
         0: .line 1244
            aload 1 /* locals */
            aload 2 /* polyglotInstrument */
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            invokestatic com.oracle.truffle.polyglot.PolyglotLocals.initializeInstrumentContextLocals:(Ljava/util/List;Lcom/oracle/truffle/polyglot/PolyglotInstrument;)V
         1: .line 1245
            return
        end local 2 // java.lang.Object polyglotInstrument
        end local 1 // java.util.List locals
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1              locals  Ljava/util/List<+Lcom/oracle/truffle/api/ContextLocal<*>;>;
            0    2     2  polyglotInstrument  Ljava/lang/Object;
    Signature: (Ljava/util/List<+Lcom/oracle/truffle/api/ContextLocal<*>;>;Ljava/lang/Object;)V
    MethodParameters:
                    Name  Flags
      locals              
      polyglotInstrument  

  public void initializeInstrumentContextThreadLocal(java.util.List<? extends com.oracle.truffle.api.ContextThreadLocal<?>>, );
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.util.List local
        start local 2 // java.lang.Object polyglotInstrument
         0: .line 1250
            aload 1 /* local */
            aload 2 /* polyglotInstrument */
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            invokestatic com.oracle.truffle.polyglot.PolyglotLocals.initializeInstrumentContextThreadLocals:(Ljava/util/List;Lcom/oracle/truffle/polyglot/PolyglotInstrument;)V
         1: .line 1251
            return
        end local 2 // java.lang.Object polyglotInstrument
        end local 1 // java.util.List local
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1               local  Ljava/util/List<+Lcom/oracle/truffle/api/ContextThreadLocal<*>;>;
            0    2     2  polyglotInstrument  Ljava/lang/Object;
    Signature: (Ljava/util/List<+Lcom/oracle/truffle/api/ContextThreadLocal<*>;>;Ljava/lang/Object;)V
    MethodParameters:
                    Name  Flags
      local               
      polyglotInstrument  

  public boolean isPolyglotObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotObject
         0: .line 1255
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.getInstance:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            aload 1 /* polyglotObject */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object polyglotObject
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotObject  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      polyglotObject  

  public void initializeLanguageContextLocal(java.util.List<? extends com.oracle.truffle.api.ContextLocal<?>>, );
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.util.List locals
        start local 2 // java.lang.Object polyglotLanguageInstance
         0: .line 1261
            aload 1 /* locals */
            aload 2 /* polyglotLanguageInstance */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
            invokestatic com.oracle.truffle.polyglot.PolyglotLocals.initializeLanguageContextLocals:(Ljava/util/List;Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
         1: .line 1262
            return
        end local 2 // java.lang.Object polyglotLanguageInstance
        end local 1 // java.util.List locals
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1                    locals  Ljava/util/List<+Lcom/oracle/truffle/api/ContextLocal<*>;>;
            0    2     2  polyglotLanguageInstance  Ljava/lang/Object;
    Signature: (Ljava/util/List<+Lcom/oracle/truffle/api/ContextLocal<*>;>;Ljava/lang/Object;)V
    MethodParameters:
                          Name  Flags
      locals                    
      polyglotLanguageInstance  

  public void initializeLanguageContextThreadLocal(java.util.List<? extends com.oracle.truffle.api.ContextThreadLocal<?>>, );
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.util.List local
        start local 2 // java.lang.Object polyglotLanguageInstance
         0: .line 1267
            aload 1 /* local */
            aload 2 /* polyglotLanguageInstance */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageInstance
            invokestatic com.oracle.truffle.polyglot.PolyglotLocals.initializeLanguageContextThreadLocals:(Ljava/util/List;Lcom/oracle/truffle/polyglot/PolyglotLanguageInstance;)V
         1: .line 1268
            return
        end local 2 // java.lang.Object polyglotLanguageInstance
        end local 1 // java.util.List local
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1                     local  Ljava/util/List<+Lcom/oracle/truffle/api/ContextThreadLocal<*>;>;
            0    2     2  polyglotLanguageInstance  Ljava/lang/Object;
    Signature: (Ljava/util/List<+Lcom/oracle/truffle/api/ContextThreadLocal<*>;>;Ljava/lang/Object;)V
    MethodParameters:
                          Name  Flags
      local                     
      polyglotLanguageInstance  

  public org.graalvm.options.OptionValues getInstrumentContextOptions(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/options/OptionValues;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotInstrument
        start local 2 // java.lang.Object polyglotContext
         0: .line 1272
            aload 1 /* polyglotInstrument */
            checkcast com.oracle.truffle.polyglot.PolyglotInstrument
            astore 3 /* instrument */
        start local 3 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
         1: .line 1273
            aload 2 /* polyglotContext */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 4 /* context */
        start local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         2: .line 1274
            aload 4 /* context */
            aload 3 /* instrument */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getInstrumentContextOptions:(Lcom/oracle/truffle/polyglot/PolyglotInstrument;)Lorg/graalvm/options/OptionValues;
            areturn
        end local 4 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 3 // com.oracle.truffle.polyglot.PolyglotInstrument instrument
        end local 2 // java.lang.Object polyglotContext
        end local 1 // java.lang.Object polyglotInstrument
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    3     1  polyglotInstrument  Ljava/lang/Object;
            0    3     2     polyglotContext  Ljava/lang/Object;
            1    3     3          instrument  Lcom/oracle/truffle/polyglot/PolyglotInstrument;
            2    3     4             context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
                    Name  Flags
      polyglotInstrument  
      polyglotContext     

  public boolean isContextClosed(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotContext
         0: .line 1279
            aload 1 /* polyglotContext */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 2 /* context */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 1280
            aload 2 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifeq 3
            aload 2 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closingThread:Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 3
         2: .line 1281
            iconst_1
            ireturn
         3: .line 1283
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 2 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 1 // java.lang.Object polyglotContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    4     1  polyglotContext  Ljava/lang/Object;
            1    4     2          context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
                 Name  Flags
      polyglotContext  

  public boolean isContextActive(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotContext
         0: .line 1288
            aload 1 /* polyglotContext */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 2 /* context */
        start local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 1289
            aload 2 /* context */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActive:(Ljava/lang/Thread;)Z
            ireturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 1 // java.lang.Object polyglotContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    2     1  polyglotContext  Ljava/lang/Object;
            1    2     2          context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
    MethodParameters:
                 Name  Flags
      polyglotContext  

  public void closeContext(java.lang.Object, boolean, com.oracle.truffle.api.nodes.Node, boolean, java.lang.String);
    descriptor: (Ljava/lang/Object;ZLcom/oracle/truffle/api/nodes/Node;ZLjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object impl
        start local 2 // boolean force
        start local 3 // com.oracle.truffle.api.nodes.Node closeLocation
        start local 4 // boolean resourceExhaused
        start local 5 // java.lang.String resourceExhausedReason
         0: .line 1296
            aload 1 /* impl */
            checkcast com.oracle.truffle.polyglot.PolyglotContextImpl
            astore 6 /* context */
        start local 6 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         1: .line 1297
            iload 2 /* force */
            ifeq 11
         2: .line 1298
            aload 0 /* this */
            aload 6 /* context */
            invokevirtual com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.isContextActive:(Ljava/lang/Object;)Z
            istore 7 /* isActive */
        start local 7 // boolean isActive
         3: .line 1299
            aload 0 /* this */
            aload 6 /* context */
            invokevirtual com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.isContextEntered:(Ljava/lang/Object;)Z
            istore 8 /* entered */
        start local 8 // boolean entered
         4: .line 1300
            iload 7 /* isActive */
            ifeq 6
            iload 8 /* entered */
            ifne 6
         5: .line 1301
            ldc "The context is currently active on the current thread but another different context is entered as top-most context. Leave or close the top-most context first or close the context on a separate thread to resolve this problem."
            iconst_0
            anewarray java.lang.Object
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         6: .line 1304
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl int int
      StackMap stack:
            aload 6 /* context */
            iload 4 /* resourceExhaused */
            aload 5 /* resourceExhausedReason */
            iload 8 /* entered */
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Object int com.oracle.truffle.api.nodes.Node int java.lang.String com.oracle.truffle.polyglot.PolyglotContextImpl int int
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl int java.lang.String
         7: iconst_1
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Object int com.oracle.truffle.api.nodes.Node int java.lang.String com.oracle.truffle.polyglot.PolyglotContextImpl int int
      StackMap stack: com.oracle.truffle.polyglot.PolyglotContextImpl int java.lang.String int
         8: invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.cancel:(ZLjava/lang/String;Z)V
         9: .line 1305
            iload 8 /* entered */
            ifeq 14
        10: .line 1306
            aload 6 /* context */
            aload 3 /* closeLocation */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.createCancelException:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$CancelExecution;
            athrow
        end local 8 // boolean entered
        end local 7 // boolean isActive
        11: .line 1309
      StackMap locals:
      StackMap stack:
            aload 6 /* context */
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.isActiveNotCancelled:(Z)Z
            ifeq 13
        12: .line 1314
            new java.lang.IllegalStateException
            dup
            ldc "The context is currently active and cannot be closed. Make sure no thread is running or call closeCancelled on the context to resolve this."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 1316
      StackMap locals:
      StackMap stack:
            aload 6 /* context */
            iconst_0
            iconst_0
            iconst_1
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.closeImpl:(ZZZ)Z
            pop
        14: .line 1318
      StackMap locals:
      StackMap stack:
            return
        end local 6 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 5 // java.lang.String resourceExhausedReason
        end local 4 // boolean resourceExhaused
        end local 3 // com.oracle.truffle.api.nodes.Node closeLocation
        end local 2 // boolean force
        end local 1 // java.lang.Object impl
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   15     0                    this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0   15     1                    impl  Ljava/lang/Object;
            0   15     2                   force  Z
            0   15     3           closeLocation  Lcom/oracle/truffle/api/nodes/Node;
            0   15     4        resourceExhaused  Z
            0   15     5  resourceExhausedReason  Ljava/lang/String;
            1   15     6                 context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            3   11     7                isActive  Z
            4   11     8                 entered  Z
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                        Name  Flags
      impl                    
      force                   
      closeLocation           
      resourceExhaused        
      resourceExhausedReason  

  public <T, G> java.util.Iterator<T> mergeHostGuestFrames(java.lang.StackTraceElement[], java.util.Iterator<G>, boolean, java.util.function.Function<java.lang.StackTraceElement, T>, java.util.function.Function<G, T>);
    descriptor: ([Ljava/lang/StackTraceElement;Ljava/util/Iterator;ZLjava/util/function/Function;Ljava/util/function/Function;)Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.StackTraceElement[] hostStack
        start local 2 // java.util.Iterator guestFrames
        start local 3 // boolean inHostLanguage
        start local 4 // java.util.function.Function hostFrameConvertor
        start local 5 // java.util.function.Function guestFrameConvertor
         0: .line 1323
            new com.oracle.truffle.polyglot.PolyglotExceptionImpl$MergedHostGuestIterator
            dup
            aload 1 /* hostStack */
            aload 2 /* guestFrames */
            iload 3 /* inHostLanguage */
            aload 4 /* hostFrameConvertor */
            aload 5 /* guestFrameConvertor */
            invokespecial com.oracle.truffle.polyglot.PolyglotExceptionImpl$MergedHostGuestIterator.<init>:([Ljava/lang/StackTraceElement;Ljava/util/Iterator;ZLjava/util/function/Function;Ljava/util/function/Function;)V
            areturn
        end local 5 // java.util.function.Function guestFrameConvertor
        end local 4 // java.util.function.Function hostFrameConvertor
        end local 3 // boolean inHostLanguage
        end local 2 // java.util.Iterator guestFrames
        end local 1 // java.lang.StackTraceElement[] hostStack
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     0                 this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1            hostStack  [Ljava/lang/StackTraceElement;
            0    1     2          guestFrames  Ljava/util/Iterator<TG;>;
            0    1     3       inHostLanguage  Z
            0    1     4   hostFrameConvertor  Ljava/util/function/Function<Ljava/lang/StackTraceElement;TT;>;
            0    1     5  guestFrameConvertor  Ljava/util/function/Function<TG;TT;>;
    Signature: <T:Ljava/lang/Object;G:Ljava/lang/Object;>([Ljava/lang/StackTraceElement;Ljava/util/Iterator<TG;>;ZLjava/util/function/Function<Ljava/lang/StackTraceElement;TT;>;Ljava/util/function/Function<TG;TT;>;)Ljava/util/Iterator<TT;>;
    MethodParameters:
                     Name  Flags
      hostStack            
      guestFrames          
      inHostLanguage       
      hostFrameConvertor   
      guestFrameConvertor  

  public  createHostAdapterClass(, java.lang.Class<?>[], );
    descriptor: (Ljava/lang/Object;[Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object polyglotLanguageContext
        start local 2 // java.lang.Class[] types
        start local 3 // java.lang.Object classOverrides
         0: .line 1328
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 1329
            aload 1 /* polyglotLanguageContext */
            checkcast com.oracle.truffle.polyglot.PolyglotLanguageContext
            astore 4 /* languageContext */
        start local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
         2: .line 1330
            aload 4 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            astore 5 /* engine */
        start local 5 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         3: .line 1331
            aload 4 /* languageContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getHostContextImpl:()Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            astore 6 /* hostContext */
        start local 6 // com.oracle.truffle.polyglot.HostLanguage$HostContext hostContext
         4: .line 1332
            aload 5 /* engine */
            aload 6 /* hostContext */
            aload 2 /* types */
            aload 3 /* classOverrides */
            invokestatic com.oracle.truffle.polyglot.HostAdapterFactory.getAdapterClassFor:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;[Ljava/lang/Class;Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
            astore 7 /* adapter */
        start local 7 // com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult adapter
         5: .line 1333
            aload 7 /* adapter */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult.isSuccess:()Z
            ifne 7
         6: .line 1334
            aload 7 /* adapter */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult.throwException:()Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         7: .line 1336
      StackMap locals: com.oracle.truffle.polyglot.EngineAccessor$EngineImpl java.lang.Object java.lang.Class[] java.lang.Object com.oracle.truffle.polyglot.PolyglotLanguageContext com.oracle.truffle.polyglot.PolyglotEngineImpl com.oracle.truffle.polyglot.HostLanguage$HostContext com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult
      StackMap stack:
            aload 0 /* this */
            aload 1 /* polyglotLanguageContext */
            aload 7 /* adapter */
            invokevirtual com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult.getAdapterClass:()Ljava/lang/Class;
            invokevirtual com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.asHostSymbol:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 7 // com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult adapter
        end local 6 // com.oracle.truffle.polyglot.HostLanguage$HostContext hostContext
        end local 5 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 4 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 3 // java.lang.Object classOverrides
        end local 2 // java.lang.Class[] types
        end local 1 // java.lang.Object polyglotLanguageContext
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    8     0                     this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    8     1  polyglotLanguageContext  Ljava/lang/Object;
            0    8     2                    types  [Ljava/lang/Class;
            0    8     3           classOverrides  Ljava/lang/Object;
            2    8     4          languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            3    8     5                   engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            4    8     6              hostContext  Lcom/oracle/truffle/polyglot/HostLanguage$HostContext;
            5    8     7                  adapter  Lcom/oracle/truffle/polyglot/HostAdapterFactory$AdapterResult;
    Signature: (Ljava/lang/Object;[Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/Object;
    MethodParameters:
                         Name  Flags
      polyglotLanguageContext  
      types                    
      classOverrides           

  public java.lang.Iterable<com.oracle.truffle.api.Scope> findLibraryLocalScopesToLegacy(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.frame.Frame);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // com.oracle.truffle.api.frame.Frame frame
         0: .line 1342
            aload 1 /* node */
            aload 2 /* frame */
            invokestatic com.oracle.truffle.polyglot.LegacyScopesBridge.findLibraryLocalScopesToLegacy:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable;
            areturn
        end local 2 // com.oracle.truffle.api.frame.Frame frame
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1   node  Lcom/oracle/truffle/api/nodes/Node;
            0    1     2  frame  Lcom/oracle/truffle/api/frame/Frame;
    Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/frame/Frame;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    MethodParameters:
       Name  Flags
      node   
      frame  

  public java.lang.Iterable<com.oracle.truffle.api.Scope> topScopesToLegacy();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // java.lang.Object scope
         0: .line 1348
            aload 1 /* scope */
            invokestatic com.oracle.truffle.polyglot.LegacyScopesBridge.topScopesToLegacy:(Ljava/lang/Object;)Ljava/lang/Iterable;
            areturn
        end local 1 // java.lang.Object scope
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1  scope  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/lang/Iterable<Lcom/oracle/truffle/api/Scope;>;
    MethodParameters:
       Name  Flags
      scope  

  public boolean legacyScopesHasScope(com.oracle.truffle.api.nodes.NodeInterface, java.util.Iterator<com.oracle.truffle.api.Scope>);
    descriptor: (Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/util/Iterator;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.NodeInterface node
        start local 2 // java.util.Iterator legacyScopes
         0: .line 1354
            aload 1 /* node */
            aload 2 /* legacyScopes */
            invokestatic com.oracle.truffle.polyglot.LegacyScopesBridge.legacyScopesHasScope:(Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/util/Iterator;)Z
            ireturn
        end local 2 // java.util.Iterator legacyScopes
        end local 1 // com.oracle.truffle.api.nodes.NodeInterface node
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1          node  Lcom/oracle/truffle/api/nodes/NodeInterface;
            0    1     2  legacyScopes  Ljava/util/Iterator<Lcom/oracle/truffle/api/Scope;>;
    Signature: (Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/util/Iterator<Lcom/oracle/truffle/api/Scope;>;)Z
    MethodParameters:
              Name  Flags
      node          
      legacyScopes  

  public  legacyScopes2ScopeObject(com.oracle.truffle.api.nodes.NodeInterface, java.util.Iterator<com.oracle.truffle.api.Scope>, java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>>);
    descriptor: (Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/util/Iterator;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
        start local 1 // com.oracle.truffle.api.nodes.NodeInterface node
        start local 2 // java.util.Iterator legacyScopes
        start local 3 // java.lang.Class language
         0: .line 1360
            aload 1 /* node */
            aload 2 /* legacyScopes */
            aload 3 /* language */
            invokestatic com.oracle.truffle.polyglot.LegacyScopesBridge.legacyScopes2ScopeObject:(Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/util/Iterator;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Class language
        end local 2 // java.util.Iterator legacyScopes
        end local 1 // com.oracle.truffle.api.nodes.NodeInterface node
        end local 0 // com.oracle.truffle.polyglot.EngineAccessor$EngineImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/polyglot/EngineAccessor$EngineImpl;
            0    1     1          node  Lcom/oracle/truffle/api/nodes/NodeInterface;
            0    1     2  legacyScopes  Ljava/util/Iterator<Lcom/oracle/truffle/api/Scope;>;
            0    1     3      language  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;
    Signature: (Lcom/oracle/truffle/api/nodes/NodeInterface;Ljava/util/Iterator<Lcom/oracle/truffle/api/Scope;>;Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;)Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      node          
      legacyScopes  
      language      
}
SourceFile: "EngineAccessor.java"
NestHost: com.oracle.truffle.polyglot.EngineAccessor
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract FileTypeDetector = com.oracle.truffle.api.TruffleFile$FileTypeDetector of com.oracle.truffle.api.TruffleFile
  public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  public abstract LanguageReference = com.oracle.truffle.api.TruffleLanguage$LanguageReference of com.oracle.truffle.api.TruffleLanguage
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
  public abstract InstrumentSupport = com.oracle.truffle.api.impl.Accessor$InstrumentSupport of com.oracle.truffle.api.impl.Accessor
  public final JDKSupport = com.oracle.truffle.api.impl.Accessor$JDKSupport of com.oracle.truffle.api.impl.Accessor
  public abstract LanguageSupport = com.oracle.truffle.api.impl.Accessor$LanguageSupport of com.oracle.truffle.api.impl.Accessor
  public abstract NodeSupport = com.oracle.truffle.api.impl.Accessor$NodeSupport of com.oracle.truffle.api.impl.Accessor
  abstract AbstractClassLoaderSupplier = com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier of com.oracle.truffle.polyglot.EngineAccessor
  final EngineImpl = com.oracle.truffle.polyglot.EngineAccessor$EngineImpl of com.oracle.truffle.polyglot.EngineAccessor
  final PreInitializeContextFileSystem = com.oracle.truffle.polyglot.FileSystems$PreInitializeContextFileSystem of com.oracle.truffle.polyglot.FileSystems
  final AdapterResult = com.oracle.truffle.polyglot.HostAdapterFactory$AdapterResult of com.oracle.truffle.polyglot.HostAdapterFactory
  final HostContext = com.oracle.truffle.polyglot.HostLanguage$HostContext of com.oracle.truffle.polyglot.HostLanguage
  final CancelExecution = com.oracle.truffle.polyglot.PolyglotEngineImpl$CancelExecution of com.oracle.truffle.polyglot.PolyglotEngineImpl
  MergedHostGuestIterator = com.oracle.truffle.polyglot.PolyglotExceptionImpl$MergedHostGuestIterator of com.oracle.truffle.polyglot.PolyglotExceptionImpl
  abstract VMObject = com.oracle.truffle.polyglot.PolyglotImpl$VMObject of com.oracle.truffle.polyglot.PolyglotImpl
  final InstrumentContextLocal = com.oracle.truffle.polyglot.PolyglotLocals$InstrumentContextLocal of com.oracle.truffle.polyglot.PolyglotLocals
  final InstrumentContextThreadLocal = com.oracle.truffle.polyglot.PolyglotLocals$InstrumentContextThreadLocal of com.oracle.truffle.polyglot.PolyglotLocals
  final LanguageContextLocal = com.oracle.truffle.polyglot.PolyglotLocals$LanguageContextLocal of com.oracle.truffle.polyglot.PolyglotLocals
  final LanguageContextThreadLocal = com.oracle.truffle.polyglot.PolyglotLocals$LanguageContextThreadLocal of com.oracle.truffle.polyglot.PolyglotLocals
  abstract LoggerCache = com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache of com.oracle.truffle.polyglot.PolyglotLoggers
  abstract AbstractContextReference = com.oracle.truffle.polyglot.PolyglotReferences$AbstractContextReference of com.oracle.truffle.polyglot.PolyglotReferences
  final EmbedderFileSystemContext = com.oracle.truffle.polyglot.PolyglotSource$EmbedderFileSystemContext of com.oracle.truffle.polyglot.PolyglotSource
  public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractContextImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractValueImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract IOAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public final ProcessCommand = org.graalvm.polyglot.io.ProcessHandler$ProcessCommand of org.graalvm.polyglot.io.ProcessHandler
  public final Redirect = org.graalvm.polyglot.io.ProcessHandler$Redirect of org.graalvm.polyglot.io.ProcessHandler