final class com.oracle.truffle.js.builtins.commonjs.CommonJSResolution
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.builtins.commonjs.CommonJSResolution
  super_class: java.lang.Object
{
  private static final java.lang.String JS_EXT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ".js"

  private static final java.lang.String JSON_EXT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ".json"

  private static final java.lang.String NODE_EXT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ".node"

  public static final java.lang.String INDEX_JS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "index.js"

  private static final java.lang.String INDEX_JSON;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "index.json"

  private static final java.lang.String INDEX_NODE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "index.node"

  public static final java.lang.String PACKAGE_JSON;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "package.json"

  private static final java.lang.String NODE_MODULES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "node_modules"

  public static final java.lang.String PACKAGE_JSON_MAIN_PROPERTY_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "main"

  public static final java.lang.String PACKAGE_JSON_TYPE_PROPERTY_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "type"

  public static final java.lang.String PACKAGE_JSON_MODULE_VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "module"

  private static final java.lang.String[] CORE_MODULES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 83
            bipush 34
            anewarray java.lang.String
            dup
            iconst_0
            ldc "assert"
            aastore
            dup
            iconst_1
            ldc "async_hooks"
            aastore
            dup
            iconst_2
            ldc "buffer"
            aastore
            dup
            iconst_3
            ldc "child_process"
            aastore
            dup
            iconst_4
            ldc "cluster"
            aastore
            dup
            iconst_5
            ldc "crypto"
            aastore
            dup
            bipush 6
         1: .line 84
            ldc "dgram"
            aastore
            dup
            bipush 7
            ldc "dns"
            aastore
            dup
            bipush 8
            ldc "domain"
            aastore
            dup
            bipush 9
            ldc "events"
            aastore
            dup
            bipush 10
            ldc "fs"
            aastore
            dup
            bipush 11
            ldc "http"
            aastore
            dup
            bipush 12
            ldc "http2"
            aastore
            dup
            bipush 13
            ldc "https"
            aastore
            dup
            bipush 14
            ldc "module"
            aastore
            dup
            bipush 15
            ldc "net"
            aastore
            dup
            bipush 16
         2: .line 85
            ldc "os"
            aastore
            dup
            bipush 17
            ldc "path"
            aastore
            dup
            bipush 18
            ldc "perf_hooks"
            aastore
            dup
            bipush 19
            ldc "punycode"
            aastore
            dup
            bipush 20
            ldc "querystring"
            aastore
            dup
            bipush 21
            ldc "readline"
            aastore
            dup
            bipush 22
            ldc "repl"
            aastore
            dup
            bipush 23
         3: .line 86
            ldc "stream"
            aastore
            dup
            bipush 24
            ldc "string_decoder"
            aastore
            dup
            bipush 25
            ldc "tls"
            aastore
            dup
            bipush 26
            ldc "trace_events"
            aastore
            dup
            bipush 27
            ldc "tty"
            aastore
            dup
            bipush 28
            ldc "url"
            aastore
            dup
            bipush 29
            ldc "util"
            aastore
            dup
            bipush 30
         4: .line 87
            ldc "v8"
            aastore
            dup
            bipush 31
            ldc "vm"
            aastore
            dup
            bipush 32
            ldc "worker_threads"
            aastore
            dup
            bipush 33
            ldc "zlib"
            aastore
         5: .line 83
            putstatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.CORE_MODULES:[Ljava/lang/String;
         6: .line 87
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.builtins.commonjs.CommonJSResolution this
         0: .line 89
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 90
            return
        end local 0 // com.oracle.truffle.js.builtins.commonjs.CommonJSResolution this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/builtins/commonjs/CommonJSResolution;

  static boolean isCoreModule(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String moduleIdentifier
         0: .line 93
            getstatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.CORE_MODULES:[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aload 0 /* moduleIdentifier */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.String moduleIdentifier
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  moduleIdentifier  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      moduleIdentifier  

  static java.lang.String getCurrentFileNameFromStack();
    descriptor: ()Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=0
         0: .line 97
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            invokeinterface com.oracle.truffle.api.TruffleRuntime.getCallerFrame:()Lcom/oracle/truffle/api/frame/FrameInstance;
            astore 0 /* callerFrame */
        start local 0 // com.oracle.truffle.api.frame.FrameInstance callerFrame
         1: .line 98
            aload 0 /* callerFrame */
            ifnull 12
         2: .line 99
            aconst_null
            astore 1 /* encapsulatingSourceSection */
        start local 1 // com.oracle.truffle.api.source.SourceSection encapsulatingSourceSection
         3: .line 100
            aload 0 /* callerFrame */
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
            ifnull 6
         4: .line 101
            aload 0 /* callerFrame */
            invokeinterface com.oracle.truffle.api.frame.FrameInstance.getCallNode:()Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 1 /* encapsulatingSourceSection */
         5: .line 102
            goto 9
         6: .line 103
      StackMap locals: com.oracle.truffle.api.frame.FrameInstance com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aload 0 /* callerFrame */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.getFrameRootNode:(Lcom/oracle/truffle/api/frame/FrameInstance;)Lcom/oracle/truffle/api/nodes/RootNode;
            astore 2 /* frameRootNode */
        start local 2 // com.oracle.truffle.api.nodes.RootNode frameRootNode
         7: .line 104
            aload 2 /* frameRootNode */
            ifnull 9
         8: .line 105
            aload 2 /* frameRootNode */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 1 /* encapsulatingSourceSection */
        end local 2 // com.oracle.truffle.api.nodes.RootNode frameRootNode
         9: .line 108
      StackMap locals:
      StackMap stack:
            aload 1 /* encapsulatingSourceSection */
            ifnull 12
            aload 1 /* encapsulatingSourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            ifnull 12
        10: .line 109
            aload 1 /* encapsulatingSourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 2 /* source */
        start local 2 // com.oracle.truffle.api.source.Source source
        11: .line 110
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getPath:()Ljava/lang/String;
            areturn
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // com.oracle.truffle.api.source.SourceSection encapsulatingSourceSection
        12: .line 113
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.api.frame.FrameInstance callerFrame
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            1   13     0                 callerFrame  Lcom/oracle/truffle/api/frame/FrameInstance;
            3   12     1  encapsulatingSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            7    9     2               frameRootNode  Lcom/oracle/truffle/api/nodes/RootNode;
           11   12     2                      source  Lcom/oracle/truffle/api/source/Source;

  static com.oracle.truffle.api.TruffleFile resolve(com.oracle.truffle.js.runtime.JSContext, java.lang.String, com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Ljava/lang/String;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // java.lang.String moduleIdentifier
        start local 2 // com.oracle.truffle.api.TruffleFile entryPath
         0: .line 146
            ldc ""
            aload 1 /* moduleIdentifier */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 147
            aconst_null
            areturn
         2: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            astore 3 /* env */
        start local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
         3: .line 151
            aload 2 /* entryPath */
            astore 4 /* currentWorkingPath */
        start local 4 // com.oracle.truffle.api.TruffleFile currentWorkingPath
         4: .line 152
            aload 1 /* moduleIdentifier */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 6
         5: .line 153
            aload 3 /* env */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.getFileSystemRootPath:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleFile;
            astore 4 /* currentWorkingPath */
         6: .line 156
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 1 /* moduleIdentifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.isPathFileName:(Ljava/lang/String;)Z
            ifeq 10
         7: .line 157
            aload 0 /* context */
            aload 3 /* env */
            aload 3 /* env */
            aload 4 /* currentWorkingPath */
            aload 1 /* moduleIdentifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.joinPaths:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadAsFileOrDirectory:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
            astore 5 /* module */
        start local 5 // com.oracle.truffle.api.TruffleFile module
         8: .line 160
            aload 5 /* module */
            ifnull 10
         9: .line 161
            aload 5 /* module */
            areturn
        end local 5 // com.oracle.truffle.api.TruffleFile module
        10: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 3 /* env */
            aload 1 /* moduleIdentifier */
            aload 4 /* currentWorkingPath */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadNodeModulesOrSelfReference:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/String;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 4 // com.oracle.truffle.api.TruffleFile currentWorkingPath
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 2 // com.oracle.truffle.api.TruffleFile entryPath
        end local 1 // java.lang.String moduleIdentifier
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0             context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   11     1    moduleIdentifier  Ljava/lang/String;
            0   11     2           entryPath  Lcom/oracle/truffle/api/TruffleFile;
            3   11     3                 env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            4   11     4  currentWorkingPath  Lcom/oracle/truffle/api/TruffleFile;
            8   10     5              module  Lcom/oracle/truffle/api/TruffleFile;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                  Name  Flags
      context           
      moduleIdentifier  
      entryPath         

  private static com.oracle.truffle.api.TruffleFile loadNodeModulesOrSelfReference(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.TruffleLanguage$Env, java.lang.String, com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/String;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // java.lang.String moduleIdentifier
        start local 3 // com.oracle.truffle.api.TruffleFile startFolder
         0: .line 178
            aload 3 /* startFolder */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.getNodeModulesPaths:(Lcom/oracle/truffle/api/TruffleFile;)Ljava/util/List;
            astore 4 /* nodeModulesPaths */
        start local 4 // java.util.List nodeModulesPaths
         1: .line 179
            aload 4 /* nodeModulesPaths */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.TruffleLanguage$Env java.lang.String com.oracle.truffle.api.TruffleFile java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleFile
            astore 5 /* s */
        start local 5 // com.oracle.truffle.api.TruffleFile s
         3: .line 180
            aload 0 /* cx */
            aload 1 /* env */
            aload 1 /* env */
            aload 5 /* s */
            aload 2 /* moduleIdentifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.joinPaths:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadAsFileOrDirectory:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
            astore 7 /* module */
        start local 7 // com.oracle.truffle.api.TruffleFile module
         4: .line 181
            aload 7 /* module */
            ifnull 6
         5: .line 182
            aload 7 /* module */
            areturn
        end local 7 // com.oracle.truffle.api.TruffleFile module
        end local 5 // com.oracle.truffle.api.TruffleFile s
         6: .line 179
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 185
            aconst_null
            areturn
        end local 4 // java.util.List nodeModulesPaths
        end local 3 // com.oracle.truffle.api.TruffleFile startFolder
        end local 2 // java.lang.String moduleIdentifier
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0                cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    8     1               env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    8     2  moduleIdentifier  Ljava/lang/String;
            0    8     3       startFolder  Lcom/oracle/truffle/api/TruffleFile;
            1    8     4  nodeModulesPaths  Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile;>;
            3    6     5                 s  Lcom/oracle/truffle/api/TruffleFile;
            4    6     7            module  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
                  Name  Flags
      cx                
      env               
      moduleIdentifier  
      startFolder       

  public static com.oracle.truffle.api.TruffleFile loadIndex(com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 1 // com.oracle.truffle.api.TruffleFile modulePath
         0: .line 198
            aload 0 /* env */
            aload 1 /* modulePath */
            ldc "index.js"
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.joinPaths:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 2 /* indexJs */
        start local 2 // com.oracle.truffle.api.TruffleFile indexJs
         1: .line 199
            aload 2 /* indexJs */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 3
         2: .line 200
            aload 2 /* indexJs */
            areturn
         3: .line 202
      StackMap locals: com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 0 /* env */
            aload 1 /* modulePath */
            ldc "index.json"
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.joinPaths:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 3 /* indexJson */
        start local 3 // com.oracle.truffle.api.TruffleFile indexJson
         4: .line 203
            aload 3 /* indexJson */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 6
         5: .line 204
            aload 3 /* indexJson */
            areturn
         6: .line 205
      StackMap locals: com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 0 /* env */
            aload 1 /* modulePath */
            ldc "index.node"
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.joinPaths:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 8
         7: .line 207
            aconst_null
            areturn
         8: .line 209
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // com.oracle.truffle.api.TruffleFile indexJson
        end local 2 // com.oracle.truffle.api.TruffleFile indexJs
        end local 1 // com.oracle.truffle.api.TruffleFile modulePath
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0         env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    9     1  modulePath  Lcom/oracle/truffle/api/TruffleFile;
            1    9     2     indexJs  Lcom/oracle/truffle/api/TruffleFile;
            4    9     3   indexJson  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
            Name  Flags
      env         
      modulePath  

  static com.oracle.truffle.api.TruffleFile loadAsFile(com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 1 // com.oracle.truffle.api.TruffleFile modulePath
         0: .line 223
            aload 1 /* modulePath */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 2
         1: .line 224
            aload 1 /* modulePath */
            areturn
         2: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* env */
            new java.lang.StringBuilder
            dup
            aload 1 /* modulePath */
            invokevirtual com.oracle.truffle.api.TruffleFile.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".js"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 2 /* moduleJs */
        start local 2 // com.oracle.truffle.api.TruffleFile moduleJs
         3: .line 227
            aload 2 /* moduleJs */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 5
         4: .line 228
            aload 2 /* moduleJs */
            areturn
         5: .line 230
      StackMap locals: com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 0 /* env */
            new java.lang.StringBuilder
            dup
            aload 1 /* modulePath */
            invokevirtual com.oracle.truffle.api.TruffleFile.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".json"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 3 /* moduleJson */
        start local 3 // com.oracle.truffle.api.TruffleFile moduleJson
         6: .line 231
            aload 3 /* moduleJson */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 8
         7: .line 232
            aload 3 /* moduleJson */
            areturn
         8: .line 234
      StackMap locals: com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 0 /* env */
            new java.lang.StringBuilder
            dup
            aload 1 /* modulePath */
            invokevirtual com.oracle.truffle.api.TruffleFile.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".node"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 10
         9: .line 236
            aconst_null
            areturn
        10: .line 238
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // com.oracle.truffle.api.TruffleFile moduleJson
        end local 2 // com.oracle.truffle.api.TruffleFile moduleJs
        end local 1 // com.oracle.truffle.api.TruffleFile modulePath
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0         env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0   11     1  modulePath  Lcom/oracle/truffle/api/TruffleFile;
            3   11     2    moduleJs  Lcom/oracle/truffle/api/TruffleFile;
            6   11     3  moduleJson  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
            Name  Flags
      env         
      modulePath  

  public static java.util.List<com.oracle.truffle.api.TruffleFile> getNodeModulesPaths(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleFile path
         0: .line 242
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* list */
        start local 1 // java.util.List list
         1: .line 243
            aload 0 /* path */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.getAllParentPaths:(Lcom/oracle/truffle/api/TruffleFile;)Ljava/util/List;
            astore 2 /* paths */
        start local 2 // java.util.List paths
         2: .line 244
            aload 2 /* paths */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: com.oracle.truffle.api.TruffleFile java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleFile
            astore 3 /* p */
        start local 3 // com.oracle.truffle.api.TruffleFile p
         4: .line 245
            aload 3 /* p */
            ldc "node_modules"
            invokevirtual com.oracle.truffle.api.TruffleFile.endsWith:(Ljava/lang/String;)Z
            ifeq 7
         5: .line 246
            aload 1 /* list */
            aload 3 /* p */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 247
            goto 9
         7: .line 248
      StackMap locals: com.oracle.truffle.api.TruffleFile java.util.List java.util.List com.oracle.truffle.api.TruffleFile java.util.Iterator
      StackMap stack:
            aload 3 /* p */
            ldc "node_modules"
            invokevirtual com.oracle.truffle.api.TruffleFile.resolve:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 5 /* truffleFile */
        start local 5 // com.oracle.truffle.api.TruffleFile truffleFile
         8: .line 249
            aload 1 /* list */
            aload 5 /* truffleFile */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // com.oracle.truffle.api.TruffleFile truffleFile
        end local 3 // com.oracle.truffle.api.TruffleFile p
         9: .line 244
      StackMap locals: com.oracle.truffle.api.TruffleFile java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        10: .line 252
            aload 1 /* list */
            areturn
        end local 2 // java.util.List paths
        end local 1 // java.util.List list
        end local 0 // com.oracle.truffle.api.TruffleFile path
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         path  Lcom/oracle/truffle/api/TruffleFile;
            1   11     1         list  Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile;>;
            2   11     2        paths  Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile;>;
            4    9     3            p  Lcom/oracle/truffle/api/TruffleFile;
            8    9     5  truffleFile  Lcom/oracle/truffle/api/TruffleFile;
    Signature: (Lcom/oracle/truffle/api/TruffleFile;)Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile;>;
    MethodParameters:
      Name  Flags
      path  

  private static com.oracle.truffle.api.TruffleFile loadAsFileOrDirectory(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // com.oracle.truffle.api.TruffleFile modulePath
         0: .line 256
            aload 1 /* env */
            aload 2 /* modulePath */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadAsFile:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
            astore 3 /* maybeFile */
        start local 3 // com.oracle.truffle.api.TruffleFile maybeFile
         1: .line 257
            aload 3 /* maybeFile */
            ifnonnull 3
         2: .line 258
            aload 0 /* cx */
            aload 1 /* env */
            aload 2 /* modulePath */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadAsDirectory:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
         3: .line 260
      StackMap locals: com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 3 /* maybeFile */
            areturn
        end local 3 // com.oracle.truffle.api.TruffleFile maybeFile
        end local 2 // com.oracle.truffle.api.TruffleFile modulePath
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0          cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0    4     1         env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    4     2  modulePath  Lcom/oracle/truffle/api/TruffleFile;
            1    4     3   maybeFile  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
            Name  Flags
      cx          
      env         
      modulePath  

  private static java.util.List<com.oracle.truffle.api.TruffleFile> getAllParentPaths(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleFile from
         0: .line 265
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* paths */
        start local 1 // java.util.List paths
         1: .line 266
            aload 0 /* from */
            astore 2 /* p */
        start local 2 // com.oracle.truffle.api.TruffleFile p
         2: .line 267
            goto 5
         3: .line 268
      StackMap locals: java.util.List com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 1 /* paths */
            aload 2 /* p */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 269
            aload 2 /* p */
            invokevirtual com.oracle.truffle.api.TruffleFile.getParent:()Lcom/oracle/truffle/api/TruffleFile;
            astore 2 /* p */
         5: .line 267
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            ifnonnull 3
         6: .line 271
            aload 1 /* paths */
            areturn
        end local 2 // com.oracle.truffle.api.TruffleFile p
        end local 1 // java.util.List paths
        end local 0 // com.oracle.truffle.api.TruffleFile from
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   from  Lcom/oracle/truffle/api/TruffleFile;
            1    7     1  paths  Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile;>;
            2    7     2      p  Lcom/oracle/truffle/api/TruffleFile;
    Signature: (Lcom/oracle/truffle/api/TruffleFile;)Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile;>;
    MethodParameters:
      Name  Flags
      from  

  private static com.oracle.truffle.api.TruffleFile loadAsDirectory(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // com.oracle.truffle.js.runtime.JSContext cx
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 2 // com.oracle.truffle.api.TruffleFile modulePath
         0: .line 275
            aload 1 /* env */
            aload 2 /* modulePath */
            ldc "package.json"
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.joinPaths:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 3 /* packageJson */
        start local 3 // com.oracle.truffle.api.TruffleFile packageJson
         1: .line 276
            aload 3 /* packageJson */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 12
         2: .line 277
            aload 3 /* packageJson */
            aload 0 /* cx */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadJsonObject:(Lcom/oracle/truffle/api/TruffleFile;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
            astore 4 /* jsonObj */
        start local 4 // com.oracle.truffle.api.object.DynamicObject jsonObj
         3: .line 278
            aload 4 /* jsonObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 13
         4: .line 279
            aload 4 /* jsonObj */
            ldc "main"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 5 /* main */
        start local 5 // java.lang.Object main
         5: .line 280
            aload 5 /* main */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 281
            aload 1 /* env */
            aload 2 /* modulePath */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadIndex:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
         7: .line 283
      StackMap locals: com.oracle.truffle.api.TruffleFile com.oracle.truffle.api.object.DynamicObject java.lang.Object
      StackMap stack:
            aload 1 /* env */
            aload 2 /* modulePath */
            aload 5 /* main */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.safeToString:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.joinPaths:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 6 /* module */
        start local 6 // com.oracle.truffle.api.TruffleFile module
         8: .line 284
            aload 1 /* env */
            aload 6 /* module */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadAsFile:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
            astore 7 /* asFile */
        start local 7 // com.oracle.truffle.api.TruffleFile asFile
         9: .line 285
            aload 7 /* asFile */
            ifnull 11
        10: .line 286
            aload 7 /* asFile */
            areturn
        11: .line 288
      StackMap locals: com.oracle.truffle.api.TruffleFile com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 1 /* env */
            aload 6 /* module */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadIndex:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 7 // com.oracle.truffle.api.TruffleFile asFile
        end local 6 // com.oracle.truffle.api.TruffleFile module
        end local 5 // java.lang.Object main
        end local 4 // com.oracle.truffle.api.object.DynamicObject jsonObj
        12: .line 292
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleFile com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 1 /* env */
            aload 2 /* modulePath */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.loadIndex:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
        13: .line 294
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // com.oracle.truffle.api.TruffleFile packageJson
        end local 2 // com.oracle.truffle.api.TruffleFile modulePath
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.js.runtime.JSContext cx
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0           cx  Lcom/oracle/truffle/js/runtime/JSContext;
            0   14     1          env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0   14     2   modulePath  Lcom/oracle/truffle/api/TruffleFile;
            1   14     3  packageJson  Lcom/oracle/truffle/api/TruffleFile;
            3   12     4      jsonObj  Lcom/oracle/truffle/api/object/DynamicObject;
            5   12     5         main  Ljava/lang/Object;
            8   12     6       module  Lcom/oracle/truffle/api/TruffleFile;
            9   12     7       asFile  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
            Name  Flags
      cx          
      env         
      modulePath  

  public static com.oracle.truffle.api.object.DynamicObject loadJsonObject(com.oracle.truffle.api.TruffleFile, com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/api/object/DynamicObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleFile jsonFile
        start local 1 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 299
            aload 0 /* jsonFile */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 14
         1: .line 300
            aconst_null
            astore 2 /* source */
        start local 2 // com.oracle.truffle.api.source.Source source
         2: .line 301
            aload 1 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getRealm:()Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 3 /* realm */
        start local 3 // com.oracle.truffle.js.runtime.JSRealm realm
         3: .line 302
            aload 0 /* jsonFile */
            invokevirtual com.oracle.truffle.api.TruffleFile.toString:()Ljava/lang/String;
            aload 3 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokestatic com.oracle.truffle.js.builtins.GlobalBuiltins.resolveRelativeFilePath:(Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleFile;
            astore 4 /* file */
        start local 4 // com.oracle.truffle.api.TruffleFile file
         4: .line 303
            aload 4 /* file */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokevirtual com.oracle.truffle.api.TruffleFile.isRegularFile:([Ljava/nio/file/LinkOption;)Z
            ifeq 6
         5: .line 304
            aload 4 /* file */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.sourceFromTruffleFile:(Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/source/Source;
            astore 2 /* source */
         6: .line 306
      StackMap locals: com.oracle.truffle.api.source.Source com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 2 /* source */
            ifnonnull 8
         7: .line 307
            aconst_null
            areturn
         8: .line 309
      StackMap locals:
      StackMap stack:
            aload 3 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getJsonParseFunctionObject:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 5 /* parse */
        start local 5 // com.oracle.truffle.api.object.DynamicObject parse
         9: .line 310
            aload 2 /* source */
            invokevirtual com.oracle.truffle.api.source.Source.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 6 /* jsonString */
        start local 6 // java.lang.String jsonString
        10: .line 311
            aload 5 /* parse */
            aload 5 /* parse */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* jsonString */
            aastore
            invokestatic com.oracle.truffle.js.runtime.JSArguments.create:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* jsonObj */
        start local 7 // java.lang.Object jsonObj
        11: .line 312
            aload 7 /* jsonObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 313
            aload 7 /* jsonObj */
            checkcast com.oracle.truffle.api.object.DynamicObject
        13: areturn
        end local 7 // java.lang.Object jsonObj
        end local 6 // java.lang.String jsonString
        end local 5 // com.oracle.truffle.api.object.DynamicObject parse
        end local 4 // com.oracle.truffle.api.TruffleFile file
        end local 3 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 2 // com.oracle.truffle.api.source.Source source
        14: .line 316
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        15: .line 317
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            astore 2 /* e */
        start local 2 // java.lang.SecurityException e
        16: .line 318
            aload 2 /* e */
            invokestatic com.oracle.truffle.js.runtime.Errors.createErrorFromException:(Ljava/lang/Throwable;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 2 // java.lang.SecurityException e
        end local 1 // com.oracle.truffle.js.runtime.JSContext context
        end local 0 // com.oracle.truffle.api.TruffleFile jsonFile
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0    jsonFile  Lcom/oracle/truffle/api/TruffleFile;
            0   17     1     context  Lcom/oracle/truffle/js/runtime/JSContext;
            2   14     2      source  Lcom/oracle/truffle/api/source/Source;
            3   14     3       realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            4   14     4        file  Lcom/oracle/truffle/api/TruffleFile;
            9   14     5       parse  Lcom/oracle/truffle/api/object/DynamicObject;
           10   14     6  jsonString  Ljava/lang/String;
           11   14     7     jsonObj  Ljava/lang/Object;
           16   17     2           e  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           0     7      15  Class java.lang.SecurityException
           8    13      15  Class java.lang.SecurityException
    MethodParameters:
          Name  Flags
      jsonFile  
      context   

  private static com.oracle.truffle.api.source.Source sourceFromTruffleFile(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/source/Source;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleFile file
         0: .line 324
            ldc "js"
            aload 0 /* file */
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Lcom/oracle/truffle/api/TruffleFile;)Lcom/oracle/truffle/api/source/Source$SourceBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$SourceBuilder.build:()Lcom/oracle/truffle/api/source/Source;
         1: areturn
         2: .line 325
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         3: .line 326
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.api.TruffleFile file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  file  Lcom/oracle/truffle/api/TruffleFile;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
           0     1       2  Class java.lang.SecurityException
    MethodParameters:
      Name  Flags
      file  

  public static boolean fileExists(com.oracle.truffle.api.TruffleFile);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleFile modulePath
         0: .line 331
            aload 0 /* modulePath */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokevirtual com.oracle.truffle.api.TruffleFile.exists:([Ljava/nio/file/LinkOption;)Z
            ifeq 1
            aload 0 /* modulePath */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokevirtual com.oracle.truffle.api.TruffleFile.isRegularFile:([Ljava/nio/file/LinkOption;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.oracle.truffle.api.TruffleFile modulePath
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  modulePath  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
            Name  Flags
      modulePath  

  private static boolean isPathFileName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String moduleIdentifier
         0: .line 335
            aload 0 /* moduleIdentifier */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 1
            aload 0 /* moduleIdentifier */
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 1
            aload 0 /* moduleIdentifier */
            ldc "../"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.lang.String moduleIdentifier
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0  moduleIdentifier  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      moduleIdentifier  

  public static com.oracle.truffle.api.TruffleFile joinPaths(com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.TruffleFile, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
        start local 1 // com.oracle.truffle.api.TruffleFile p1
        start local 2 // java.lang.String p2
         0: .line 339
            aload 1 /* p1 */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 340
            aload 0 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getFileNameSeparator:()Ljava/lang/String;
            astore 3 /* pathSeparator */
        start local 3 // java.lang.String pathSeparator
         2: .line 341
            aload 1 /* p1 */
            invokevirtual com.oracle.truffle.api.TruffleFile.normalize:()Lcom/oracle/truffle/api/TruffleFile;
            invokevirtual com.oracle.truffle.api.TruffleFile.toString:()Ljava/lang/String;
            astore 4 /* pathName */
        start local 4 // java.lang.String pathName
         3: .line 342
            aload 0 /* env */
            new java.lang.StringBuilder
            dup
            aload 4 /* pathName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* pathSeparator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* p2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 5 /* truffleFile */
        start local 5 // com.oracle.truffle.api.TruffleFile truffleFile
         4: .line 343
            aload 5 /* truffleFile */
            invokevirtual com.oracle.truffle.api.TruffleFile.normalize:()Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 5 // com.oracle.truffle.api.TruffleFile truffleFile
        end local 4 // java.lang.String pathName
        end local 3 // java.lang.String pathSeparator
        end local 2 // java.lang.String p2
        end local 1 // com.oracle.truffle.api.TruffleFile p1
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0            env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0    5     1             p1  Lcom/oracle/truffle/api/TruffleFile;
            0    5     2             p2  Ljava/lang/String;
            2    5     3  pathSeparator  Ljava/lang/String;
            3    5     4       pathName  Ljava/lang/String;
            4    5     5    truffleFile  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
      Name  Flags
      env   
      p1    
      p2    

  private static com.oracle.truffle.api.TruffleFile getFileSystemRootPath(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 347
            aload 0 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getCurrentWorkingDirectory:()Lcom/oracle/truffle/api/TruffleFile;
            astore 1 /* root */
        start local 1 // com.oracle.truffle.api.TruffleFile root
         1: .line 348
            aload 1 /* root */
            astore 2 /* last */
        start local 2 // com.oracle.truffle.api.TruffleFile last
         2: .line 349
            goto 5
         3: .line 350
      StackMap locals: com.oracle.truffle.api.TruffleFile com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 1 /* root */
            astore 2 /* last */
         4: .line 351
            aload 1 /* root */
            invokevirtual com.oracle.truffle.api.TruffleFile.getParent:()Lcom/oracle/truffle/api/TruffleFile;
            astore 1 /* root */
         5: .line 349
      StackMap locals:
      StackMap stack:
            aload 1 /* root */
            ifnonnull 3
         6: .line 353
            aload 2 /* last */
            areturn
        end local 2 // com.oracle.truffle.api.TruffleFile last
        end local 1 // com.oracle.truffle.api.TruffleFile root
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1    7     1  root  Lcom/oracle/truffle/api/TruffleFile;
            2    7     2  last  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
      Name  Flags
      env   
}
SourceFile: "CommonJSResolution.java"
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  public SourceBuilder = com.oracle.truffle.api.source.Source$SourceBuilder of com.oracle.truffle.api.source.Source