public final class com.oracle.truffle.trufflenode.Options
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.trufflenode.Options
  super_class: java.lang.Object
{
  private final org.graalvm.polyglot.Context$Builder contextBuilder;
    descriptor: Lorg/graalvm/polyglot/Context$Builder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean exposeGC;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(org.graalvm.polyglot.Context$Builder, boolean);
    descriptor: (Lorg/graalvm/polyglot/Context$Builder;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.trufflenode.Options this
        start local 1 // org.graalvm.polyglot.Context$Builder contextBuilder
        start local 2 // boolean exposeGC
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 0 /* this */
            aload 1 /* contextBuilder */
            putfield com.oracle.truffle.trufflenode.Options.contextBuilder:Lorg/graalvm/polyglot/Context$Builder;
         2: .line 66
            aload 0 /* this */
            iload 2 /* exposeGC */
            putfield com.oracle.truffle.trufflenode.Options.exposeGC:Z
         3: .line 67
            return
        end local 2 // boolean exposeGC
        end local 1 // org.graalvm.polyglot.Context$Builder contextBuilder
        end local 0 // com.oracle.truffle.trufflenode.Options this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/oracle/truffle/trufflenode/Options;
            0    4     1  contextBuilder  Lorg/graalvm/polyglot/Context$Builder;
            0    4     2        exposeGC  Z
    MethodParameters:
                Name  Flags
      contextBuilder  
      exposeGC        

  public static com.oracle.truffle.trufflenode.Options parseArguments(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Lcom/oracle/truffle/trufflenode/Options;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 71
            getstatic com.oracle.truffle.js.runtime.JSConfig.SubstrateVM:Z
            ifeq 3
         1: .line 72
            new com.oracle.truffle.trufflenode.Options$OptionsParser
            dup
            invokespecial com.oracle.truffle.trufflenode.Options$OptionsParser.<init>:()V
            astore 1 /* parser */
        start local 1 // java.util.function.Function parser
         2: .line 73
            goto 5
        end local 1 // java.util.function.Function parser
         3: .line 76
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.trufflenode.Options.loadOptionsParser:()Ljava/lang/Class;
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
         4: .line 77
            aload 2 /* clazz */
            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 java.util.function.Function
            astore 1 /* parser */
        end local 2 // java.lang.Class clazz
        start local 1 // java.util.function.Function parser
         5: .line 79
      StackMap locals: java.util.function.Function
      StackMap stack:
            aload 1 /* parser */
            aload 0 /* args */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 2 /* result */
        start local 2 // java.lang.Object[] result
         6: .line 80
            new com.oracle.truffle.trufflenode.Options
            dup
            aload 2 /* result */
            iconst_0
            aaload
            checkcast org.graalvm.polyglot.Context$Builder
            aload 2 /* result */
            iconst_1
            aaload
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokespecial com.oracle.truffle.trufflenode.Options.<init>:(Lorg/graalvm/polyglot/Context$Builder;Z)V
            areturn
        end local 2 // java.lang.Object[] result
        end local 1 // java.util.function.Function parser
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    args  [Ljava/lang/String;
            2    3     1  parser  Ljava/util/function/Function<[Ljava/lang/String;[Ljava/lang/Object;>;
            5    7     1  parser  Ljava/util/function/Function<[Ljava/lang/String;[Ljava/lang/Object;>;
            4    5     2   clazz  Ljava/lang/Class<Ljava/util/function/Function<[Ljava/lang/String;[Ljava/lang/Object;>;>;
            6    7     2  result  [Ljava/lang/Object;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      args  

  private static java.lang.Class<java.util.function.Function<java.lang.String[], java.lang.Object[]>> loadOptionsParser();
    descriptor: ()Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=0
         0: .line 85
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* javaHome */
        start local 0 // java.lang.String javaHome
         1: .line 86
            ldc "TRUFFLENODE_JAR_PATH"
            invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* truffleNodePath */
        start local 1 // java.lang.String truffleNodePath
         2: .line 87
            aload 1 /* truffleNodePath */
            ifnonnull 4
         3: .line 88
            new java.lang.StringBuilder
            dup
            aload 0 /* javaHome */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/languages/js/trufflenode.jar"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* truffleNodePath */
         4: .line 90
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            ldc "LAUNCHER_COMMON_JAR_PATH"
            invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* launcherCommonPath */
        start local 2 // java.lang.String launcherCommonPath
         5: .line 91
            aload 2 /* launcherCommonPath */
            ifnonnull 7
         6: .line 92
            new java.lang.StringBuilder
            dup
            aload 0 /* javaHome */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/lib/graalvm/launcher-common.jar"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* launcherCommonPath */
         7: .line 94
      StackMap locals: java.lang.String
      StackMap stack:
            new java.net.URL
            dup
            new java.lang.StringBuilder
            dup
            ldc "file:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* truffleNodePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 3 /* truffleNodeURL */
        start local 3 // java.net.URL truffleNodeURL
         8: .line 95
            new java.net.URL
            dup
            new java.lang.StringBuilder
            dup
            ldc "file:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* launcherCommonPath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 4 /* launcherCommonURL */
        start local 4 // java.net.URL launcherCommonURL
         9: .line 96
            new java.net.URLClassLoader
            dup
            iconst_2
            anewarray java.net.URL
            dup
            iconst_0
            aload 4 /* launcherCommonURL */
            aastore
            dup
            iconst_1
            aload 3 /* truffleNodeURL */
            aastore
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
            astore 5 /* loader */
        start local 5 // java.lang.ClassLoader loader
        10: .line 97
            aload 5 /* loader */
            ldc "com.oracle.truffle.trufflenode.Options$OptionsParser"
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
        end local 5 // java.lang.ClassLoader loader
        end local 4 // java.net.URL launcherCommonURL
        end local 3 // java.net.URL truffleNodeURL
        end local 2 // java.lang.String launcherCommonPath
        end local 1 // java.lang.String truffleNodePath
        end local 0 // java.lang.String javaHome
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            1   11     0            javaHome  Ljava/lang/String;
            2   11     1     truffleNodePath  Ljava/lang/String;
            5   11     2  launcherCommonPath  Ljava/lang/String;
            8   11     3      truffleNodeURL  Ljava/net/URL;
            9   11     4   launcherCommonURL  Ljava/net/URL;
           10   11     5              loader  Ljava/lang/ClassLoader;
    Exceptions:
      throws java.lang.Exception
    Signature: ()Ljava/lang/Class<Ljava/util/function/Function<[Ljava/lang/String;[Ljava/lang/Object;>;>;

  public org.graalvm.polyglot.Context$Builder getContextBuilder();
    descriptor: ()Lorg/graalvm/polyglot/Context$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.Options this
         0: .line 101
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.Options.contextBuilder:Lorg/graalvm/polyglot/Context$Builder;
            areturn
        end local 0 // com.oracle.truffle.trufflenode.Options this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/Options;

  public boolean isGCExposed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.trufflenode.Options this
         0: .line 105
            aload 0 /* this */
            getfield com.oracle.truffle.trufflenode.Options.exposeGC:Z
            ireturn
        end local 0 // com.oracle.truffle.trufflenode.Options this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/trufflenode/Options;
}
SourceFile: "Options.java"
NestMembers:
  com.oracle.truffle.trufflenode.Options$OptionsParser
InnerClasses:
  public OptionsParser = com.oracle.truffle.trufflenode.Options$OptionsParser of com.oracle.truffle.trufflenode.Options
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context