class com.oracle.truffle.api.Truffle$1 implements java.security.PrivilegedAction<com.oracle.truffle.api.TruffleRuntime>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.api.Truffle$1
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.Truffle$1 this
         0: .line 107
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.Truffle$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/Truffle$1;

  public com.oracle.truffle.api.TruffleRuntime run();
    descriptor: ()Lcom/oracle/truffle/api/TruffleRuntime;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.Truffle$1 this
         0: .line 109
            ldc "truffle.TruffleRuntime"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* runtimeClassName */
        start local 1 // java.lang.String runtimeClassName
         1: .line 110
            aload 1 /* runtimeClassName */
            ifnull 8
            aload 1 /* runtimeClassName */
            invokevirtual java.lang.String.length:()I
            ifle 8
         2: .line 112
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* cl */
        start local 2 // java.lang.ClassLoader cl
         3: .line 113
            aload 1 /* runtimeClassName */
            iconst_0
            aload 2 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* runtimeClass */
        start local 3 // java.lang.Class runtimeClass
         4: .line 114
            aload 3 /* runtimeClass */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleRuntime
         5: areturn
        end local 3 // java.lang.Class runtimeClass
        end local 2 // java.lang.ClassLoader cl
         6: .line 115
      StackMap locals: com.oracle.truffle.api.Truffle$1 java.lang.String
      StackMap stack: java.lang.Throwable
            astore 2 /* e */
        start local 2 // java.lang.Throwable e
         7: .line 117
            new java.lang.InternalError
            dup
            aload 2 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Throwable e
         8: .line 121
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.TruffleAccessor.jdkServicesAccessor:()Lcom/oracle/truffle/api/impl/Accessor$JDKSupport;
            ldc Lcom/oracle/truffle/api/TruffleRuntimeAccess;
            invokevirtual com.oracle.truffle.api.impl.Accessor$JDKSupport.getTruffleRuntimeLoaders:(Ljava/lang/Class;)Ljava/util/List;
            astore 2 /* loaders */
        start local 2 // java.util.List loaders
         9: .line 122
            aload 2 /* loaders */
            invokestatic com.oracle.truffle.api.Truffle.selectTruffleRuntimeAccess:(Ljava/util/List;)Lcom/oracle/truffle/api/TruffleRuntimeAccess;
            astore 3 /* access */
        start local 3 // com.oracle.truffle.api.TruffleRuntimeAccess access
        10: .line 124
            aload 3 /* access */
            ifnull 13
        11: .line 125
            invokestatic com.oracle.truffle.api.TruffleAccessor.jdkServicesAccessor:()Lcom/oracle/truffle/api/impl/Accessor$JDKSupport;
            aload 3 /* access */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.oracle.truffle.api.impl.Accessor$JDKSupport.exportTo:(Ljava/lang/Class;)V
        12: .line 126
            aload 3 /* access */
            invokeinterface com.oracle.truffle.api.TruffleRuntimeAccess.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            areturn
        13: .line 128
      StackMap locals: java.util.List com.oracle.truffle.api.TruffleRuntimeAccess
      StackMap stack:
            new com.oracle.truffle.api.impl.DefaultTruffleRuntime
            dup
            invokespecial com.oracle.truffle.api.impl.DefaultTruffleRuntime.<init>:()V
            areturn
        end local 3 // com.oracle.truffle.api.TruffleRuntimeAccess access
        end local 2 // java.util.List loaders
        end local 1 // java.lang.String runtimeClassName
        end local 0 // com.oracle.truffle.api.Truffle$1 this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lcom/oracle/truffle/api/Truffle$1;
            1   14     1  runtimeClassName  Ljava/lang/String;
            3    6     2                cl  Ljava/lang/ClassLoader;
            4    6     3      runtimeClass  Ljava/lang/Class<*>;
            7    8     2                 e  Ljava/lang/Throwable;
            9   14     2           loaders  Ljava/util/List<Ljava/lang/Iterable<Lcom/oracle/truffle/api/TruffleRuntimeAccess;>;>;
           10   14     3            access  Lcom/oracle/truffle/api/TruffleRuntimeAccess;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.Throwable

  public java.lang.Object run();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.oracle.truffle.api.Truffle$1.run:()Lcom/oracle/truffle/api/TruffleRuntime;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/security/PrivilegedAction<Lcom/oracle/truffle/api/TruffleRuntime;>;
SourceFile: "Truffle.java"
EnclosingMethod: com.oracle.truffle.api.Truffle.initRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
NestHost: com.oracle.truffle.api.Truffle
InnerClasses:
  com.oracle.truffle.api.Truffle$1
  public final JDKSupport = com.oracle.truffle.api.impl.Accessor$JDKSupport of com.oracle.truffle.api.impl.Accessor