public final class com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader extends com.oracle.truffle.js.runtime.objects.DefaultESModuleLoader
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader
  super_class: com.oracle.truffle.js.runtime.objects.DefaultESModuleLoader
{
  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 81
            ldc Lcom/oracle/truffle/js/builtins/commonjs/NpmCompatibleESModuleLoader;
            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.js.builtins.commonjs.NpmCompatibleESModuleLoader.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader create(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Lcom/oracle/truffle/js/builtins/commonjs/NpmCompatibleESModuleLoader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 84
            new com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader
            dup
            aload 0 /* realm */
            invokespecial com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.<init>:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
            areturn
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
       Name  Flags
      realm  

  private void <init>(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 88
            aload 0 /* this */
            aload 1 /* realm */
            invokespecial com.oracle.truffle.js.runtime.objects.DefaultESModuleLoader.<init>:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
         1: .line 89
            return
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/builtins/commonjs/NpmCompatibleESModuleLoader;
            0    2     1  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
       Name  Flags
      realm  

  public com.oracle.truffle.js.runtime.objects.JSModuleRecord resolveImportedModule(com.oracle.truffle.js.runtime.objects.ScriptOrModule, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
        start local 1 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
        start local 2 // java.lang.String specifier
         0: .line 115
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 104
            ldc "IMPORT resolve "
            aastore
            dup
            iconst_1
            aload 2 /* specifier */
            aastore
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSRequireBuiltin.log:([Ljava/lang/Object;)V
         2: .line 105
            aload 2 /* specifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.isCoreModule:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 106
            aload 0 /* this */
            aload 2 /* specifier */
            invokevirtual com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.loadCoreModule:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
            areturn
         4: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* referencingModule */
            aload 2 /* specifier */
            invokevirtual com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.resolveURL:(Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 3 /* file */
        start local 3 // com.oracle.truffle.api.TruffleFile file
         5: .line 110
            aload 0 /* this */
            aload 2 /* specifier */
            aload 3 /* file */
            aload 3 /* file */
            invokevirtual com.oracle.truffle.api.TruffleFile.getPath:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.loadModuleFromUrl:(Ljava/lang/String;Lcom/oracle/truffle/api/TruffleFile;Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
         6: areturn
        end local 3 // com.oracle.truffle.api.TruffleFile file
         7: .line 111
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         8: iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 112
            ldc "IMPORT resolve "
            aastore
            dup
            iconst_1
            aload 2 /* specifier */
            aastore
            dup
            iconst_2
            ldc " FAILED "
            aastore
            dup
            iconst_3
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aastore
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSRequireBuiltin.log:([Ljava/lang/Object;)V
        10: .line 113
            aload 3 /* e */
            invokestatic com.oracle.truffle.js.runtime.Errors.createErrorFromException:(Ljava/lang/Throwable;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 3 // java.io.IOException e
        end local 2 // java.lang.String specifier
        end local 1 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
        end local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lcom/oracle/truffle/js/builtins/commonjs/NpmCompatibleESModuleLoader;
            0   11     1  referencingModule  Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;
            0   11     2          specifier  Ljava/lang/String;
            5    7     3               file  Lcom/oracle/truffle/api/TruffleFile;
            8   11     3                  e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     6       7  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                   Name  Flags
      referencingModule  
      specifier          

  private com.oracle.truffle.js.runtime.objects.JSModuleRecord loadCoreModule(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=2
        start local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
        start local 1 // java.lang.String specifier
         0: .line 158
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 118
            ldc "IMPORT resolve built-in "
            aastore
            dup
            iconst_1
            aload 1 /* specifier */
            aastore
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSRequireBuiltin.log:([Ljava/lang/Object;)V
         2: .line 119
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.moduleMap:Ljava/util/Map;
            aload 1 /* specifier */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.objects.JSModuleRecord
            astore 2 /* existingModule */
        start local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord existingModule
         3: .line 120
            aload 2 /* existingModule */
            ifnull 6
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 121
            ldc "IMPORT resolve built-in from cache "
            aastore
            dup
            iconst_1
            aload 1 /* specifier */
            aastore
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSRequireBuiltin.log:([Ljava/lang/Object;)V
         5: .line 122
            aload 2 /* existingModule */
            areturn
         6: .line 124
      StackMap locals: com.oracle.truffle.js.runtime.objects.JSModuleRecord
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getCommonJSRequireBuiltins:()Ljava/util/Map;
            aload 1 /* specifier */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* moduleReplacementName */
        start local 3 // java.lang.String moduleReplacementName
         7: .line 126
            aload 3 /* moduleReplacementName */
            ifnull 17
            aload 3 /* moduleReplacementName */
            ldc ".mjs"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 17
         8: .line 129
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getRequireCwd:()Ljava/lang/String;
            astore 5 /* cwdOption */
        start local 5 // java.lang.String cwdOption
         9: .line 130
            aload 5 /* cwdOption */
            ifnonnull 10
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getCurrentWorkingDirectory:()Lcom/oracle/truffle/api/TruffleFile;
            goto 11
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader java.lang.String com.oracle.truffle.js.runtime.objects.JSModuleRecord java.lang.String top java.lang.String
      StackMap stack:
        10: aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 5 /* cwdOption */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.TruffleFile
        11: astore 6 /* cwd */
        start local 6 // com.oracle.truffle.api.TruffleFile cwd
        12: .line 131
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 6 /* cwd */
            aload 3 /* moduleReplacementName */
            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 7 /* modulePath */
        start local 7 // com.oracle.truffle.api.TruffleFile modulePath
        13: .line 132
            ldc "js"
            aload 7 /* modulePath */
            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;
            astore 4 /* src */
        end local 7 // com.oracle.truffle.api.TruffleFile modulePath
        end local 6 // com.oracle.truffle.api.TruffleFile cwd
        end local 5 // java.lang.String cwdOption
        start local 4 // com.oracle.truffle.api.source.Source src
        14: .line 133
            goto 31
        end local 4 // com.oracle.truffle.api.source.Source src
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader java.lang.String com.oracle.truffle.js.runtime.objects.JSModuleRecord java.lang.String
      StackMap stack: java.lang.Exception
        15: astore 5 /* e */
        start local 5 // java.lang.Exception e
        16: .line 134
            new java.lang.StringBuilder
            dup
            ldc "Failed to load built-in ES module: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* specifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 5 // java.lang.Exception e
        17: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getCommonJSRequireFunctionObject:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 5 /* require */
        start local 5 // com.oracle.truffle.api.object.DynamicObject require
        18: .line 140
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            aload 5 /* require */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* specifier */
            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 6 /* maybeModule */
        start local 6 // java.lang.Object maybeModule
        19: .line 141
            aload 6 /* maybeModule */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 20
            aload 6 /* maybeModule */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifne 21
        20: .line 142
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader java.lang.String com.oracle.truffle.js.runtime.objects.JSModuleRecord java.lang.String top com.oracle.truffle.api.object.DynamicObject java.lang.Object
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Failed to load built-in ES module: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* specifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        21: .line 144
      StackMap locals:
      StackMap stack:
            aload 6 /* maybeModule */
            checkcast com.oracle.truffle.api.object.DynamicObject
            astore 7 /* module */
        start local 7 // com.oracle.truffle.api.object.DynamicObject module
        22: .line 146
            aload 7 /* module */
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.enumerableOwnNames:(Lcom/oracle/truffle/api/object/DynamicObject;)Ljava/util/List;
            astore 8 /* exportedValues */
        start local 8 // java.util.List exportedValues
        23: .line 147
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 9 /* moduleBody */
        start local 9 // java.lang.StringBuilder moduleBody
        24: .line 148
            aload 9 /* moduleBody */
            new java.lang.StringBuilder
            dup
            ldc "const builtinModule = require('"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* specifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "');\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 149
            aload 8 /* exportedValues */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 28
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader java.lang.String com.oracle.truffle.js.runtime.objects.JSModuleRecord java.lang.String top com.oracle.truffle.api.object.DynamicObject java.lang.Object com.oracle.truffle.api.object.DynamicObject java.util.List java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
        26: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* s */
        start local 10 // java.lang.String s
        27: .line 150
            aload 9 /* moduleBody */
            new java.lang.StringBuilder
            dup
            ldc "export const "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " = builtinModule."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ";\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 10 // java.lang.String s
        28: .line 149
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        29: .line 152
            aload 9 /* moduleBody */
            ldc "export default builtinModule;"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 153
            ldc "js"
            aload 9 /* moduleBody */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            aload 1 /* specifier */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-internal.mjs"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.api.source.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/oracle/truffle/api/source/Source$LiteralBuilder;
            invokevirtual com.oracle.truffle.api.source.Source$LiteralBuilder.build:()Lcom/oracle/truffle/api/source/Source;
            astore 4 /* src */
        end local 9 // java.lang.StringBuilder moduleBody
        end local 8 // java.util.List exportedValues
        end local 7 // com.oracle.truffle.api.object.DynamicObject module
        end local 6 // java.lang.Object maybeModule
        end local 5 // com.oracle.truffle.api.object.DynamicObject require
        start local 4 // com.oracle.truffle.api.source.Source src
        31: .line 155
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader java.lang.String com.oracle.truffle.js.runtime.objects.JSModuleRecord java.lang.String com.oracle.truffle.api.source.Source
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            aload 4 /* src */
            aload 0 /* this */
            invokeinterface com.oracle.truffle.js.runtime.Evaluator.parseModule:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/js/runtime/objects/JSModuleLoader;)Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
            astore 5 /* record */
        start local 5 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
        32: .line 156
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.moduleMap:Ljava/util/Map;
            aload 1 /* specifier */
            aload 5 /* record */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 157
            aload 5 /* record */
            areturn
        end local 5 // com.oracle.truffle.js.runtime.objects.JSModuleRecord record
        end local 4 // com.oracle.truffle.api.source.Source src
        end local 3 // java.lang.String moduleReplacementName
        end local 2 // com.oracle.truffle.js.runtime.objects.JSModuleRecord existingModule
        end local 1 // java.lang.String specifier
        end local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   34     0                   this  Lcom/oracle/truffle/js/builtins/commonjs/NpmCompatibleESModuleLoader;
            0   34     1              specifier  Ljava/lang/String;
            3   34     2         existingModule  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
            7   34     3  moduleReplacementName  Ljava/lang/String;
           14   15     4                    src  Lcom/oracle/truffle/api/source/Source;
           31   34     4                    src  Lcom/oracle/truffle/api/source/Source;
            9   14     5              cwdOption  Ljava/lang/String;
           12   14     6                    cwd  Lcom/oracle/truffle/api/TruffleFile;
           13   14     7             modulePath  Lcom/oracle/truffle/api/TruffleFile;
           16   17     5                      e  Ljava/lang/Exception;
           18   31     5                require  Lcom/oracle/truffle/api/object/DynamicObject;
           19   31     6            maybeModule  Ljava/lang/Object;
           22   31     7                 module  Lcom/oracle/truffle/api/object/DynamicObject;
           23   31     8         exportedValues  Ljava/util/List<Ljava/lang/String;>;
           24   31     9             moduleBody  Ljava/lang/StringBuilder;
           27   28    10                      s  Ljava/lang/String;
           32   34     5                 record  Lcom/oracle/truffle/js/runtime/objects/JSModuleRecord;
      Exception table:
        from    to  target  type
           8    14      15  Class java.io.IOException
           8    14      15  Class java.lang.SecurityException
    MethodParameters:
           Name  Flags
      specifier  

  private com.oracle.truffle.api.TruffleFile resolveURL(com.oracle.truffle.js.runtime.objects.ScriptOrModule, java.lang.String);
    descriptor: (Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
        start local 1 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
        start local 2 // java.lang.String specifier
         0: .line 161
            aload 2 /* specifier */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 162
            aload 2 /* specifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         2: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm: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 166
            aconst_null
            astore 4 /* resolvedUrl */
        start local 4 // com.oracle.truffle.api.TruffleFile resolvedUrl
         4: .line 168
            aload 0 /* this */
            aload 2 /* specifier */
            invokevirtual com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.asURI:(Ljava/lang/String;)Ljava/net/URI;
            astore 5 /* maybeUri */
        start local 5 // java.net.URI maybeUri
         5: .line 169
            aload 5 /* maybeUri */
            ifnull 10
         6: .line 171
            aload 3 /* env */
            aload 5 /* maybeUri */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/net/URI;)Lcom/oracle/truffle/api/TruffleFile;
            astore 4 /* resolvedUrl */
         7: .line 172
            goto 20
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader com.oracle.truffle.js.runtime.objects.ScriptOrModule java.lang.String com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleFile java.net.URI
      StackMap stack: java.nio.file.FileSystemNotFoundException
         8: astore 6 /* e */
        start local 6 // java.nio.file.FileSystemNotFoundException e
         9: .line 173
            new java.lang.StringBuilder
            dup
            ldc "Only file:// urls are supported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* e */
            invokevirtual java.nio.file.FileSystemNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.failMessage:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 6 // java.nio.file.FileSystemNotFoundException e
        10: .line 176
      StackMap locals:
      StackMap stack:
            aload 2 /* specifier */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 13
        11: .line 177
            aload 3 /* env */
            aload 2 /* specifier */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 4 /* resolvedUrl */
        12: .line 179
            goto 20
      StackMap locals:
      StackMap stack:
        13: aload 2 /* specifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.isRelativePathFileName:(Ljava/lang/String;)Z
            ifeq 19
        14: .line 181
            aload 0 /* this */
            aload 1 /* referencingModule */
            invokevirtual com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.getParentPath:(Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;)Lcom/oracle/truffle/api/TruffleFile;
            astore 6 /* fullPath */
        start local 6 // com.oracle.truffle.api.TruffleFile fullPath
        15: .line 182
            aload 6 /* fullPath */
            ifnonnull 17
        16: .line 183
            aload 2 /* specifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        17: .line 185
      StackMap locals: com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 3 /* env */
            aload 6 /* fullPath */
            aload 2 /* specifier */
            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 4 /* resolvedUrl */
        end local 6 // com.oracle.truffle.api.TruffleFile fullPath
        18: .line 187
            goto 20
        19: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* specifier */
            aload 1 /* referencingModule */
            invokevirtual com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.packageResolve:(Ljava/lang/String;Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;)Lcom/oracle/truffle/api/TruffleFile;
            astore 4 /* resolvedUrl */
        20: .line 192
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.$assertionsDisabled:Z
            ifne 21
            aload 4 /* resolvedUrl */
            ifnonnull 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 195
      StackMap locals:
      StackMap stack:
            aload 4 /* resolvedUrl */
            invokevirtual com.oracle.truffle.api.TruffleFile.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            ldc "%2F"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 22
            aload 4 /* resolvedUrl */
            invokevirtual com.oracle.truffle.api.TruffleFile.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            ldc "%5C"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 23
        22: .line 197
      StackMap locals:
      StackMap stack:
            aload 2 /* specifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        23: .line 201
      StackMap locals:
      StackMap stack:
            aload 4 /* resolvedUrl */
            ldc "/"
            invokevirtual com.oracle.truffle.api.TruffleFile.endsWith:(Ljava/lang/String;)Z
            ifne 25
            aload 4 /* resolvedUrl */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokevirtual com.oracle.truffle.api.TruffleFile.exists:([Ljava/nio/file/LinkOption;)Z
            ifne 25
        24: .line 203
            aload 2 /* specifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        25: .line 205
      StackMap locals:
      StackMap stack:
            aload 4 /* resolvedUrl */
            areturn
        end local 5 // java.net.URI maybeUri
        end local 4 // com.oracle.truffle.api.TruffleFile resolvedUrl
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 2 // java.lang.String specifier
        end local 1 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
        end local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   26     0               this  Lcom/oracle/truffle/js/builtins/commonjs/NpmCompatibleESModuleLoader;
            0   26     1  referencingModule  Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;
            0   26     2          specifier  Ljava/lang/String;
            3   26     3                env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            4   26     4        resolvedUrl  Lcom/oracle/truffle/api/TruffleFile;
            5   26     5           maybeUri  Ljava/net/URI;
            9   10     6                  e  Ljava/nio/file/FileSystemNotFoundException;
           15   18     6           fullPath  Lcom/oracle/truffle/api/TruffleFile;
      Exception table:
        from    to  target  type
           6     7       8  Class java.nio.file.FileSystemNotFoundException
    MethodParameters:
                   Name  Flags
      referencingModule  
      specifier          

  private com.oracle.truffle.api.TruffleFile getParentPath(com.oracle.truffle.js.runtime.objects.ScriptOrModule);
    descriptor: (Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
        start local 1 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
         0: .line 209
            aload 1 /* referencingModule */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* referencingModule */
            invokevirtual com.oracle.truffle.js.runtime.objects.ScriptOrModule.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getPath:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 2 /* refPath */
        start local 2 // java.lang.String refPath
         3: .line 210
            aload 2 /* refPath */
            ifnonnull 5
         4: .line 211
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getRequireCwd:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
         5: .line 213
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 2 /* refPath */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            invokevirtual com.oracle.truffle.api.TruffleFile.getParent:()Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 2 // java.lang.String refPath
        end local 1 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
        end local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/oracle/truffle/js/builtins/commonjs/NpmCompatibleESModuleLoader;
            0    6     1  referencingModule  Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;
            3    6     2            refPath  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      referencingModule  

  private com.oracle.truffle.api.TruffleFile getFullPath(com.oracle.truffle.js.runtime.objects.ScriptOrModule);
    descriptor: (Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
        start local 1 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
         0: .line 217
            aload 1 /* referencingModule */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* referencingModule */
            invokevirtual com.oracle.truffle.js.runtime.objects.ScriptOrModule.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getPath:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 2 /* refPath */
        start local 2 // java.lang.String refPath
         3: .line 218
            aload 2 /* refPath */
            ifnonnull 5
         4: .line 219
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.getRequireCwd:()Ljava/lang/String;
            astore 2 /* refPath */
         5: .line 221
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 2 /* refPath */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            areturn
        end local 2 // java.lang.String refPath
        end local 1 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
        end local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/oracle/truffle/js/builtins/commonjs/NpmCompatibleESModuleLoader;
            0    6     1  referencingModule  Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;
            3    6     2            refPath  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      referencingModule  

  private com.oracle.truffle.api.TruffleFile packageResolve(java.lang.String, com.oracle.truffle.js.runtime.objects.ScriptOrModule);
    descriptor: (Ljava/lang/String;Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;)Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=16, args_size=3
        start local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
        start local 1 // java.lang.String packageSpecifier
        start local 2 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
         0: .line 229
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm: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
         1: .line 230
            aconst_null
            astore 4 /* packageName */
        start local 4 // java.lang.String packageName
         2: .line 232
            aload 1 /* packageSpecifier */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 4
         3: .line 234
            aload 1 /* packageSpecifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         4: .line 237
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env java.lang.String
      StackMap stack:
            aload 1 /* packageSpecifier */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 7
         5: .line 238
            aload 1 /* packageSpecifier */
            astore 4 /* packageName */
         6: .line 239
            goto 8
         7: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* packageSpecifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
         8: .line 244
      StackMap locals:
      StackMap stack:
            aload 4 /* packageName */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpne 10
         9: .line 246
            aload 1 /* packageSpecifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        10: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* referencingModule */
            invokevirtual com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.getFullPath:(Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;)Lcom/oracle/truffle/api/TruffleFile;
            astore 5 /* mainPackageFolder */
        start local 5 // com.oracle.truffle.api.TruffleFile mainPackageFolder
        11: .line 250
            aload 5 /* mainPackageFolder */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.getNodeModulesPaths:(Lcom/oracle/truffle/api/TruffleFile;)Ljava/util/List;
            astore 6 /* nodeModulesPaths */
        start local 6 // java.util.List nodeModulesPaths
        12: .line 252
            aload 6 /* nodeModulesPaths */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 30
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader java.lang.String com.oracle.truffle.js.runtime.objects.ScriptOrModule com.oracle.truffle.api.TruffleLanguage$Env java.lang.String com.oracle.truffle.api.TruffleFile java.util.List top java.util.Iterator
      StackMap stack:
        13: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleFile
            astore 7 /* modulePath */
        start local 7 // com.oracle.truffle.api.TruffleFile modulePath
        14: .line 253
            aload 3 /* env */
            aload 7 /* modulePath */
            aload 1 /* packageSpecifier */
            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 9 /* moduleFolder */
        start local 9 // com.oracle.truffle.api.TruffleFile moduleFolder
        15: .line 254
            aload 3 /* env */
            aload 9 /* moduleFolder */
            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 10 /* packageJson */
        start local 10 // com.oracle.truffle.api.TruffleFile packageJson
        16: .line 255
            aload 10 /* packageJson */
            invokestatic com.oracle.truffle.js.builtins.commonjs.CommonJSResolution.fileExists:(Lcom/oracle/truffle/api/TruffleFile;)Z
            ifeq 30
        17: .line 256
            aload 10 /* packageJson */
            aload 0 /* this */
            getfield com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.realm:Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            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 11 /* jsonObj */
        start local 11 // com.oracle.truffle.api.object.DynamicObject jsonObj
        18: .line 257
            aload 11 /* jsonObj */
            invokestatic com.oracle.truffle.js.runtime.objects.JSDynamicObject.isJSDynamicObject:(Ljava/lang/Object;)Z
            ifeq 30
        19: .line 258
            aload 11 /* 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 12 /* main */
        start local 12 // java.lang.Object main
        20: .line 259
            aload 11 /* jsonObj */
            ldc "type"
            invokestatic com.oracle.truffle.js.runtime.objects.JSObject.get:(Lcom/oracle/truffle/api/object/DynamicObject;Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* type */
        start local 13 // java.lang.Object type
        21: .line 260
            aload 13 /* type */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 22
            aload 13 /* type */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(Ljava/lang/Object;)Z
            ifeq 22
            ldc "module"
            aload 13 /* type */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.safeToString:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 261
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader java.lang.String com.oracle.truffle.js.runtime.objects.ScriptOrModule com.oracle.truffle.api.TruffleLanguage$Env java.lang.String com.oracle.truffle.api.TruffleFile java.util.List com.oracle.truffle.api.TruffleFile java.util.Iterator com.oracle.truffle.api.TruffleFile com.oracle.truffle.api.TruffleFile com.oracle.truffle.api.object.DynamicObject java.lang.Object java.lang.Object
      StackMap stack:
            ldc "do not use import() to load non-ES modules."
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.failMessage:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        23: .line 263
      StackMap locals:
      StackMap stack:
            aload 12 /* main */
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.isString:(Ljava/lang/Object;)Z
            ifne 25
        24: .line 264
            aload 3 /* env */
            aload 9 /* moduleFolder */
            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
        25: .line 266
      StackMap locals:
      StackMap stack:
            aload 3 /* env */
            aload 9 /* moduleFolder */
            aload 12 /* 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 14 /* mainPackageFile */
        start local 14 // com.oracle.truffle.api.TruffleFile mainPackageFile
        26: .line 267
            aload 3 /* env */
            aload 14 /* mainPackageFile */
            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 15 /* asFile */
        start local 15 // com.oracle.truffle.api.TruffleFile asFile
        27: .line 268
            aload 15 /* asFile */
            ifnull 29
        28: .line 269
            aload 15 /* asFile */
            areturn
        29: .line 271
      StackMap locals: com.oracle.truffle.api.TruffleFile com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 3 /* env */
            aload 14 /* mainPackageFile */
            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 15 // com.oracle.truffle.api.TruffleFile asFile
        end local 14 // com.oracle.truffle.api.TruffleFile mainPackageFile
        end local 13 // java.lang.Object type
        end local 12 // java.lang.Object main
        end local 11 // com.oracle.truffle.api.object.DynamicObject jsonObj
        end local 10 // com.oracle.truffle.api.TruffleFile packageJson
        end local 9 // com.oracle.truffle.api.TruffleFile moduleFolder
        end local 7 // com.oracle.truffle.api.TruffleFile modulePath
        30: .line 252
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader java.lang.String com.oracle.truffle.js.runtime.objects.ScriptOrModule com.oracle.truffle.api.TruffleLanguage$Env java.lang.String com.oracle.truffle.api.TruffleFile java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        31: .line 277
            aload 3 /* env */
            aload 1 /* packageSpecifier */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getPublicTruffleFile:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleFile;
            astore 7 /* maybeFile */
        start local 7 // com.oracle.truffle.api.TruffleFile maybeFile
        32: .line 278
            aload 7 /* maybeFile */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokevirtual com.oracle.truffle.api.TruffleFile.exists:([Ljava/nio/file/LinkOption;)Z
            ifeq 34
        33: .line 279
            aload 7 /* maybeFile */
            areturn
        34: .line 281
      StackMap locals: com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader java.lang.String com.oracle.truffle.js.runtime.objects.ScriptOrModule com.oracle.truffle.api.TruffleLanguage$Env java.lang.String com.oracle.truffle.api.TruffleFile java.util.List com.oracle.truffle.api.TruffleFile
      StackMap stack:
            aload 1 /* packageSpecifier */
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.fail:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            athrow
        end local 7 // com.oracle.truffle.api.TruffleFile maybeFile
        end local 6 // java.util.List nodeModulesPaths
        end local 5 // com.oracle.truffle.api.TruffleFile mainPackageFolder
        end local 4 // java.lang.String packageName
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 2 // com.oracle.truffle.js.runtime.objects.ScriptOrModule referencingModule
        end local 1 // java.lang.String packageSpecifier
        end local 0 // com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   35     0               this  Lcom/oracle/truffle/js/builtins/commonjs/NpmCompatibleESModuleLoader;
            0   35     1   packageSpecifier  Ljava/lang/String;
            0   35     2  referencingModule  Lcom/oracle/truffle/js/runtime/objects/ScriptOrModule;
            1   35     3                env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2   35     4        packageName  Ljava/lang/String;
           11   35     5  mainPackageFolder  Lcom/oracle/truffle/api/TruffleFile;
           12   35     6   nodeModulesPaths  Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile;>;
           14   30     7         modulePath  Lcom/oracle/truffle/api/TruffleFile;
           15   30     9       moduleFolder  Lcom/oracle/truffle/api/TruffleFile;
           16   30    10        packageJson  Lcom/oracle/truffle/api/TruffleFile;
           18   30    11            jsonObj  Lcom/oracle/truffle/api/object/DynamicObject;
           20   30    12               main  Ljava/lang/Object;
           21   30    13               type  Ljava/lang/Object;
           26   30    14    mainPackageFile  Lcom/oracle/truffle/api/TruffleFile;
           27   30    15             asFile  Lcom/oracle/truffle/api/TruffleFile;
           32   35     7          maybeFile  Lcom/oracle/truffle/api/TruffleFile;
    MethodParameters:
                   Name  Flags
      packageSpecifier   
      referencingModule  

  private static com.oracle.truffle.js.runtime.JSException failMessage(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String message
         0: .line 286
            getstatic com.oracle.truffle.js.runtime.JSErrorType.TypeError:Lcom/oracle/truffle/js/runtime/JSErrorType;
            aload 0 /* message */
            invokestatic com.oracle.truffle.js.runtime.JSException.create:(Lcom/oracle/truffle/js/runtime/JSErrorType;Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            areturn
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  message  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      message  

  private static com.oracle.truffle.js.runtime.JSException fail(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String moduleIdentifier
         0: .line 291
            new java.lang.StringBuilder
            dup
            ldc "Cannot load module: '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* moduleIdentifier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.truffle.js.builtins.commonjs.NpmCompatibleESModuleLoader.failMessage:(Ljava/lang/String;)Lcom/oracle/truffle/js/runtime/JSException;
            areturn
        end local 0 // java.lang.String moduleIdentifier
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  moduleIdentifier  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                  Name  Flags
      moduleIdentifier  

  private static boolean isRelativePathFileName(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 295
            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  
}
SourceFile: "NpmCompatibleESModuleLoader.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 final LiteralBuilder = com.oracle.truffle.api.source.Source$LiteralBuilder of com.oracle.truffle.api.source.Source
  public SourceBuilder = com.oracle.truffle.api.source.Source$SourceBuilder of com.oracle.truffle.api.source.Source