public final class com.oracle.truffle.js.lang.JavaScriptLanguage extends com.oracle.truffle.js.runtime.AbstractJavaScriptLanguage
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.js.lang.JavaScriptLanguage
  super_class: com.oracle.truffle.js.runtime.AbstractJavaScriptLanguage
{
  public static final java.lang.String TEXT_MIME_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "text/javascript"

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

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

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

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

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

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

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

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

  private volatile com.oracle.truffle.js.runtime.JSContext languageContext;
    descriptor: Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private volatile boolean multiContext;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final com.oracle.truffle.api.Assumption promiseJobsQueueEmptyAssumption;
    descriptor: Lcom/oracle/truffle/api/Assumption;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final org.graalvm.options.OptionDescriptors OPTION_DESCRIPTORS;
    descriptor: Lorg/graalvm/options/OptionDescriptors;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.options.OptionKey<?>[] PREINIT_CONTEXT_PATCHABLE_OPTIONS;
    descriptor: [Lorg/graalvm/options/OptionKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Lorg/graalvm/options/OptionKey<*>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 152
            ldc Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            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.lang.JavaScriptLanguage.$assertionsDisabled:Z
         3: .line 171
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* options */
        start local 0 // java.util.ArrayList options
         4: .line 172
            aload 0 /* options */
            invokestatic com.oracle.truffle.js.runtime.JSContextOptions.describeOptions:(Ljava/util/List;)V
         5: .line 173
            aload 0 /* options */
            invokestatic org.graalvm.options.OptionDescriptors.create:(Ljava/util/List;)Lorg/graalvm/options/OptionDescriptors;
            putstatic com.oracle.truffle.js.lang.JavaScriptLanguage.OPTION_DESCRIPTORS:Lorg/graalvm/options/OptionDescriptors;
         6: .line 174
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.ensureErrorClassesInitialized:()V
        end local 0 // java.util.ArrayList options
         7: .line 355
            bipush 16
            anewarray org.graalvm.options.OptionKey
            dup
            iconst_0
         8: .line 356
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.ARRAY_SORT_INHERITED:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            iconst_1
         9: .line 357
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.TIMER_RESOLUTION:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            iconst_2
        10: .line 358
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.SHELL:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            iconst_3
        11: .line 359
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.V8_COMPATIBILITY_MODE:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            iconst_4
        12: .line 360
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.GLOBAL_PROPERTY:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            iconst_5
        13: .line 361
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.GLOBAL_ARGUMENTS:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 6
        14: .line 362
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.SCRIPTING:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 7
        15: .line 363
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.DIRECT_BYTE_BUFFER:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 8
        16: .line 364
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.INTL_402:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 9
        17: .line 365
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.LOAD:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 10
        18: .line 366
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.PRINT:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 11
        19: .line 367
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.CONSOLE:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 12
        20: .line 368
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.PERFORMANCE:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 13
        21: .line 369
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.CLASS_FIELDS:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 14
        22: .line 370
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.REGEXP_STATIC_RESULT:Lorg/graalvm/options/OptionKey;
            aastore
            dup
            bipush 15
        23: .line 371
            getstatic com.oracle.truffle.js.runtime.JSContextOptions.TIME_ZONE:Lorg/graalvm/options/OptionKey;
            aastore
        24: .line 355
            putstatic com.oracle.truffle.js.lang.JavaScriptLanguage.PREINIT_CONTEXT_PATCHABLE_OPTIONS:[Lorg/graalvm/options/OptionKey;
        25: .line 372
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            4    7     0  options  Ljava/util/ArrayList<Lorg/graalvm/options/OptionDescriptor;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
         0: .line 177
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.runtime.AbstractJavaScriptLanguage.<init>:()V
         1: .line 178
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            ldc "PromiseJobsQueueEmpty"
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
            putfield com.oracle.truffle.js.lang.JavaScriptLanguage.promiseJobsQueueEmptyAssumption:Lcom/oracle/truffle/api/Assumption;
         2: .line 179
            return
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;

  public com.oracle.truffle.api.CallTarget parse(com.oracle.truffle.api.TruffleLanguage$ParsingRequest);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;)Lcom/oracle/truffle/api/CallTarget;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest parsingRequest
         0: .line 184
            aload 1 /* parsingRequest */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ParsingRequest.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 2 /* source */
        start local 2 // com.oracle.truffle.api.source.Source source
         1: .line 185
            aload 1 /* parsingRequest */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ParsingRequest.getArgumentNames:()Ljava/util/List;
            astore 3 /* argumentNames */
        start local 3 // java.util.List argumentNames
         2: .line 186
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* context */
        start local 4 // com.oracle.truffle.js.runtime.JSContext context
         3: .line 187
            aload 4 /* context */
            aload 2 /* source */
            ldc ""
            ldc ""
            aload 3 /* argumentNames */
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 5 /* program */
        start local 5 // com.oracle.truffle.js.nodes.ScriptNode program
         4: .line 189
            aload 4 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.isOptionParseOnly:()Z
            ifeq 6
         5: .line 190
            aload 4 /* context */
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.createEmptyScript:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            invokevirtual com.oracle.truffle.js.nodes.ScriptNode.getCallTarget:()Lcom/oracle/truffle/api/RootCallTarget;
            areturn
         6: .line 193
      StackMap locals: com.oracle.truffle.js.lang.JavaScriptLanguage com.oracle.truffle.api.TruffleLanguage$ParsingRequest com.oracle.truffle.api.source.Source java.util.List com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.nodes.ScriptNode
      StackMap stack:
            new com.oracle.truffle.js.lang.JavaScriptLanguage$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 5 /* program */
            aload 4 /* context */
            invokespecial com.oracle.truffle.js.lang.JavaScriptLanguage$1.<init>:(Lcom/oracle/truffle/js/lang/JavaScriptLanguage;Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/js/nodes/ScriptNode;Lcom/oracle/truffle/js/runtime/JSContext;)V
            astore 6 /* rootNode */
        start local 6 // com.oracle.truffle.api.nodes.RootNode rootNode
         7: .line 231
            invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
            aload 6 /* rootNode */
            invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
            areturn
        end local 6 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 5 // com.oracle.truffle.js.nodes.ScriptNode program
        end local 4 // com.oracle.truffle.js.runtime.JSContext context
        end local 3 // java.util.List argumentNames
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // com.oracle.truffle.api.TruffleLanguage$ParsingRequest parsingRequest
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    8     1  parsingRequest  Lcom/oracle/truffle/api/TruffleLanguage$ParsingRequest;
            1    8     2          source  Lcom/oracle/truffle/api/source/Source;
            2    8     3   argumentNames  Ljava/util/List<Ljava/lang/String;>;
            3    8     4         context  Lcom/oracle/truffle/js/runtime/JSContext;
            4    8     5         program  Lcom/oracle/truffle/js/nodes/ScriptNode;
            7    8     6        rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                Name  Flags
      parsingRequest  

  private static com.oracle.truffle.js.nodes.ScriptNode createEmptyScript(com.oracle.truffle.js.runtime.JSContext);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/nodes/ScriptNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
         0: .line 236
            aload 0 /* context */
            aload 0 /* context */
            invokestatic com.oracle.truffle.js.runtime.builtins.JSFunction.createEmptyFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext;)Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokestatic com.oracle.truffle.js.nodes.ScriptNode.fromFunctionData:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            areturn
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lcom/oracle/truffle/js/runtime/JSContext;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
         Name  Flags
      context  

  protected com.oracle.truffle.api.nodes.ExecutableNode parse(com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;)Lcom/oracle/truffle/api/nodes/ExecutableNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=7, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
         0: .line 241
            aload 1 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest.getSource:()Lcom/oracle/truffle/api/source/Source;
            astore 2 /* source */
        start local 2 // com.oracle.truffle.api.source.Source source
         1: .line 242
            aload 1 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest.getFrame:()Lcom/oracle/truffle/api/frame/MaterializedFrame;
            astore 3 /* requestFrame */
        start local 3 // com.oracle.truffle.api.frame.MaterializedFrame requestFrame
         2: .line 243
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.getJSContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 4 /* context */
        start local 4 // com.oracle.truffle.js.runtime.JSContext context
         3: .line 244
            aload 1 /* request */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest.getLocation:()Lcom/oracle/truffle/api/nodes/Node;
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.isStrictLocation:(Lcom/oracle/truffle/api/nodes/Node;)Z
            istore 5 /* strict */
        start local 5 // boolean strict
         4: .line 245
            new com.oracle.truffle.js.lang.JavaScriptLanguage$2
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* context */
            aload 2 /* source */
            aload 3 /* requestFrame */
            iload 5 /* strict */
            invokespecial com.oracle.truffle.js.lang.JavaScriptLanguage$2.<init>:(Lcom/oracle/truffle/js/lang/JavaScriptLanguage;Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/frame/MaterializedFrame;Z)V
            astore 6 /* executableNode */
        start local 6 // com.oracle.truffle.api.nodes.ExecutableNode executableNode
         5: .line 256
            aload 6 /* executableNode */
            areturn
        end local 6 // com.oracle.truffle.api.nodes.ExecutableNode executableNode
        end local 5 // boolean strict
        end local 4 // com.oracle.truffle.js.runtime.JSContext context
        end local 3 // com.oracle.truffle.api.frame.MaterializedFrame requestFrame
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest request
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    6     1         request  Lcom/oracle/truffle/api/TruffleLanguage$InlineParsingRequest;
            1    6     2          source  Lcom/oracle/truffle/api/source/Source;
            2    6     3    requestFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            3    6     4         context  Lcom/oracle/truffle/js/runtime/JSContext;
            4    6     5          strict  Z
            5    6     6  executableNode  Lcom/oracle/truffle/api/nodes/ExecutableNode;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      request  

  private static boolean isStrictLocation(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node location
         0: .line 260
            aload 0 /* location */
            ifnull 4
         1: .line 261
            aload 0 /* location */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 1 /* rootNode */
        start local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
         2: .line 262
            aload 1 /* rootNode */
            instanceof com.oracle.truffle.js.nodes.function.FunctionRootNode
            ifeq 4
         3: .line 263
            aload 1 /* rootNode */
            checkcast com.oracle.truffle.js.nodes.function.FunctionRootNode
            invokevirtual com.oracle.truffle.js.nodes.function.FunctionRootNode.getFunctionData:()Lcom/oracle/truffle/js/runtime/builtins/JSFunctionData;
            invokevirtual com.oracle.truffle.js.runtime.builtins.JSFunctionData.isStrict:()Z
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.RootNode rootNode
         4: .line 266
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.nodes.Node location
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  location  Lcom/oracle/truffle/api/nodes/Node;
            2    4     1  rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
          Name  Flags
      location  

  protected static com.oracle.truffle.js.nodes.ScriptNode parseScript(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.source.Source, java.lang.String, java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lcom/oracle/truffle/js/nodes/ScriptNode;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=5
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.source.Source code
        start local 2 // java.lang.String prolog
        start local 3 // java.lang.String epilog
        start local 4 // java.util.List argumentNames
         0: .line 271
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.isProfileTime:()Z
            istore 5 /* profileTime */
        start local 5 // boolean profileTime
         1: .line 272
            iload 5 /* profileTime */
            ifeq 2
            invokestatic java.lang.System.nanoTime:()J
            goto 3
      StackMap locals: int
      StackMap stack:
         2: lconst_0
      StackMap locals:
      StackMap stack: long
         3: lstore 6 /* startTime */
        start local 6 // long startTime
         4: .line 274
            aconst_null
            astore 8 /* arguments */
        start local 8 // java.lang.String[] arguments
         5: .line 275
            aload 4 /* argumentNames */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 7
         6: .line 276
            aload 4 /* argumentNames */
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 8 /* arguments */
         7: .line 278
      StackMap locals: long java.lang.String[]
      StackMap stack:
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            aload 0 /* context */
            aload 1 /* code */
            aload 2 /* prolog */
            aload 3 /* epilog */
            aload 8 /* arguments */
            invokeinterface com.oracle.truffle.js.runtime.Evaluator.parseScript:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lcom/oracle/truffle/js/nodes/ScriptNode;
            astore 10
         8: .line 280
            iload 5 /* profileTime */
            ifeq 10
         9: .line 281
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getTimeProfiler:()Lcom/oracle/truffle/js/runtime/util/TimeProfiler;
            lload 6 /* startTime */
            new java.lang.StringBuilder
            dup
            ldc "parsing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* code */
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.runtime.util.TimeProfiler.printElapsed:(JLjava/lang/String;)V
        10: .line 278
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.source.Source java.lang.String java.lang.String java.util.List int long java.lang.String[] top com.oracle.truffle.js.nodes.ScriptNode
      StackMap stack:
            aload 10
            areturn
        end local 8 // java.lang.String[] arguments
        11: .line 279
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.source.Source java.lang.String java.lang.String java.util.List int long
      StackMap stack: java.lang.Throwable
            astore 9
        12: .line 280
            iload 5 /* profileTime */
            ifeq 14
        13: .line 281
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getTimeProfiler:()Lcom/oracle/truffle/js/runtime/util/TimeProfiler;
            lload 6 /* startTime */
            new java.lang.StringBuilder
            dup
            ldc "parsing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* code */
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.runtime.util.TimeProfiler.printElapsed:(JLjava/lang/String;)V
        14: .line 283
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.source.Source java.lang.String java.lang.String java.util.List int long top java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        end local 6 // long startTime
        end local 5 // boolean profileTime
        end local 4 // java.util.List argumentNames
        end local 3 // java.lang.String epilog
        end local 2 // java.lang.String prolog
        end local 1 // com.oracle.truffle.api.source.Source code
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0        context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   15     1           code  Lcom/oracle/truffle/api/source/Source;
            0   15     2         prolog  Ljava/lang/String;
            0   15     3         epilog  Ljava/lang/String;
            0   15     4  argumentNames  Ljava/util/List<Ljava/lang/String;>;
            1   15     5    profileTime  Z
            4   15     6      startTime  J
            5   11     8      arguments  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           4     8      11  any
    Signature: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)Lcom/oracle/truffle/js/nodes/ScriptNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      context        
      code           
      prolog         
      epilog         
      argumentNames  

  protected static com.oracle.truffle.js.nodes.JavaScriptNode parseInlineScript(com.oracle.truffle.js.runtime.JSContext, com.oracle.truffle.api.source.Source, com.oracle.truffle.api.frame.MaterializedFrame, boolean);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/frame/MaterializedFrame;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // com.oracle.truffle.js.runtime.JSContext context
        start local 1 // com.oracle.truffle.api.source.Source code
        start local 2 // com.oracle.truffle.api.frame.MaterializedFrame lexicalContextFrame
        start local 3 // boolean strict
         0: .line 288
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.isProfileTime:()Z
            istore 4 /* profileTime */
        start local 4 // boolean profileTime
         1: .line 289
            iload 4 /* profileTime */
            ifeq 2
            invokestatic java.lang.System.nanoTime:()J
            goto 3
      StackMap locals: int
      StackMap stack:
         2: lconst_0
      StackMap locals:
      StackMap stack: long
         3: lstore 5 /* startTime */
        start local 5 // long startTime
         4: .line 291
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getEvaluator:()Lcom/oracle/truffle/js/runtime/Evaluator;
            aload 0 /* context */
            aload 1 /* code */
            aload 2 /* lexicalContextFrame */
            iload 3 /* strict */
            invokeinterface com.oracle.truffle.js.runtime.Evaluator.parseInlineScript:(Lcom/oracle/truffle/js/runtime/JSContext;Lcom/oracle/truffle/api/source/Source;Lcom/oracle/truffle/api/frame/MaterializedFrame;Z)Lcom/oracle/truffle/js/nodes/JavaScriptNode;
            astore 8
         5: .line 293
            iload 4 /* profileTime */
            ifeq 7
         6: .line 294
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getTimeProfiler:()Lcom/oracle/truffle/js/runtime/util/TimeProfiler;
            lload 5 /* startTime */
            new java.lang.StringBuilder
            dup
            ldc "parsing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* code */
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.runtime.util.TimeProfiler.printElapsed:(JLjava/lang/String;)V
         7: .line 291
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.source.Source com.oracle.truffle.api.frame.MaterializedFrame int int long top com.oracle.truffle.js.nodes.JavaScriptNode
      StackMap stack:
            aload 8
            areturn
         8: .line 292
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.api.source.Source com.oracle.truffle.api.frame.MaterializedFrame int int long
      StackMap stack: java.lang.Throwable
            astore 7
         9: .line 293
            iload 4 /* profileTime */
            ifeq 11
        10: .line 294
            aload 0 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getTimeProfiler:()Lcom/oracle/truffle/js/runtime/util/TimeProfiler;
            lload 5 /* startTime */
            new java.lang.StringBuilder
            dup
            ldc "parsing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* code */
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.truffle.js.runtime.util.TimeProfiler.printElapsed:(JLjava/lang/String;)V
        11: .line 296
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 7
            athrow
        end local 5 // long startTime
        end local 4 // boolean profileTime
        end local 3 // boolean strict
        end local 2 // com.oracle.truffle.api.frame.MaterializedFrame lexicalContextFrame
        end local 1 // com.oracle.truffle.api.source.Source code
        end local 0 // com.oracle.truffle.js.runtime.JSContext context
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0              context  Lcom/oracle/truffle/js/runtime/JSContext;
            0   12     1                 code  Lcom/oracle/truffle/api/source/Source;
            0   12     2  lexicalContextFrame  Lcom/oracle/truffle/api/frame/MaterializedFrame;
            0   12     3               strict  Z
            1   12     4          profileTime  Z
            4   12     5            startTime  J
      Exception table:
        from    to  target  type
           4     5       8  any
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
                     Name  Flags
      context              
      code                 
      lexicalContextFrame  
      strict               

  protected com.oracle.truffle.js.runtime.JSRealm createContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/js/runtime/JSRealm;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 301
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 302
            aload 0 /* this */
            getfield com.oracle.truffle.js.lang.JavaScriptLanguage.languageContext:Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.js.runtime.JSContext context
         2: .line 303
            aload 2 /* context */
            ifnonnull 4
         3: .line 304
            aload 0 /* this */
            aload 1 /* env */
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.initLanguageContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* context */
         4: .line 306
      StackMap locals: com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            aload 2 /* context */
            aload 1 /* env */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.createRealm:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/js/runtime/JSRealm;
            astore 3 /* realm */
        start local 3 // com.oracle.truffle.js.runtime.JSRealm realm
         5: .line 308
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.out:()Ljava/io/OutputStream;
            aload 3 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getOutputStream:()Ljava/io/OutputStream;
            if_acmpeq 7
         6: .line 309
            aload 3 /* realm */
            aconst_null
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.out:()Ljava/io/OutputStream;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.setOutputWriter:(Ljava/io/Writer;Ljava/io/OutputStream;)V
         7: .line 311
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm
      StackMap stack:
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.err:()Ljava/io/OutputStream;
            aload 3 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getErrorStream:()Ljava/io/OutputStream;
            if_acmpeq 9
         8: .line 312
            aload 3 /* realm */
            aconst_null
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.err:()Ljava/io/OutputStream;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.setErrorWriter:(Ljava/io/Writer;Ljava/io/OutputStream;)V
         9: .line 315
      StackMap locals:
      StackMap stack:
            aload 3 /* realm */
            areturn
        end local 3 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 2 // com.oracle.truffle.js.runtime.JSContext context
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0   10     1      env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2   10     2  context  Lcom/oracle/truffle/js/runtime/JSContext;
            5   10     3    realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
      Name  Flags
      env   

  private synchronized com.oracle.truffle.js.runtime.JSContext initLanguageContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 319
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 320
            aload 0 /* this */
            getfield com.oracle.truffle.js.lang.JavaScriptLanguage.languageContext:Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* curContext */
        start local 2 // com.oracle.truffle.js.runtime.JSContext curContext
         2: .line 321
            aload 2 /* curContext */
            ifnull 5
         3: .line 322
            getstatic com.oracle.truffle.js.lang.JavaScriptLanguage.$assertionsDisabled:Z
            ifne 4
            aload 2 /* curContext */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getOptions:()Lorg/graalvm/options/OptionValues;
            invokestatic com.oracle.truffle.js.runtime.JSContextOptions.fromOptionValues:(Lorg/graalvm/options/OptionValues;)Lcom/oracle/truffle/js/runtime/JSContextOptions;
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.equals:(Ljava/lang/Object;)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 323
      StackMap locals: com.oracle.truffle.js.runtime.JSContext
      StackMap stack:
            aload 2 /* curContext */
            areturn
         5: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* env */
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.newJSContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/js/runtime/JSContext;
            astore 3 /* newContext */
        start local 3 // com.oracle.truffle.js.runtime.JSContext newContext
         6: .line 326
            aload 0 /* this */
            aload 3 /* newContext */
            putfield com.oracle.truffle.js.lang.JavaScriptLanguage.languageContext:Lcom/oracle/truffle/js/runtime/JSContext;
         7: .line 327
            aload 3 /* newContext */
            areturn
        end local 3 // com.oracle.truffle.js.runtime.JSContext newContext
        end local 2 // com.oracle.truffle.js.runtime.JSContext curContext
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    8     1         env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            2    8     2  curContext  Lcom/oracle/truffle/js/runtime/JSContext;
            6    8     3  newContext  Lcom/oracle/truffle/js/runtime/JSContext;
    MethodParameters:
      Name  Flags
      env   

  private com.oracle.truffle.js.runtime.JSContext newJSContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 331
            aload 0 /* this */
            aload 1 /* env */
            invokestatic com.oracle.truffle.js.runtime.JSEngine.createJSContext:(Lcom/oracle/truffle/js/lang/JavaScriptLanguage;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/js/runtime/JSContext;
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    1     1   env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
      Name  Flags
      env   

  protected void initializeContext(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 336
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.initialize:()V
         1: .line 337
            return
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    2     1  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
       Name  Flags
      realm  

  protected boolean patchContext(com.oracle.truffle.js.runtime.JSRealm, com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 2 // com.oracle.truffle.api.TruffleLanguage$Env newEnv
         0: .line 341
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 342
            getstatic com.oracle.truffle.js.lang.JavaScriptLanguage.$assertionsDisabled:Z
            ifne 2
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getLanguage:()Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            aload 0 /* this */
            if_acmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 344
      StackMap locals:
      StackMap stack:
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEnv:()Lcom/oracle/truffle/api/TruffleLanguage$Env;
            aload 2 /* newEnv */
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.optionsAllowPreInitializedContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
            ifeq 4
            aload 1 /* realm */
            aload 2 /* newEnv */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.patchContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
            ifeq 4
         3: .line 345
            iconst_1
            ireturn
         4: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.js.lang.JavaScriptLanguage.languageContext:Lcom/oracle/truffle/js/runtime/JSContext;
         5: .line 348
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.TruffleLanguage$Env newEnv
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    6     1   realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    6     2  newEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
    MethodParameters:
        Name  Flags
      realm   
      newEnv  

  private static boolean optionsAllowPreInitializedContext(com.oracle.truffle.api.TruffleLanguage$Env, com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLanguage$Env preinitEnv
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
         0: .line 379
            aload 0 /* preinitEnv */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getOptions:()Lorg/graalvm/options/OptionValues;
            astore 2 /* preinitOptions */
        start local 2 // org.graalvm.options.OptionValues preinitOptions
         1: .line 380
            aload 1 /* env */
            invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.getOptions:()Lorg/graalvm/options/OptionValues;
            astore 3 /* options */
        start local 3 // org.graalvm.options.OptionValues options
         2: .line 381
            aload 2 /* preinitOptions */
            invokeinterface org.graalvm.options.OptionValues.hasSetOptions:()Z
            ifne 4
            aload 3 /* options */
            invokeinterface org.graalvm.options.OptionValues.hasSetOptions:()Z
            ifne 4
         3: .line 382
            iconst_1
            ireturn
         4: .line 383
      StackMap locals: org.graalvm.options.OptionValues org.graalvm.options.OptionValues
      StackMap stack:
            aload 2 /* preinitOptions */
            aload 3 /* options */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 384
            iconst_1
            ireturn
         6: .line 386
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.lang.JavaScriptLanguage.$assertionsDisabled:Z
            ifne 7
            aload 2 /* preinitOptions */
            invokeinterface org.graalvm.options.OptionValues.getDescriptors:()Lorg/graalvm/options/OptionDescriptors;
            aload 3 /* options */
            invokeinterface org.graalvm.options.OptionValues.getDescriptors:()Lorg/graalvm/options/OptionDescriptors;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 387
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.js.lang.JavaScriptLanguage.PREINIT_CONTEXT_PATCHABLE_OPTIONS:[Lorg/graalvm/options/OptionKey;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 4 /* ignoredOptions */
        start local 4 // java.util.Collection ignoredOptions
         8: .line 388
            aload 3 /* options */
            invokeinterface org.graalvm.options.OptionValues.getDescriptors:()Lorg/graalvm/options/OptionDescriptors;
            invokeinterface org.graalvm.options.OptionDescriptors.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleLanguage$Env org.graalvm.options.OptionValues org.graalvm.options.OptionValues java.util.Collection top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.options.OptionDescriptor
            astore 5 /* descriptor */
        start local 5 // org.graalvm.options.OptionDescriptor descriptor
        10: .line 389
            aload 5 /* descriptor */
            invokevirtual org.graalvm.options.OptionDescriptor.getKey:()Lorg/graalvm/options/OptionKey;
            astore 7 /* key */
        start local 7 // org.graalvm.options.OptionKey key
        11: .line 390
            aload 2 /* preinitOptions */
            aload 7 /* key */
            invokeinterface org.graalvm.options.OptionValues.hasBeenSet:(Lorg/graalvm/options/OptionKey;)Z
            ifne 12
            aload 3 /* options */
            aload 7 /* key */
            invokeinterface org.graalvm.options.OptionValues.hasBeenSet:(Lorg/graalvm/options/OptionKey;)Z
            ifeq 16
        12: .line 391
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleLanguage$Env org.graalvm.options.OptionValues org.graalvm.options.OptionValues java.util.Collection org.graalvm.options.OptionDescriptor java.util.Iterator org.graalvm.options.OptionKey
      StackMap stack:
            aload 4 /* ignoredOptions */
            aload 7 /* key */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 392
            goto 16
        14: .line 394
      StackMap locals:
      StackMap stack:
            aload 2 /* preinitOptions */
            aload 7 /* key */
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            aload 3 /* options */
            aload 7 /* key */
            invokeinterface org.graalvm.options.OptionValues.get:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 16
        15: .line 395
            iconst_0
            ireturn
        end local 7 // org.graalvm.options.OptionKey key
        end local 5 // org.graalvm.options.OptionDescriptor descriptor
        16: .line 388
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$Env com.oracle.truffle.api.TruffleLanguage$Env org.graalvm.options.OptionValues org.graalvm.options.OptionValues java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        17: .line 399
            iconst_1
            ireturn
        end local 4 // java.util.Collection ignoredOptions
        end local 3 // org.graalvm.options.OptionValues options
        end local 2 // org.graalvm.options.OptionValues preinitOptions
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Env env
        end local 0 // com.oracle.truffle.api.TruffleLanguage$Env preinitEnv
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0      preinitEnv  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            0   18     1             env  Lcom/oracle/truffle/api/TruffleLanguage$Env;
            1   18     2  preinitOptions  Lorg/graalvm/options/OptionValues;
            2   18     3         options  Lorg/graalvm/options/OptionValues;
            8   18     4  ignoredOptions  Ljava/util/Collection<Lorg/graalvm/options/OptionKey<*>;>;
           10   16     5      descriptor  Lorg/graalvm/options/OptionDescriptor;
           11   16     7             key  Lorg/graalvm/options/OptionKey<*>;
    MethodParameters:
            Name  Flags
      preinitEnv  
      env         

  protected void disposeContext(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 405
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 406
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            astore 2 /* context */
        start local 2 // com.oracle.truffle.js.runtime.JSContext context
         2: .line 407
            aload 2 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getContextOptions:()Lcom/oracle/truffle/js/runtime/JSContextOptions;
            astore 3 /* options */
        start local 3 // com.oracle.truffle.js.runtime.JSContextOptions options
         3: .line 408
            aload 3 /* options */
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.isProfileTime:()Z
            ifeq 5
            aload 3 /* options */
            invokevirtual com.oracle.truffle.js.runtime.JSContextOptions.isProfileTimePrintCumulative:()Z
            ifeq 5
         4: .line 409
            aload 2 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSContext.getTimeProfiler:()Lcom/oracle/truffle/js/runtime/util/TimeProfiler;
            invokevirtual com.oracle.truffle.js.runtime.util.TimeProfiler.printCumulative:()V
         5: .line 411
      StackMap locals: com.oracle.truffle.js.runtime.JSContext com.oracle.truffle.js.runtime.JSContextOptions
      StackMap stack:
            aload 1 /* realm */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.setGlobalObject:(Lcom/oracle/truffle/api/object/DynamicObject;)V
         6: .line 412
            return
        end local 3 // com.oracle.truffle.js.runtime.JSContextOptions options
        end local 2 // com.oracle.truffle.js.runtime.JSContext context
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    7     1    realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            2    7     2  context  Lcom/oracle/truffle/js/runtime/JSContext;
            3    7     3  options  Lcom/oracle/truffle/js/runtime/JSContextOptions;
    MethodParameters:
       Name  Flags
      realm  

  protected void initializeMultipleContexts();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
         0: .line 416
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.js.lang.JavaScriptLanguage.multiContext:Z
         1: .line 417
            return
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;

  public boolean isMultiContext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
         0: .line 421
            aload 0 /* this */
            getfield com.oracle.truffle.js.lang.JavaScriptLanguage.multiContext:Z
            ireturn
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;

  protected boolean areOptionsCompatible(org.graalvm.options.OptionValues, org.graalvm.options.OptionValues);
    descriptor: (Lorg/graalvm/options/OptionValues;Lorg/graalvm/options/OptionValues;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // org.graalvm.options.OptionValues firstOptions
        start local 2 // org.graalvm.options.OptionValues newOptions
         0: .line 426
            aload 1 /* firstOptions */
            aload 2 /* newOptions */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // org.graalvm.options.OptionValues newOptions
        end local 1 // org.graalvm.options.OptionValues firstOptions
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    1     1  firstOptions  Lorg/graalvm/options/OptionValues;
            0    1     2    newOptions  Lorg/graalvm/options/OptionValues;
    MethodParameters:
              Name  Flags
      firstOptions  
      newOptions    

  protected org.graalvm.options.OptionDescriptors getOptionDescriptors();
    descriptor: ()Lorg/graalvm/options/OptionDescriptors;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
         0: .line 431
            getstatic com.oracle.truffle.js.lang.JavaScriptLanguage.OPTION_DESCRIPTORS:Lorg/graalvm/options/OptionDescriptors;
            areturn
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;

  protected boolean isVisible(com.oracle.truffle.js.runtime.JSRealm, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        start local 2 // java.lang.Object value
         0: .line 436
            aload 2 /* value */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    2     1  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    2     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      realm  
      value  

  protected java.lang.Object getLanguageView(com.oracle.truffle.js.runtime.JSRealm, java.lang.Object);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm context
        start local 2 // java.lang.Object value
         0: .line 441
            aload 2 /* value */
            invokestatic com.oracle.truffle.js.runtime.interop.JavaScriptLanguageView.create:(Ljava/lang/Object;)Lcom/oracle/truffle/js/runtime/interop/JavaScriptLanguageView;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // com.oracle.truffle.js.runtime.JSRealm context
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    1     1  context  Lcom/oracle/truffle/js/runtime/JSRealm;
            0    1     2    value  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      context  
      value    

  protected java.lang.Object getScope(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm context
         0: .line 446
            aload 1 /* context */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getTopScopeObject:()Ljava/lang/Object;
            areturn
        end local 1 // com.oracle.truffle.js.runtime.JSRealm context
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    1     1  context  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
         Name  Flags
      context  

  public static com.oracle.truffle.js.runtime.JSContext getJSContext(org.graalvm.polyglot.Context);
    descriptor: (Lorg/graalvm/polyglot/Context;)Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Context context
         0: .line 450
            aload 0 /* context */
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.getJSRealm:(Lorg/graalvm/polyglot/Context;)Lcom/oracle/truffle/js/runtime/JSRealm;
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getContext:()Lcom/oracle/truffle/js/runtime/JSContext;
            areturn
        end local 0 // org.graalvm.polyglot.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/graalvm/polyglot/Context;
    MethodParameters:
         Name  Flags
      context  

  public static com.oracle.truffle.js.runtime.JSRealm getJSRealm(org.graalvm.polyglot.Context);
    descriptor: (Lorg/graalvm/polyglot/Context;)Lcom/oracle/truffle/js/runtime/JSRealm;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.graalvm.polyglot.Context context
         0: .line 454
            aload 0 /* context */
            invokevirtual org.graalvm.polyglot.Context.enter:()V
         1: .line 456
            aload 0 /* context */
            ldc "js"
            invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
            pop
         2: .line 457
            ldc Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.getCurrentContext:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.JSRealm
            astore 2
         3: .line 459
            aload 0 /* context */
            invokevirtual org.graalvm.polyglot.Context.leave:()V
         4: .line 457
            aload 2
            areturn
         5: .line 458
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         6: .line 459
            aload 0 /* context */
            invokevirtual org.graalvm.polyglot.Context.leave:()V
         7: .line 460
            aload 1
            athrow
        end local 0 // org.graalvm.polyglot.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  context  Lorg/graalvm/polyglot/Context;
      Exception table:
        from    to  target  type
           1     3       5  any
    MethodParameters:
         Name  Flags
      context  

  public void interopBoundaryEnter(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 465
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.interopBoundaryEnter:()V
         1: .line 466
            return
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    2     1  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
    MethodParameters:
       Name  Flags
      realm  

  public void interopBoundaryExit(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
        start local 1 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 469
            aload 1 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            astore 2 /* agent */
        start local 2 // com.oracle.truffle.js.runtime.JSAgent agent
         1: .line 470
            aload 2 /* agent */
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.interopBoundaryExit:()Z
            ifeq 6
         2: .line 471
            aload 0 /* this */
            getfield com.oracle.truffle.js.lang.JavaScriptLanguage.promiseJobsQueueEmptyAssumption:Lcom/oracle/truffle/api/Assumption;
            invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
            ifne 4
         3: .line 472
            aload 2 /* agent */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.processAllPromises:(Z)V
         4: .line 474
      StackMap locals: com.oracle.truffle.js.runtime.JSAgent
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.getJSContext:()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.isTestV8Mode:()Z
            ifeq 6
         5: .line 475
            aload 1 /* realm */
            invokestatic com.oracle.truffle.js.lang.JavaScriptLanguage.processTimeoutCallbacks:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
         6: .line 478
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.truffle.js.runtime.JSAgent agent
        end local 1 // com.oracle.truffle.js.runtime.JSRealm realm
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;
            0    7     1  realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1    7     2  agent  Lcom/oracle/truffle/js/runtime/JSAgent;
    MethodParameters:
       Name  Flags
      realm  

  private static void processTimeoutCallbacks(com.oracle.truffle.js.runtime.JSRealm);
    descriptor: (Lcom/oracle/truffle/js/runtime/JSRealm;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.oracle.truffle.js.runtime.JSRealm realm
         0: .line 483
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getAgent:()Lcom/oracle/truffle/js/runtime/JSAgent;
            astore 1 /* agent */
        start local 1 // com.oracle.truffle.js.runtime.JSAgent agent
         1: .line 485
            goto 8
        start local 2 // java.util.List callbackList
         2: .line 486
      StackMap locals: com.oracle.truffle.js.runtime.JSAgent java.util.List
      StackMap stack:
            aload 0 /* realm */
            aconst_null
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.setEmbedderData:(Ljava/lang/Object;)V
         3: .line 487
            aload 2 /* callbackList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSAgent java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* callback */
        start local 3 // java.lang.Object callback
         5: .line 488
            aload 3 /* callback */
            getstatic com.oracle.truffle.js.runtime.objects.Undefined.instance:Lcom/oracle/truffle/js/runtime/objects/JSDynamicObject;
            getstatic com.oracle.truffle.js.runtime.JSArguments.EMPTY_ARGUMENTS_ARRAY:[Ljava/lang/Object;
            invokestatic com.oracle.truffle.js.runtime.JSRuntime.call:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.lang.Object callback
         6: .line 487
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 490
            aload 1 /* agent */
            iconst_1
            invokevirtual com.oracle.truffle.js.runtime.JSAgent.processAllPromises:(Z)V
        end local 2 // java.util.List callbackList
         8: .line 485
      StackMap locals: com.oracle.truffle.js.runtime.JSRealm com.oracle.truffle.js.runtime.JSAgent
      StackMap stack:
            aload 0 /* realm */
            invokevirtual com.oracle.truffle.js.runtime.JSRealm.getEmbedderData:()Ljava/lang/Object;
            checkcast java.util.List
            dup
            astore 2 /* callbackList */
        start local 2 // java.util.List callbackList
         9: ifnull 10
            aload 2 /* callbackList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
        10: .line 492
      StackMap locals: java.util.List
      StackMap stack:
            return
        end local 2 // java.util.List callbackList
        end local 1 // com.oracle.truffle.js.runtime.JSAgent agent
        end local 0 // com.oracle.truffle.js.runtime.JSRealm realm
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0         realm  Lcom/oracle/truffle/js/runtime/JSRealm;
            1   11     1         agent  Lcom/oracle/truffle/js/runtime/JSAgent;
            2    8     2  callbackList  Ljava/util/List<Ljava/lang/Object;>;
            9   11     2  callbackList  Ljava/util/List<Ljava/lang/Object;>;
            5    6     3      callback  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
       Name  Flags
      realm  

  public com.oracle.truffle.api.Assumption getPromiseJobsQueueEmptyAssumption();
    descriptor: ()Lcom/oracle/truffle/api/Assumption;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
         0: .line 495
            aload 0 /* this */
            getfield com.oracle.truffle.js.lang.JavaScriptLanguage.promiseJobsQueueEmptyAssumption:Lcom/oracle/truffle/api/Assumption;
            areturn
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;

  public com.oracle.truffle.js.runtime.JSContext getJSContext();
    descriptor: ()Lcom/oracle/truffle/js/runtime/JSContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
         0: .line 499
            aload 0 /* this */
            getfield com.oracle.truffle.js.lang.JavaScriptLanguage.languageContext:Lcom/oracle/truffle/js/runtime/JSContext;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.js.runtime.JSContext
            areturn
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;

  public boolean bindMemberFunctions();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
         0: .line 503
            aload 0 /* this */
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.getJSContext:()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.bindMemberFunctions:()Z
            ireturn
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;

  public int getAsyncStackDepth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
         0: .line 507
            aload 0 /* this */
            invokespecial com.oracle.truffle.js.runtime.AbstractJavaScriptLanguage.getAsynchronousStackDepth:()I
            ireturn
        end local 0 // com.oracle.truffle.js.lang.JavaScriptLanguage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/js/lang/JavaScriptLanguage;

  private static void ensureErrorClassesInitialized();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 521
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tInitErrorObjectNodeFactory cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object createContext(com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.createContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/js/runtime/JSRealm;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected boolean patchContext(java.lang.Object, com.oracle.truffle.api.TruffleLanguage$Env);
    descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.js.runtime.JSRealm
            aload 2
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.patchContext:(Lcom/oracle/truffle/js/runtime/JSRealm;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object getLanguageView(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.js.runtime.JSRealm
            aload 2
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.getLanguageView:(Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void initializeContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.initializeContext:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  protected boolean isVisible(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.js.runtime.JSRealm
            aload 2
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.isVisible:(Lcom/oracle/truffle/js/runtime/JSRealm;Ljava/lang/Object;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void disposeContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.disposeContext:(Lcom/oracle/truffle/js/runtime/JSRealm;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object getScope(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.oracle.truffle.js.runtime.JSRealm
            invokevirtual com.oracle.truffle.js.lang.JavaScriptLanguage.getScope:(Lcom/oracle/truffle/js/runtime/JSRealm;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "JavaScriptLanguage.java"
NestMembers:
  com.oracle.truffle.js.lang.JavaScriptLanguage$1  com.oracle.truffle.js.lang.JavaScriptLanguage$2
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final ContextPolicy = com.oracle.truffle.api.TruffleLanguage$ContextPolicy of com.oracle.truffle.api.TruffleLanguage
  public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
  public final InlineParsingRequest = com.oracle.truffle.api.TruffleLanguage$InlineParsingRequest of com.oracle.truffle.api.TruffleLanguage
  public final ParsingRequest = com.oracle.truffle.api.TruffleLanguage$ParsingRequest of com.oracle.truffle.api.TruffleLanguage
  public abstract Registration = com.oracle.truffle.api.TruffleLanguage$Registration of com.oracle.truffle.api.TruffleLanguage
  com.oracle.truffle.js.lang.JavaScriptLanguage$1
  com.oracle.truffle.js.lang.JavaScriptLanguage$2
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.instrumentation.ProvidedTags(value = {Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$CallTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$ReadVariableTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$WriteVariableTag;, Lcom/oracle/truffle/api/instrumentation/StandardTags$TryBlockTag;, Lcom/oracle/truffle/api/debug/DebuggerTags$AlwaysHalt;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ObjectAllocationTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$BinaryOperationTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$UnaryOperationTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$WriteVariableTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadElementTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$WriteElementTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadPropertyTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$WritePropertyTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ReadVariableTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$LiteralTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$FunctionCallTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$BuiltinRootTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$EvalCallTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowRootTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBlockTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$ControlFlowBranchTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$DeclareTag;, Lcom/oracle/truffle/js/nodes/instrumentation/JSTags$InputNodeTag;})
      com.oracle.truffle.api.TruffleLanguage$Registration(id = "js", name = "JavaScript", implementationName = "GraalVM JavaScript", characterMimeTypes = {"application/javascript", "text/javascript", "application/javascript+module"}, defaultMimeType = "application/javascript", contextPolicy = com.oracle.truffle.api.TruffleLanguage$ContextPolicy.SHARED:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;, dependentLanguages = {"regex"}, fileTypeDetectors = {Lcom/oracle/truffle/js/lang/JSFileTypeDetector;})