public final class com.oracle.truffle.polyglot.PolyglotImpl extends org.graalvm.polyglot.impl.AbstractPolyglotImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.PolyglotImpl
  super_class: org.graalvm.polyglot.impl.AbstractPolyglotImpl
{
  static final java.lang.Object[] EMPTY_ARGS;
    descriptor: [Ljava/lang/Object;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.lang.String OPTION_GROUP_ENGINE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "engine"

  static final java.lang.String PROP_ALLOW_EXPERIMENTAL_OPTIONS;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "polyglot.engine.AllowExperimentalOptions"

  private static final com.oracle.truffle.polyglot.HostException STACKOVERFLOW_ERROR;
    descriptor: Lcom/oracle/truffle/polyglot/HostException;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final com.oracle.truffle.polyglot.PolyglotSource sourceImpl;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotSource;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.polyglot.PolyglotSourceSection sourceSectionImpl;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotSourceSection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.polyglot.PolyglotManagement executionListenerImpl;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotManagement;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicReference<com.oracle.truffle.polyglot.PolyglotEngineImpl> preInitializedEngineRef;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;>;

  private final java.util.function.Function<com.oracle.truffle.api.source.Source, org.graalvm.polyglot.Source> sourceConstructor;
    descriptor: Ljava/util/function/Function;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/function/Function<Lcom/oracle/truffle/api/source/Source;Lorg/graalvm/polyglot/Source;>;

  final java.util.Map<java.lang.Class<?>, com.oracle.truffle.polyglot.PolyglotValue> primitiveValues;
    descriptor: Ljava/util/Map;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lcom/oracle/truffle/polyglot/PolyglotValue;>;

  org.graalvm.polyglot.Value hostNull;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0000) 

  com.oracle.truffle.polyglot.PolyglotValue disconnectedHostValue;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotValue;
    flags: (0x0000) 

  static volatile com.oracle.truffle.polyglot.PolyglotImpl polyglotImpl;
    descriptor: Lcom/oracle/truffle/polyglot/PolyglotImpl;
    flags: (0x0048) ACC_STATIC, ACC_VOLATILE

  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=4, locals=0, args_size=0
         0: .line 86
            ldc Lcom/oracle/truffle/polyglot/PolyglotImpl;
            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.PolyglotImpl.$assertionsDisabled:Z
         3: .line 88
            iconst_0
            anewarray java.lang.Object
            putstatic com.oracle.truffle.polyglot.PolyglotImpl.EMPTY_ARGS:[Ljava/lang/Object;
         4: .line 92
            new com.oracle.truffle.polyglot.HostException
            dup
            new com.oracle.truffle.polyglot.PolyglotImpl$1
            dup
            invokespecial com.oracle.truffle.polyglot.PolyglotImpl$1.<init>:()V
            invokespecial com.oracle.truffle.polyglot.HostException.<init>:(Ljava/lang/Throwable;)V
            putstatic com.oracle.truffle.polyglot.PolyglotImpl.STACKOVERFLOW_ERROR:Lcom/oracle/truffle/polyglot/HostException;
         5: .line 114
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 119
            aload 0 /* this */
            invokespecial org.graalvm.polyglot.impl.AbstractPolyglotImpl.<init>:()V
         1: .line 100
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotSource
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotSource.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotImpl.sourceImpl:Lcom/oracle/truffle/polyglot/PolyglotSource;
         2: .line 101
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotSourceSection
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotSourceSection.<init>:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotImpl.sourceSectionImpl:Lcom/oracle/truffle/polyglot/PolyglotSourceSection;
         3: .line 102
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotManagement
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotManagement.<init>:(Lcom/oracle/truffle/polyglot/PolyglotImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotImpl.executionListenerImpl:Lcom/oracle/truffle/polyglot/PolyglotManagement;
         4: .line 103
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotImpl.preInitializedEngineRef:Ljava/util/concurrent/atomic/AtomicReference;
         5: .line 104
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotImpl$2
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotImpl$2.<init>:(Lcom/oracle/truffle/polyglot/PolyglotImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotImpl.sourceConstructor:Ljava/util/function/Function;
         6: .line 110
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.polyglot.PolyglotImpl.primitiveValues:Ljava/util/Map;
         7: .line 120
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 8
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.polyglotImpl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            ifnull 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 121
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl
      StackMap stack:
            aload 0 /* this */
            putstatic com.oracle.truffle.polyglot.PolyglotImpl.polyglotImpl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
         9: .line 122
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/oracle/truffle/polyglot/PolyglotImpl;

  static com.oracle.truffle.polyglot.PolyglotImpl getInstance();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotImpl;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 125
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.polyglotImpl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            ifnonnull 7
         1: .line 133
            ldc Lorg/graalvm/polyglot/Engine;
            ldc "getImpl"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 0 /* f */
        start local 0 // java.lang.reflect.Method f
         2: .line 134
            aload 0 /* f */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
         3: .line 135
            aload 0 /* f */
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 136
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 7
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.polyglotImpl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            ifnonnull 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 0 // java.lang.reflect.Method f
         5: .line 137
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 0 /* e */
        start local 0 // java.lang.Exception e
         6: .line 138
            new java.lang.AssertionError
            dup
            aload 0 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 0 // java.lang.Exception e
         7: .line 141
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.polyglotImpl:Lcom/oracle/truffle/polyglot/PolyglotImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    5     0     f  Ljava/lang/reflect/Method;
            6    7     0     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     5       5  Class java.lang.Exception

  protected void initialize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 146
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            getstatic com.oracle.truffle.polyglot.HostObject.NULL:Lcom/oracle/truffle/polyglot/HostObject;
            aload 0 /* this */
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.createHostNull:(Lcom/oracle/truffle/polyglot/PolyglotImpl;)Lcom/oracle/truffle/polyglot/PolyglotValue;
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newValue:(Ljava/lang/Object;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;)Lorg/graalvm/polyglot/Value;
            putfield com.oracle.truffle.polyglot.PolyglotImpl.hostNull:Lorg/graalvm/polyglot/Value;
         1: .line 147
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.primitiveValues:Ljava/util/Map;
            invokestatic com.oracle.truffle.polyglot.PolyglotValue.createDefaultValues:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/util/Map;)V
         2: .line 148
            aload 0 /* this */
            new com.oracle.truffle.polyglot.PolyglotValue$HostValue
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.PolyglotValue$HostValue.<init>:(Lcom/oracle/truffle/polyglot/PolyglotImpl;)V
            putfield com.oracle.truffle.polyglot.PolyglotImpl.disconnectedHostValue:Lcom/oracle/truffle/polyglot/PolyglotValue;
         3: .line 149
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/PolyglotImpl;

  public org.graalvm.polyglot.Context getLimitEventContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/polyglot/Context;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
        start local 1 // java.lang.Object impl
         0: .line 153
            aload 1 /* impl */
            checkcast org.graalvm.polyglot.Context
            areturn
        end local 1 // java.lang.Object impl
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0    1     1  impl  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      impl  

  public  buildLimits(long, java.util.function.Predicate<org.graalvm.polyglot.Source>, java.util.function.Consumer<org.graalvm.polyglot.ResourceLimitEvent>);
    descriptor: (JLjava/util/function/Predicate;Ljava/util/function/Consumer;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
        start local 1 // long statementLimit
        start local 3 // java.util.function.Predicate statementLimitSourceFilter
        start local 4 // java.util.function.Consumer onLimit
         0: .line 160
            new com.oracle.truffle.polyglot.PolyglotLimits
            dup
            lload 1 /* statementLimit */
            aload 3 /* statementLimitSourceFilter */
            aload 4 /* onLimit */
            invokespecial com.oracle.truffle.polyglot.PolyglotLimits.<init>:(JLjava/util/function/Predicate;Ljava/util/function/Consumer;)V
         1: areturn
         2: .line 161
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
         3: .line 162
            aload 0 /* this */
            aload 5 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 5 // java.lang.Throwable t
        end local 4 // java.util.function.Consumer onLimit
        end local 3 // java.util.function.Predicate statementLimitSourceFilter
        end local 1 // long statementLimit
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    4     0                        this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0    4     1              statementLimit  J
            0    4     3  statementLimitSourceFilter  Ljava/util/function/Predicate<Lorg/graalvm/polyglot/Source;>;
            0    4     4                     onLimit  Ljava/util/function/Consumer<Lorg/graalvm/polyglot/ResourceLimitEvent;>;
            3    4     5                           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: (JLjava/util/function/Predicate<Lorg/graalvm/polyglot/Source;>;Ljava/util/function/Consumer<Lorg/graalvm/polyglot/ResourceLimitEvent;>;)Ljava/lang/Object;
    MethodParameters:
                            Name  Flags
      statementLimit              
      statementLimitSourceFilter  
      onLimit                     

  public org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceImpl getSourceImpl();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractSourceImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 171
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.sourceImpl:Lcom/oracle/truffle/polyglot/PolyglotSource;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotImpl;

  public org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceSectionImpl getSourceSectionImpl();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractSourceSectionImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 179
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.sourceSectionImpl:Lcom/oracle/truffle/polyglot/PolyglotSourceSection;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotImpl;

  public org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractManagementImpl getManagementImpl();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractManagementImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 187
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.executionListenerImpl:Lcom/oracle/truffle/polyglot/PolyglotManagement;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotImpl;

  public org.graalvm.polyglot.Context getCurrentContext();
    descriptor: ()Lorg/graalvm/polyglot/Context;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 196
            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 197
            aload 1 /* context */
            ifnonnull 4
         2: .line 199
            ldc "No current context is available. Make sure the Java method is invoked by a Graal guest language or a context is entered using Context.enter()."
         3: .line 198
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.illegalState:(Ljava/lang/String;)Lcom/oracle/truffle/polyglot/PolyglotEngineException;
            athrow
         4: .line 201
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            aload 1 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.currentApi:Lorg/graalvm/polyglot/Context;
         5: areturn
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         6: .line 202
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         7: .line 203
            aload 0 /* this */
            aload 1 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 1 // java.lang.Throwable t
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            1    6     1  context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            7    8     1        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Throwable

  public org.graalvm.polyglot.Engine buildEngine(java.io.OutputStream, java.io.OutputStream, java.io.InputStream, java.util.Map<java.lang.String, java.lang.String>, boolean, boolean, boolean, org.graalvm.polyglot.io.MessageTransport, , org.graalvm.polyglot.HostAccess);
    descriptor: (Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;ZZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/lang/Object;Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Engine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=16, locals=25, args_size=11
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
        start local 1 // java.io.OutputStream out
        start local 2 // java.io.OutputStream err
        start local 3 // java.io.InputStream in
        start local 4 // java.util.Map originalOptions
        start local 5 // boolean useSystemProperties
        start local 6 // boolean allowExperimentalOptions
        start local 7 // boolean boundEngine
        start local 8 // org.graalvm.polyglot.io.MessageTransport messageInterceptor
        start local 9 // java.lang.Object logHandlerOrStream
        start local 10 // org.graalvm.polyglot.HostAccess conf
         0: .line 214
            aconst_null
            astore 11 /* impl */
        start local 11 // com.oracle.truffle.polyglot.PolyglotEngineImpl impl
         1: .line 216
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            ifeq 3
         2: .line 217
            getstatic com.oracle.truffle.polyglot.EngineAccessor.ACCESSOR:Lcom/oracle/truffle/polyglot/EngineAccessor;
            invokevirtual com.oracle.truffle.polyglot.EngineAccessor.initializeNativeImageTruffleLocator:()V
         3: .line 219
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack:
            aload 1 /* out */
            ifnonnull 4
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 1 /* out */
      StackMap locals:
      StackMap stack: java.io.OutputStream
         5: astore 12 /* resolvedOut */
        start local 12 // java.io.OutputStream resolvedOut
         6: .line 220
            aload 2 /* err */
            ifnonnull 7
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            goto 8
      StackMap locals: java.io.OutputStream
      StackMap stack:
         7: aload 2 /* err */
      StackMap locals:
      StackMap stack: java.io.OutputStream
         8: astore 13 /* resolvedErr */
        start local 13 // java.io.OutputStream resolvedErr
         9: .line 221
            aload 3 /* in */
            ifnonnull 10
            getstatic java.lang.System.in:Ljava/io/InputStream;
            goto 11
      StackMap locals: java.io.OutputStream
      StackMap stack:
        10: aload 3 /* in */
      StackMap locals:
      StackMap stack: java.io.InputStream
        11: astore 14 /* resolvedIn */
        start local 14 // java.io.InputStream resolvedIn
        12: .line 222
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 12 /* resolvedOut */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDispatchOutput:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            astore 15 /* dispatchOut */
        start local 15 // com.oracle.truffle.api.impl.DispatchOutputStream dispatchOut
        13: .line 223
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 13 /* resolvedErr */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDispatchOutput:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            astore 16 /* dispatchErr */
        start local 16 // com.oracle.truffle.api.impl.DispatchOutputStream dispatchErr
        14: .line 224
            aload 9 /* logHandlerOrStream */
            invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.asHandler:(Ljava/lang/Object;)Ljava/util/logging/Handler;
            astore 17 /* logHandler */
        start local 17 // java.util.logging.Handler logHandler
        15: .line 225
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            ifeq 16
            aconst_null
            goto 17
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl java.io.OutputStream java.io.OutputStream java.io.InputStream java.util.Map int int int org.graalvm.polyglot.io.MessageTransport java.lang.Object org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotEngineImpl java.io.OutputStream java.io.OutputStream java.io.InputStream com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.util.logging.Handler
      StackMap stack:
        16: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
        17: astore 18 /* contextClassLoader */
        start local 18 // java.lang.ClassLoader contextClassLoader
        18: .line 226
            iload 6 /* allowExperimentalOptions */
            ifne 19
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            ldc "polyglot.engine.AllowExperimentalOptions"
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.getSavedProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            ifne 19
            iconst_0
            goto 20
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
        19: iconst_1
      StackMap locals:
      StackMap stack: int
        20: istore 19 /* useAllowExperimentalOptions */
        start local 19 // boolean useAllowExperimentalOptions
        21: .line 228
            new java.util.HashMap
            dup
            aload 4 /* originalOptions */
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 20 /* options */
        start local 20 // java.util.Map options
        22: .line 229
            iload 5 /* useSystemProperties */
            ifeq 24
        23: .line 230
            aload 20 /* options */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.readOptionsFromSystemProperties:(Ljava/util/Map;)Ljava/util/Map;
            pop
        24: .line 233
      StackMap locals: int java.util.Map
      StackMap stack:
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig
            dup
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.<init>:()V
            astore 21 /* logConfig */
        start local 21 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logConfig
        25: .line 234
            aload 20 /* options */
            aload 21 /* logConfig */
            iload 19 /* useAllowExperimentalOptions */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.createEngineOptions:(Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Z)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 22 /* engineOptions */
        start local 22 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptions
        26: .line 236
            aload 17 /* logHandler */
            ifnull 27
            aload 17 /* logHandler */
            goto 28
      StackMap locals: com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig com.oracle.truffle.polyglot.OptionValuesImpl
      StackMap stack:
        27: aload 21 /* logConfig */
            aload 16 /* dispatchErr */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.createLogHandler:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/util/logging/Handler;
      StackMap locals:
      StackMap stack: java.util.logging.Handler
        28: astore 17 /* logHandler */
        29: .line 237
            new com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider
            dup
            aload 17 /* logHandler */
            aload 21 /* logConfig */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logLevels:Ljava/util/Map;
            aload 21 /* logConfig */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logFile:Ljava/lang/String;
            invokespecial com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.<init>:(Ljava/util/logging/Handler;Ljava/util/Map;Ljava/lang/String;)V
            astore 23 /* loggerProvider */
        start local 23 // com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider loggerProvider
        30: .line 239
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 22 /* engineOptions */
            aload 23 /* loggerProvider */
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.tryLoadCachedEngine:(Lorg/graalvm/options/OptionValues;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            astore 11 /* impl */
        31: .line 240
            aload 11 /* impl */
            ifnonnull 33
            iload 7 /* boundEngine */
            ifeq 33
            getstatic com.oracle.truffle.polyglot.EngineAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 22 /* engineOptions */
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.isStoreEnabled:(Lorg/graalvm/options/OptionValues;)Z
            ifne 33
        32: .line 241
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.preInitializedEngineRef:Ljava/util/concurrent/atomic/AtomicReference;
            aconst_null
            invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.polyglot.PolyglotEngineImpl
            astore 11 /* impl */
        33: .line 244
      StackMap locals: com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider
      StackMap stack:
            aload 11 /* impl */
            ifnull 49
        34: .line 245
            aload 11 /* impl */
            aload 15 /* dispatchOut */
        35: .line 246
            aload 16 /* dispatchErr */
        36: .line 247
            aload 14 /* resolvedIn */
        37: .line 248
            aload 22 /* engineOptions */
        38: .line 249
            aload 21 /* logConfig */
        39: .line 250
            aload 23 /* loggerProvider */
        40: .line 251
            aload 20 /* options */
        41: .line 252
            iload 19 /* useAllowExperimentalOptions */
        42: .line 253
            aload 18 /* contextClassLoader */
        43: .line 254
            iload 7 /* boundEngine */
        44: .line 255
            aload 17 /* logHandler */
        45: .line 245
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.patch:(Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Ljava/util/function/Function;Ljava/util/Map;ZLjava/lang/ClassLoader;ZLjava/util/logging/Handler;)Z
        46: .line 255
            ifne 49
        47: .line 256
            aload 11 /* impl */
            iconst_0
            iconst_0
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.ensureClosed:(ZZ)V
        48: .line 257
            aconst_null
            astore 11 /* impl */
        49: .line 260
      StackMap locals:
      StackMap stack:
            aload 11 /* impl */
            ifnonnull 64
        50: .line 261
            new com.oracle.truffle.polyglot.PolyglotEngineImpl
            dup
            aload 0 /* this */
        51: .line 262
            aload 15 /* dispatchOut */
        52: .line 263
            aload 16 /* dispatchErr */
        53: .line 264
            aload 14 /* resolvedIn */
        54: .line 265
            aload 22 /* engineOptions */
        55: .line 266
            aload 21 /* logConfig */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logLevels:Ljava/util/Map;
        56: .line 267
            aload 23 /* loggerProvider */
        57: .line 268
            aload 20 /* options */
        58: .line 269
            iload 19 /* useAllowExperimentalOptions */
        59: .line 270
            aload 18 /* contextClassLoader */
        60: .line 271
            iload 7 /* boundEngine */
            iconst_0
        61: .line 272
            aload 8 /* messageInterceptor */
        62: .line 273
            aload 17 /* logHandler */
        63: .line 261
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;Ljava/util/Map;ZLjava/lang/ClassLoader;ZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/util/logging/Handler;)V
            astore 11 /* impl */
        64: .line 275
      StackMap locals:
      StackMap stack:
            aload 23 /* loggerProvider */
            aload 11 /* impl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.setEngine:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
        65: .line 277
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 11 /* impl */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
            astore 24 /* engine */
        start local 24 // org.graalvm.polyglot.Engine engine
        66: .line 278
            aload 11 /* impl */
            aload 24 /* engine */
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.creatorApi:Lorg/graalvm/polyglot/Engine;
        67: .line 279
            aload 11 /* impl */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 11 /* impl */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newEngine:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractEngineImpl;)Lorg/graalvm/polyglot/Engine;
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.currentApi:Lorg/graalvm/polyglot/Engine;
        68: .line 281
            aload 24 /* engine */
        69: areturn
        end local 24 // org.graalvm.polyglot.Engine engine
        end local 23 // com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider loggerProvider
        end local 22 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptions
        end local 21 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logConfig
        end local 20 // java.util.Map options
        end local 19 // boolean useAllowExperimentalOptions
        end local 18 // java.lang.ClassLoader contextClassLoader
        end local 17 // java.util.logging.Handler logHandler
        end local 16 // com.oracle.truffle.api.impl.DispatchOutputStream dispatchErr
        end local 15 // com.oracle.truffle.api.impl.DispatchOutputStream dispatchOut
        end local 14 // java.io.InputStream resolvedIn
        end local 13 // java.io.OutputStream resolvedErr
        end local 12 // java.io.OutputStream resolvedOut
        70: .line 282
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl java.io.OutputStream java.io.OutputStream java.io.InputStream java.util.Map int int int org.graalvm.polyglot.io.MessageTransport java.lang.Object org.graalvm.polyglot.HostAccess com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack: java.lang.Throwable
            astore 12 /* t */
        start local 12 // java.lang.Throwable t
        71: .line 283
            aload 11 /* impl */
            ifnonnull 73
        72: .line 284
            aload 0 /* this */
            aload 12 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        73: .line 286
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 11 /* impl */
            aload 12 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 12 // java.lang.Throwable t
        end local 11 // com.oracle.truffle.polyglot.PolyglotEngineImpl impl
        end local 10 // org.graalvm.polyglot.HostAccess conf
        end local 9 // java.lang.Object logHandlerOrStream
        end local 8 // org.graalvm.polyglot.io.MessageTransport messageInterceptor
        end local 7 // boolean boundEngine
        end local 6 // boolean allowExperimentalOptions
        end local 5 // boolean useSystemProperties
        end local 4 // java.util.Map originalOptions
        end local 3 // java.io.InputStream in
        end local 2 // java.io.OutputStream err
        end local 1 // java.io.OutputStream out
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   74     0                         this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0   74     1                          out  Ljava/io/OutputStream;
            0   74     2                          err  Ljava/io/OutputStream;
            0   74     3                           in  Ljava/io/InputStream;
            0   74     4              originalOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   74     5          useSystemProperties  Z
            0   74     6     allowExperimentalOptions  Z
            0   74     7                  boundEngine  Z
            0   74     8           messageInterceptor  Lorg/graalvm/polyglot/io/MessageTransport;
            0   74     9           logHandlerOrStream  Ljava/lang/Object;
            0   74    10                         conf  Lorg/graalvm/polyglot/HostAccess;
            1   74    11                         impl  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            6   70    12                  resolvedOut  Ljava/io/OutputStream;
            9   70    13                  resolvedErr  Ljava/io/OutputStream;
           12   70    14                   resolvedIn  Ljava/io/InputStream;
           13   70    15                  dispatchOut  Lcom/oracle/truffle/api/impl/DispatchOutputStream;
           14   70    16                  dispatchErr  Lcom/oracle/truffle/api/impl/DispatchOutputStream;
           15   70    17                   logHandler  Ljava/util/logging/Handler;
           18   70    18           contextClassLoader  Ljava/lang/ClassLoader;
           21   70    19  useAllowExperimentalOptions  Z
           22   70    20                      options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           25   70    21                    logConfig  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;
           26   70    22                engineOptions  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
           30   70    23               loggerProvider  Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;
           66   70    24                       engine  Lorg/graalvm/polyglot/Engine;
           71   74    12                            t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1    69      70  Class java.lang.Throwable
    Signature: (Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/lang/Object;Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Engine;
    MethodParameters:
                          Name  Flags
      out                       
      err                       
      in                        
      originalOptions           
      useSystemProperties       
      allowExperimentalOptions  final
      boundEngine               
      messageInterceptor        
      logHandlerOrStream        
      conf                      

  static com.oracle.truffle.polyglot.OptionValuesImpl createEngineOptions(java.util.Map<java.lang.String, java.lang.String>, com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig, boolean);
    descriptor: (Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Z)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.util.Map options
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logOptions
        start local 2 // boolean allowExperimentalOptions
         0: .line 292
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.createEngineOptionDescriptors:()Lorg/graalvm/options/OptionDescriptors;
            astore 3 /* engineOptionDescriptors */
        start local 3 // org.graalvm.options.OptionDescriptors engineOptionDescriptors
         1: .line 293
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* engineOptions */
        start local 4 // java.util.Map engineOptions
         2: .line 294
            aload 0 /* options */
            aload 4 /* engineOptions */
            aload 1 /* logOptions */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.parseEngineOptions:(Ljava/util/Map;Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;)V
         3: .line 295
            new com.oracle.truffle.polyglot.OptionValuesImpl
            dup
            aconst_null
            aload 3 /* engineOptionDescriptors */
            iconst_1
            invokespecial com.oracle.truffle.polyglot.OptionValuesImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lorg/graalvm/options/OptionDescriptors;Z)V
            astore 5 /* values */
        start local 5 // com.oracle.truffle.polyglot.OptionValuesImpl values
         4: .line 296
            aload 5 /* values */
            aload 4 /* engineOptions */
            iload 2 /* allowExperimentalOptions */
            invokevirtual com.oracle.truffle.polyglot.OptionValuesImpl.putAll:(Ljava/util/Map;Z)V
         5: .line 297
            aload 5 /* values */
            areturn
        end local 5 // com.oracle.truffle.polyglot.OptionValuesImpl values
        end local 4 // java.util.Map engineOptions
        end local 3 // org.graalvm.options.OptionDescriptors engineOptionDescriptors
        end local 2 // boolean allowExperimentalOptions
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logOptions
        end local 0 // java.util.Map options
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    6     0                   options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0    6     1                logOptions  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;
            0    6     2  allowExperimentalOptions  Z
            1    6     3   engineOptionDescriptors  Lorg/graalvm/options/OptionDescriptors;
            2    6     4             engineOptions  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            4    6     5                    values  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Z)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
    MethodParameters:
                          Name  Flags
      options                   
      logOptions                
      allowExperimentalOptions  

  public void preInitializeEngine();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 305
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.createDefaultEngine:()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            astore 1 /* engine */
        start local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
         1: .line 307
            aload 1 /* engine */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.preInitialize:()V
         2: .line 308
            goto 8
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.polyglot.PolyglotEngineImpl
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 311
            invokestatic com.oracle.truffle.polyglot.LanguageCache.resetNativeImageCacheLanguageHomes:()V
         5: .line 313
            aload 1 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         6: .line 314
            aload 1 /* engine */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
         7: .line 315
            aload 2
            athrow
         8: .line 311
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.polyglot.LanguageCache.resetNativeImageCacheLanguageHomes:()V
         9: .line 313
            aload 1 /* engine */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logLevels:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        10: .line 314
            aload 1 /* engine */
            aconst_null
            putfield com.oracle.truffle.polyglot.PolyglotEngineImpl.logHandler:Ljava/util/logging/Handler;
        11: .line 316
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.preInitializedEngineRef:Ljava/util/concurrent/atomic/AtomicReference;
            aload 1 /* engine */
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
        12: .line 317
            return
        end local 1 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            1   13     1  engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
      Exception table:
        from    to  target  type
           1     3       3  any

  com.oracle.truffle.polyglot.PolyglotEngineImpl createDefaultEngine();
    descriptor: ()Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
    flags: (0x0000) 
    Code:
      stack=16, locals=9, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 323
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* options */
        start local 1 // java.util.Map options
         1: .line 324
            aload 1 /* options */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.readOptionsFromSystemProperties:(Ljava/util/Map;)Ljava/util/Map;
            pop
         2: .line 325
            new com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig
            dup
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.<init>:()V
            astore 2 /* logConfig */
        start local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logConfig
         3: .line 326
            aload 1 /* options */
            aload 2 /* logConfig */
            iconst_1
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.createEngineOptions:(Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Z)Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            astore 3 /* engineOptions */
        start local 3 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptions
         4: .line 327
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDispatchOutput:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            astore 4 /* out */
        start local 4 // com.oracle.truffle.api.impl.DispatchOutputStream out
         5: .line 328
            getstatic com.oracle.truffle.polyglot.EngineAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.createDispatchOutput:(Ljava/io/OutputStream;)Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            astore 5 /* err */
        start local 5 // com.oracle.truffle.api.impl.DispatchOutputStream err
         6: .line 329
            aload 2 /* logConfig */
            aload 5 /* err */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.createLogHandler:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;Lcom/oracle/truffle/api/impl/DispatchOutputStream;)Ljava/util/logging/Handler;
            astore 6 /* logHandler */
        start local 6 // java.util.logging.Handler logHandler
         7: .line 330
            new com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider
            dup
            aload 6 /* logHandler */
            aload 2 /* logConfig */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logLevels:Ljava/util/Map;
            aload 2 /* logConfig */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logFile:Ljava/lang/String;
            invokespecial com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.<init>:(Ljava/util/logging/Handler;Ljava/util/Map;Ljava/lang/String;)V
            astore 7 /* loggerProvider */
        start local 7 // com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider loggerProvider
         8: .line 331
            new com.oracle.truffle.polyglot.PolyglotEngineImpl
            dup
            aload 0 /* this */
            aload 4 /* out */
            aload 5 /* err */
            getstatic java.lang.System.in:Ljava/io/InputStream;
            aload 3 /* engineOptions */
            aload 2 /* logConfig */
            getfield com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig.logLevels:Ljava/util/Map;
            aload 7 /* loggerProvider */
            aload 1 /* options */
            iconst_1
         9: .line 332
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            ifeq 10
            aconst_null
            goto 11
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl java.util.Map com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig com.oracle.truffle.polyglot.OptionValuesImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.util.logging.Handler com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider
      StackMap stack: new 8 new 8 com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int
        10: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl java.util.Map com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig com.oracle.truffle.polyglot.OptionValuesImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.util.logging.Handler com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider
      StackMap stack: new 8 new 8 com.oracle.truffle.polyglot.PolyglotImpl com.oracle.truffle.api.impl.DispatchOutputStream com.oracle.truffle.api.impl.DispatchOutputStream java.io.InputStream com.oracle.truffle.polyglot.OptionValuesImpl java.util.Map com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.util.Map int java.lang.ClassLoader
        11: iconst_1
            iconst_1
            aconst_null
            aload 6 /* logHandler */
        12: .line 331
            invokespecial com.oracle.truffle.polyglot.PolyglotEngineImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Lcom/oracle/truffle/api/impl/DispatchOutputStream;Ljava/io/InputStream;Lcom/oracle/truffle/polyglot/OptionValuesImpl;Ljava/util/Map;Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;Ljava/util/Map;ZLjava/lang/ClassLoader;ZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/util/logging/Handler;)V
            astore 8 /* engine */
        start local 8 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        13: .line 334
            aload 7 /* loggerProvider */
            aload 8 /* engine */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.setEngine:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
        14: .line 335
            aload 8 /* engine */
            areturn
        end local 8 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        end local 7 // com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider loggerProvider
        end local 6 // java.util.logging.Handler logHandler
        end local 5 // com.oracle.truffle.api.impl.DispatchOutputStream err
        end local 4 // com.oracle.truffle.api.impl.DispatchOutputStream out
        end local 3 // com.oracle.truffle.polyglot.OptionValuesImpl engineOptions
        end local 2 // com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig logConfig
        end local 1 // java.util.Map options
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            1   15     1         options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3   15     2       logConfig  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl$LogConfig;
            4   15     3   engineOptions  Lcom/oracle/truffle/polyglot/OptionValuesImpl;
            5   15     4             out  Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            6   15     5             err  Lcom/oracle/truffle/api/impl/DispatchOutputStream;
            7   15     6      logHandler  Ljava/util/logging/Handler;
            8   15     7  loggerProvider  Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;
           13   15     8          engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;

  public void resetPreInitializedEngine();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 343
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.preInitializedEngineRef:Ljava/util/concurrent/atomic/AtomicReference;
            aconst_null
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         1: .line 344
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.resetPreInitializedEngine:()V
         2: .line 345
            return
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/PolyglotImpl;

  public java.lang.Class<?> loadLanguageClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
        start local 1 // java.lang.String className
         0: .line 352
            invokestatic com.oracle.truffle.polyglot.EngineAccessor.locatorOrDefaultLoaders:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.function.Supplier
            astore 2 /* supplier */
        start local 2 // java.util.function.Supplier supplier
         2: .line 353
            aload 2 /* supplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 4 /* loader */
        start local 4 // java.lang.ClassLoader loader
         3: .line 354
            aload 4 /* loader */
            ifnull 10
         4: .line 356
            aload 4 /* loader */
            aload 1 /* className */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* c */
        start local 5 // java.lang.Class c
         5: .line 357
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            ifne 7
         6: .line 363
            getstatic com.oracle.truffle.polyglot.EngineAccessor.JDKSERVICES:Lcom/oracle/truffle/api/impl/Accessor$JDKSupport;
            aload 4 /* loader */
            aconst_null
            invokevirtual com.oracle.truffle.api.impl.Accessor$JDKSupport.exportTo:(Ljava/lang/ClassLoader;Ljava/lang/String;)V
         7: .line 365
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl java.lang.String java.util.function.Supplier java.util.Iterator java.lang.ClassLoader java.lang.Class
      StackMap stack:
            aload 5 /* c */
         8: areturn
        end local 5 // java.lang.Class c
         9: .line 366
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl java.lang.String java.util.function.Supplier java.util.Iterator java.lang.ClassLoader
      StackMap stack: java.lang.ClassNotFoundException
            pop
        end local 4 // java.lang.ClassLoader loader
        end local 2 // java.util.function.Supplier supplier
        10: .line 352
      StackMap locals: com.oracle.truffle.polyglot.PolyglotImpl java.lang.String top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        11: .line 370
            aconst_null
            areturn
        end local 1 // java.lang.String className
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0   12     1  className  Ljava/lang/String;
            2   10     2   supplier  Ljava/util/function/Supplier<Ljava/lang/ClassLoader;>;
            3   10     4     loader  Ljava/lang/ClassLoader;
            5    9     5          c  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
           Name  Flags
      className  

  public java.util.Collection<org.graalvm.polyglot.Engine> findActiveEngines();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 375
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineImpl.findActiveEngines:()Ljava/util/Collection;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
    Signature: ()Ljava/util/Collection<Lorg/graalvm/polyglot/Engine;>;

  public <S, T>  newTargetTypeMapping(java.lang.Class<S>, java.lang.Class<T>, java.util.function.Predicate<S>, java.util.function.Function<S, T>, org.graalvm.polyglot.HostAccess$TargetMappingPrecedence);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Predicate;Ljava/util/function/Function;Lorg/graalvm/polyglot/HostAccess$TargetMappingPrecedence;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
        start local 1 // java.lang.Class sourceType
        start local 2 // java.lang.Class targetType
        start local 3 // java.util.function.Predicate acceptsValue
        start local 4 // java.util.function.Function convertValue
        start local 5 // org.graalvm.polyglot.HostAccess$TargetMappingPrecedence precedence
         0: .line 381
            new com.oracle.truffle.polyglot.PolyglotTargetMapping
            dup
            aload 1 /* sourceType */
            aload 2 /* targetType */
            aload 3 /* acceptsValue */
            aload 4 /* convertValue */
            aload 5 /* precedence */
            invokespecial com.oracle.truffle.polyglot.PolyglotTargetMapping.<init>:(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Predicate;Ljava/util/function/Function;Lorg/graalvm/polyglot/HostAccess$TargetMappingPrecedence;)V
         1: areturn
         2: .line 382
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
         3: .line 383
            aload 0 /* this */
            aload 6 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 6 // java.lang.Throwable t
        end local 5 // org.graalvm.polyglot.HostAccess$TargetMappingPrecedence precedence
        end local 4 // java.util.function.Function convertValue
        end local 3 // java.util.function.Predicate acceptsValue
        end local 2 // java.lang.Class targetType
        end local 1 // java.lang.Class sourceType
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0    4     1    sourceType  Ljava/lang/Class<TS;>;
            0    4     2    targetType  Ljava/lang/Class<TT;>;
            0    4     3  acceptsValue  Ljava/util/function/Predicate<TS;>;
            0    4     4  convertValue  Ljava/util/function/Function<TS;TT;>;
            0    4     5    precedence  Lorg/graalvm/polyglot/HostAccess$TargetMappingPrecedence;
            3    4     6             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: <S:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/Class<TS;>;Ljava/lang/Class<TT;>;Ljava/util/function/Predicate<TS;>;Ljava/util/function/Function<TS;TT;>;Lorg/graalvm/polyglot/HostAccess$TargetMappingPrecedence;)Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      sourceType    
      targetType    
      acceptsValue  
      convertValue  
      precedence    

  org.graalvm.polyglot.Value asValue(com.oracle.truffle.polyglot.PolyglotContextImpl, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
        start local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl currentContext
        start local 2 // java.lang.Object hostValue
         0: .line 388
            aload 1 /* currentContext */
            ifnull 2
         1: .line 390
            aload 1 /* currentContext */
            aload 2 /* hostValue */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            areturn
         2: .line 395
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 3
            aload 2 /* hostValue */
            instanceof org.graalvm.polyglot.Value
            ifeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 396
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* guestValue */
        start local 3 // java.lang.Object guestValue
         4: .line 397
            aload 2 /* hostValue */
            ifnonnull 6
         5: .line 398
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.hostNull:Lorg/graalvm/polyglot/Value;
            areturn
         6: .line 399
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* hostValue */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.isGuestPrimitive:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 400
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 2 /* hostValue */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.primitiveValues:Ljava/util/Map;
            aload 2 /* hostValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newValue:(Ljava/lang/Object;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;)Lorg/graalvm/polyglot/Value;
            areturn
         8: .line 401
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            invokestatic com.oracle.truffle.polyglot.HostWrapper.isInstance:(Ljava/lang/Object;)Z
            ifeq 14
         9: .line 402
            aload 2 /* hostValue */
            invokestatic com.oracle.truffle.polyglot.HostWrapper.asInstance:(Ljava/lang/Object;)Lcom/oracle/truffle/polyglot/HostWrapper;
            astore 4 /* hostWrapper */
        start local 4 // com.oracle.truffle.polyglot.HostWrapper hostWrapper
        10: .line 404
            aload 4 /* hostWrapper */
            invokeinterface com.oracle.truffle.polyglot.HostWrapper.getLanguageContext:()Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            astore 5 /* languageContext */
        start local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        11: .line 405
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 12
            aload 5 /* languageContext */
            ifnonnull 12
            new java.lang.AssertionError
            dup
            ldc "HostWrappers must be guaranteed to have non-null language context."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        12: .line 406
      StackMap locals: com.oracle.truffle.polyglot.HostWrapper com.oracle.truffle.polyglot.PolyglotLanguageContext
      StackMap stack:
            aload 4 /* hostWrapper */
            invokeinterface com.oracle.truffle.polyglot.HostWrapper.getGuestObject:()Ljava/lang/Object;
            astore 3 /* guestValue */
        13: .line 407
            aload 5 /* languageContext */
            aload 3 /* guestValue */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            areturn
        end local 5 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        end local 4 // com.oracle.truffle.polyglot.HostWrapper hostWrapper
        14: .line 414
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            instanceof com.oracle.truffle.api.interop.TruffleObject
            ifeq 17
        15: .line 415
            aload 2 /* hostValue */
            astore 3 /* guestValue */
        16: .line 416
            goto 24
      StackMap locals:
      StackMap stack:
        17: aload 2 /* hostValue */
            instanceof org.graalvm.polyglot.proxy.Proxy
            ifeq 20
        18: .line 417
            aload 2 /* hostValue */
            checkcast org.graalvm.polyglot.proxy.Proxy
            invokestatic com.oracle.truffle.polyglot.PolyglotProxy.toProxyGuestObject:(Lorg/graalvm/polyglot/proxy/Proxy;)Lcom/oracle/truffle/api/interop/TruffleObject;
            astore 3 /* guestValue */
        19: .line 418
            goto 24
      StackMap locals:
      StackMap stack:
        20: aload 2 /* hostValue */
            instanceof java.lang.Class
            ifeq 23
        21: .line 419
            aload 2 /* hostValue */
            checkcast java.lang.Class
            aconst_null
            invokestatic com.oracle.truffle.polyglot.HostObject.forClass:(Ljava/lang/Class;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
            astore 3 /* guestValue */
        22: .line 420
            goto 24
        23: .line 421
      StackMap locals:
      StackMap stack:
            aload 2 /* hostValue */
            aconst_null
            invokestatic com.oracle.truffle.polyglot.HostObject.forObject:(Ljava/lang/Object;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;)Lcom/oracle/truffle/polyglot/HostObject;
            astore 3 /* guestValue */
        24: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 3 /* guestValue */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.disconnectedHostValue:Lcom/oracle/truffle/polyglot/PolyglotValue;
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newValue:(Ljava/lang/Object;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractValueImpl;)Lorg/graalvm/polyglot/Value;
            areturn
        end local 3 // java.lang.Object guestValue
        end local 2 // java.lang.Object hostValue
        end local 1 // com.oracle.truffle.polyglot.PolyglotContextImpl currentContext
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0             this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0   25     1   currentContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   25     2        hostValue  Ljava/lang/Object;
            4   25     3       guestValue  Ljava/lang/Object;
           10   14     4      hostWrapper  Lcom/oracle/truffle/polyglot/HostWrapper;
           11   14     5  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
    MethodParameters:
                Name  Flags
      currentContext  
      hostValue       

  public org.graalvm.polyglot.Value asValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
        start local 1 // java.lang.Object hostValue
         0: .line 431
            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 432
            aload 0 /* this */
            aload 2 /* currentContext */
            aload 1 /* hostValue */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.asValue:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
         2: areturn
        end local 2 // com.oracle.truffle.polyglot.PolyglotContextImpl currentContext
         3: .line 433
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 434
            aload 0 /* this */
            aload 2 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.guestToHostException:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Object hostValue
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0    5     1       hostValue  Ljava/lang/Object;
            1    3     2  currentContext  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            4    5     2               t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Throwable
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
           Name  Flags
      hostValue  

  public org.graalvm.polyglot.io.FileSystem newDefaultFileSystem();
    descriptor: ()Lorg/graalvm/polyglot/io/FileSystem;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
         0: .line 440
            invokestatic com.oracle.truffle.polyglot.FileSystems.newDefaultFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
            areturn
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/PolyglotImpl;

  org.graalvm.polyglot.Source getOrCreatePolyglotSource(com.oracle.truffle.api.source.Source);
    descriptor: (Lcom/oracle/truffle/api/source/Source;)Lorg/graalvm/polyglot/Source;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
        start local 1 // com.oracle.truffle.api.source.Source source
         0: .line 444
            getstatic com.oracle.truffle.polyglot.EngineAccessor.SOURCE:Lcom/oracle/truffle/api/impl/Accessor$SourceSupport;
            aload 1 /* source */
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.PolyglotImpl.sourceConstructor:Ljava/util/function/Function;
            invokevirtual com.oracle.truffle.api.impl.Accessor$SourceSupport.getOrCreatePolyglotSource:(Lcom/oracle/truffle/api/source/Source;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Source;
            areturn
        end local 1 // com.oracle.truffle.api.source.Source source
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0    1     1  source  Lcom/oracle/truffle/api/source/Source;
    MethodParameters:
        Name  Flags
      source  

  org.graalvm.polyglot.SourceSection getPolyglotSourceSection(com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)Lorg/graalvm/polyglot/SourceSection;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
        start local 1 // com.oracle.truffle.api.source.SourceSection sourceSection
         0: .line 448
            aload 1 /* sourceSection */
            ifnonnull 2
         1: .line 449
            aconst_null
            areturn
         2: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getOrCreatePolyglotSource:(Lcom/oracle/truffle/api/source/Source;)Lorg/graalvm/polyglot/Source;
            astore 2 /* polyglotSource */
        start local 2 // org.graalvm.polyglot.Source polyglotSource
         3: .line 452
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 2 /* polyglotSource */
            aload 1 /* sourceSection */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newSourceSection:(Lorg/graalvm/polyglot/Source;Ljava/lang/Object;)Lorg/graalvm/polyglot/SourceSection;
            areturn
        end local 2 // org.graalvm.polyglot.Source polyglotSource
        end local 1 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0    4     1   sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            3    4     2  polyglotSource  Lorg/graalvm/polyglot/Source;
    MethodParameters:
               Name  Flags
      sourceSection  

  static <T extends java.lang.Throwable> java.lang.RuntimeException hostToGuestException(com.oracle.truffle.polyglot.PolyglotLanguageContext, T);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
        start local 1 // java.lang.Throwable e
         0: .line 456
            aload 0 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 1 /* e */
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.hostToGuestException:(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            areturn
        end local 1 // java.lang.Throwable e
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0    1     1        e  TT;
    Signature: <T:Ljava/lang/Throwable;>(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;TT;)Ljava/lang/RuntimeException;
    MethodParameters:
         Name  Flags
      context  
      e        

  static <T extends java.lang.Throwable> java.lang.RuntimeException hostToGuestException(com.oracle.truffle.polyglot.PolyglotContextImpl, T);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotContextImpl;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        start local 1 // java.lang.Throwable e
         0: .line 467
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* e */
            instanceof com.oracle.truffle.polyglot.PolyglotEngineException
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "engine exceptions not expected here"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 468
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 2
            aload 1 /* e */
            instanceof com.oracle.truffle.polyglot.HostException
            ifeq 2
            new java.lang.AssertionError
            dup
            ldc "host exceptions not expected here"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 470
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof java.lang.ThreadDeath
            ifeq 4
         3: .line 471
            aload 1 /* e */
            checkcast java.lang.ThreadDeath
            athrow
         4: .line 472
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof org.graalvm.polyglot.PolyglotException
            ifeq 14
         5: .line 473
            aload 1 /* e */
            checkcast org.graalvm.polyglot.PolyglotException
            astore 2 /* polyglot */
        start local 2 // org.graalvm.polyglot.PolyglotException polyglot
         6: .line 474
            aload 0 /* context */
            ifnull 14
         7: .line 475
            aload 0 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 2 /* polyglot */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getImpl:(Lorg/graalvm/polyglot/PolyglotException;)Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractExceptionImpl;
            checkcast com.oracle.truffle.polyglot.PolyglotExceptionImpl
            astore 3 /* exceptionImpl */
        start local 3 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
         8: .line 476
            aload 3 /* exceptionImpl */
            getfield com.oracle.truffle.polyglot.PolyglotExceptionImpl.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            aload 0 /* context */
            if_acmpeq 9
            aload 3 /* exceptionImpl */
            getfield com.oracle.truffle.polyglot.PolyglotExceptionImpl.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            ifnull 9
            aload 3 /* exceptionImpl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotExceptionImpl.isHostException:()Z
            ifeq 14
         9: .line 480
      StackMap locals: org.graalvm.polyglot.PolyglotException com.oracle.truffle.polyglot.PolyglotExceptionImpl
      StackMap stack:
            aload 0 /* context */
            invokevirtual com.oracle.truffle.polyglot.PolyglotContextImpl.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            aload 2 /* polyglot */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.getImpl:(Lorg/graalvm/polyglot/PolyglotException;)Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractExceptionImpl;
            checkcast com.oracle.truffle.polyglot.PolyglotExceptionImpl
            getfield com.oracle.truffle.polyglot.PolyglotExceptionImpl.exception:Ljava/lang/Throwable;
            astore 4 /* original */
        start local 4 // java.lang.Throwable original
        10: .line 481
            aload 4 /* original */
            instanceof java.lang.RuntimeException
            ifeq 12
        11: .line 482
            aload 4 /* original */
            checkcast java.lang.RuntimeException
            athrow
        12: .line 483
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4 /* original */
            instanceof java.lang.Error
            ifeq 14
        13: .line 484
            aload 4 /* original */
            checkcast java.lang.Error
            athrow
        end local 4 // java.lang.Throwable original
        end local 3 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
        end local 2 // org.graalvm.polyglot.PolyglotException polyglot
        14: .line 491
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.polyglot.HostException
            dup
            aload 1 /* e */
            invokespecial com.oracle.truffle.polyglot.HostException.<init>:(Ljava/lang/Throwable;)V
        15: areturn
        16: .line 492
      StackMap locals:
      StackMap stack: java.lang.StackOverflowError
            pop
        17: .line 496
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.STACKOVERFLOW_ERROR:Lcom/oracle/truffle/polyglot/HostException;
            areturn
        end local 1 // java.lang.Throwable e
        end local 0 // com.oracle.truffle.polyglot.PolyglotContextImpl context
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0        context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            0   18     1              e  TT;
            6   14     2       polyglot  Lorg/graalvm/polyglot/PolyglotException;
            8   14     3  exceptionImpl  Lcom/oracle/truffle/polyglot/PolyglotExceptionImpl;
           10   14     4       original  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          14    15      16  Class java.lang.StackOverflowError
    Signature: <T:Ljava/lang/Throwable;>(Lcom/oracle/truffle/polyglot/PolyglotContextImpl;TT;)Ljava/lang/RuntimeException;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      context  
      e        

  static <T extends java.lang.Throwable> java.lang.RuntimeException engineToLanguageException(java.lang.Throwable) throws T;
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 508
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* t */
            instanceof org.graalvm.polyglot.PolyglotException
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "polyglot exceptions must not be thrown to the guest language"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 509
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.rethrow:(Ljava/lang/Throwable;)V
         2: .line 510
            aload 0 /* t */
            athrow
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Ljava/lang/Throwable;
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Throwable;>(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;^TT;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      t     

  static <T extends java.lang.Throwable> java.lang.RuntimeException engineToInstrumentException(java.lang.Throwable) throws T;
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 521
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* t */
            instanceof org.graalvm.polyglot.PolyglotException
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "polyglot exceptions must not be thrown to the guest instrument"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.rethrow:(Ljava/lang/Throwable;)V
         2: .line 523
            aload 0 /* t */
            athrow
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Ljava/lang/Throwable;
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Throwable;>(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;^TT;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      t     

  static <T extends java.lang.Throwable> org.graalvm.polyglot.PolyglotException guestToHostException(com.oracle.truffle.polyglot.PolyglotLanguageContext, T, boolean);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;Z)Lorg/graalvm/polyglot/PolyglotException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=6, args_size=3
        start local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
        start local 1 // java.lang.Throwable e
        start local 2 // boolean entered
         0: .line 533
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* e */
            instanceof org.graalvm.polyglot.PolyglotException
            ifeq 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "polyglot exceptions must not be thrown to the host: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 534
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.rethrow:(Ljava/lang/Throwable;)V
         2: .line 536
            aload 0 /* languageContext */
            ifnonnull 4
         3: .line 537
            new java.lang.RuntimeException
            dup
            aload 1 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
         4: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* languageContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            astore 3 /* context */
        start local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
         5: .line 542
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.closed:Z
            ifne 6
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.invalid:Z
            ifeq 8
         6: .line 543
      StackMap locals: com.oracle.truffle.polyglot.PolyglotContextImpl
      StackMap stack:
            new com.oracle.truffle.polyglot.PolyglotExceptionImpl
            dup
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* e */
            invokespecial com.oracle.truffle.polyglot.PolyglotExceptionImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)V
            astore 4 /* exceptionImpl */
        start local 4 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
         7: .line 544
            goto 15
        end local 4 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
         8: .line 546
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.polyglot.PolyglotExceptionImpl
            dup
            aload 0 /* languageContext */
            invokevirtual com.oracle.truffle.polyglot.PolyglotLanguageContext.getImpl:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            aload 0 /* languageContext */
            getfield com.oracle.truffle.polyglot.PolyglotLanguageContext.context:Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
         9: .line 547
            aload 0 /* languageContext */
            aload 1 /* e */
            iconst_1
            iload 2 /* entered */
        10: .line 546
            invokespecial com.oracle.truffle.polyglot.PolyglotExceptionImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;Ljava/lang/Throwable;ZZ)V
            astore 4 /* exceptionImpl */
        start local 4 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
        11: .line 548
            goto 15
        end local 4 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 5 /* t */
        start local 5 // java.lang.Throwable t
        13: .line 553
            aload 1 /* e */
            aload 5 /* t */
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        14: .line 554
            new com.oracle.truffle.polyglot.PolyglotExceptionImpl
            dup
            aload 3 /* context */
            getfield com.oracle.truffle.polyglot.PolyglotContextImpl.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            aload 1 /* e */
            invokespecial com.oracle.truffle.polyglot.PolyglotExceptionImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)V
            astore 4 /* exceptionImpl */
        end local 5 // java.lang.Throwable t
        start local 4 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
        15: .line 557
      StackMap locals: com.oracle.truffle.polyglot.PolyglotExceptionImpl
      StackMap stack:
            invokestatic com.oracle.truffle.polyglot.PolyglotImpl.getInstance:()Lcom/oracle/truffle/polyglot/PolyglotImpl;
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            astore 5 /* access */
        start local 5 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess access
        16: .line 558
            aload 5 /* access */
            aload 4 /* exceptionImpl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotExceptionImpl.getMessage:()Ljava/lang/String;
            aload 4 /* exceptionImpl */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newLanguageException:(Ljava/lang/String;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractExceptionImpl;)Lorg/graalvm/polyglot/PolyglotException;
            areturn
        end local 5 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess access
        end local 4 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
        end local 3 // com.oracle.truffle.polyglot.PolyglotContextImpl context
        end local 2 // boolean entered
        end local 1 // java.lang.Throwable e
        end local 0 // com.oracle.truffle.polyglot.PolyglotLanguageContext languageContext
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0  languageContext  Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;
            0   17     1                e  TT;
            0   17     2          entered  Z
            5   17     3          context  Lcom/oracle/truffle/polyglot/PolyglotContextImpl;
            7    8     4    exceptionImpl  Lcom/oracle/truffle/polyglot/PolyglotExceptionImpl;
           11   12     4    exceptionImpl  Lcom/oracle/truffle/polyglot/PolyglotExceptionImpl;
           15   17     4    exceptionImpl  Lcom/oracle/truffle/polyglot/PolyglotExceptionImpl;
           13   15     5                t  Ljava/lang/Throwable;
           16   17     5           access  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
      Exception table:
        from    to  target  type
           8    11      12  Class java.lang.Throwable
    Signature: <T:Ljava/lang/Throwable;>(Lcom/oracle/truffle/polyglot/PolyglotLanguageContext;TT;Z)Lorg/graalvm/polyglot/PolyglotException;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                 Name  Flags
      languageContext  
      e                
      entered          

  static <T extends java.lang.Throwable> org.graalvm.polyglot.PolyglotException guestToHostException(com.oracle.truffle.polyglot.PolyglotEngineImpl, T);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
        start local 1 // java.lang.Throwable e
         0: .line 562
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* e */
            instanceof org.graalvm.polyglot.PolyglotException
            ifeq 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "polyglot exceptions must not be thrown to the host: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 563
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.rethrow:(Ljava/lang/Throwable;)V
         2: .line 565
            aload 0 /* engine */
            invokevirtual com.oracle.truffle.polyglot.PolyglotEngineImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            astore 2 /* access */
        start local 2 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess access
         3: .line 566
            new com.oracle.truffle.polyglot.PolyglotExceptionImpl
            dup
            aload 0 /* engine */
            aload 1 /* e */
            invokespecial com.oracle.truffle.polyglot.PolyglotExceptionImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;Ljava/lang/Throwable;)V
            astore 3 /* exceptionImpl */
        start local 3 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
         4: .line 567
            aload 2 /* access */
            aload 3 /* exceptionImpl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotExceptionImpl.getMessage:()Ljava/lang/String;
            aload 3 /* exceptionImpl */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newLanguageException:(Ljava/lang/String;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractExceptionImpl;)Lorg/graalvm/polyglot/PolyglotException;
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
        end local 2 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess access
        end local 1 // java.lang.Throwable e
        end local 0 // com.oracle.truffle.polyglot.PolyglotEngineImpl engine
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0         engine  Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
            0    5     1              e  TT;
            3    5     2         access  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            4    5     3  exceptionImpl  Lcom/oracle/truffle/polyglot/PolyglotExceptionImpl;
    Signature: <T:Ljava/lang/Throwable;>(Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;TT;)Lorg/graalvm/polyglot/PolyglotException;
    MethodParameters:
        Name  Flags
      engine  
      e       

  static <T extends java.lang.Throwable> org.graalvm.polyglot.PolyglotException guestToHostException(com.oracle.truffle.polyglot.PolyglotImpl, T);
    descriptor: (Lcom/oracle/truffle/polyglot/PolyglotImpl;Ljava/lang/Throwable;)Lorg/graalvm/polyglot/PolyglotException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.polyglot.PolyglotImpl polyglot
        start local 1 // java.lang.Throwable e
         0: .line 578
            getstatic com.oracle.truffle.polyglot.PolyglotImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* e */
            instanceof org.graalvm.polyglot.PolyglotException
            ifeq 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "polyglot exceptions must not be thrown to the host: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 579
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokestatic com.oracle.truffle.polyglot.PolyglotEngineException.rethrow:(Ljava/lang/Throwable;)V
         2: .line 581
            aload 0 /* polyglot */
            invokevirtual com.oracle.truffle.polyglot.PolyglotImpl.getAPIAccess:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            astore 2 /* access */
        start local 2 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess access
         3: .line 582
            new com.oracle.truffle.polyglot.PolyglotExceptionImpl
            dup
            aload 0 /* polyglot */
            aload 1 /* e */
            invokespecial com.oracle.truffle.polyglot.PolyglotExceptionImpl.<init>:(Lcom/oracle/truffle/polyglot/PolyglotImpl;Ljava/lang/Throwable;)V
            astore 3 /* exceptionImpl */
        start local 3 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
         4: .line 583
            aload 2 /* access */
            aload 3 /* exceptionImpl */
            invokevirtual com.oracle.truffle.polyglot.PolyglotExceptionImpl.getMessage:()Ljava/lang/String;
            aload 3 /* exceptionImpl */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess.newLanguageException:(Ljava/lang/String;Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractExceptionImpl;)Lorg/graalvm/polyglot/PolyglotException;
            areturn
        end local 3 // com.oracle.truffle.polyglot.PolyglotExceptionImpl exceptionImpl
        end local 2 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess access
        end local 1 // java.lang.Throwable e
        end local 0 // com.oracle.truffle.polyglot.PolyglotImpl polyglot
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0       polyglot  Lcom/oracle/truffle/polyglot/PolyglotImpl;
            0    5     1              e  TT;
            3    5     2         access  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            4    5     3  exceptionImpl  Lcom/oracle/truffle/polyglot/PolyglotExceptionImpl;
    Signature: <T:Ljava/lang/Throwable;>(Lcom/oracle/truffle/polyglot/PolyglotImpl;TT;)Lorg/graalvm/polyglot/PolyglotException;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      polyglot  
      e         

  static boolean isGuestPrimitive(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object receiver
         0: .line 587
            aload 0 /* receiver */
            instanceof java.lang.Integer
            ifne 6
            aload 0 /* receiver */
            instanceof java.lang.Double
            ifne 6
         1: .line 588
            aload 0 /* receiver */
            instanceof java.lang.Long
            ifne 6
            aload 0 /* receiver */
            instanceof java.lang.Float
            ifne 6
         2: .line 589
            aload 0 /* receiver */
            instanceof java.lang.Boolean
            ifne 6
            aload 0 /* receiver */
            instanceof java.lang.Character
            ifne 6
         3: .line 590
            aload 0 /* receiver */
            instanceof java.lang.Byte
            ifne 6
            aload 0 /* receiver */
            instanceof java.lang.Short
            ifne 6
         4: .line 591
            aload 0 /* receiver */
            instanceof java.lang.String
            ifne 6
         5: .line 587
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_1
            ireturn
        end local 0 // java.lang.Object receiver
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  receiver  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      receiver  
}
SourceFile: "PolyglotImpl.java"
NestMembers:
  com.oracle.truffle.polyglot.PolyglotImpl$1  com.oracle.truffle.polyglot.PolyglotImpl$2  com.oracle.truffle.polyglot.PolyglotImpl$VMObject
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  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 RuntimeSupport = com.oracle.truffle.api.impl.Accessor$RuntimeSupport of com.oracle.truffle.api.impl.Accessor
  public abstract SourceSupport = com.oracle.truffle.api.impl.Accessor$SourceSupport of com.oracle.truffle.api.impl.Accessor
  abstract AbstractClassLoaderSupplier = com.oracle.truffle.polyglot.EngineAccessor$AbstractClassLoaderSupplier of com.oracle.truffle.polyglot.EngineAccessor
  final LogConfig = com.oracle.truffle.polyglot.PolyglotEngineImpl$LogConfig of com.oracle.truffle.polyglot.PolyglotEngineImpl
  com.oracle.truffle.polyglot.PolyglotImpl$1
  com.oracle.truffle.polyglot.PolyglotImpl$2
  abstract VMObject = com.oracle.truffle.polyglot.PolyglotImpl$VMObject of com.oracle.truffle.polyglot.PolyglotImpl
  final EngineLoggerProvider = com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider of com.oracle.truffle.polyglot.PolyglotLoggers
  final HostValue = com.oracle.truffle.polyglot.PolyglotValue$HostValue of com.oracle.truffle.polyglot.PolyglotValue
  public final TargetMappingPrecedence = org.graalvm.polyglot.HostAccess$TargetMappingPrecedence of org.graalvm.polyglot.HostAccess
  public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractEngineImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractExceptionImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractExceptionImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractManagementImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractManagementImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractSourceImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractSourceSectionImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceSectionImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractValueImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl