public final class jdk.nashorn.internal.runtime.Source implements jdk.nashorn.internal.runtime.logging.Loggable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.runtime.Source
  super_class: java.lang.Object
{
  private static final int BUF_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private static final jdk.nashorn.internal.runtime.Source$Cache CACHE;
    descriptor: Ljdk/nashorn/internal/runtime/Source$Cache;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Base64$Encoder BASE64;
    descriptor: Ljava/util/Base64$Encoder;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String base;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.nashorn.internal.runtime.Source$Data data;
    descriptor: Ljdk/nashorn/internal/runtime/Source$Data;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int hash;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private volatile byte[] digest;
    descriptor: [B
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private java.lang.String explicitURL;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 66
            new jdk.nashorn.internal.runtime.Source$Cache
            dup
            invokespecial jdk.nashorn.internal.runtime.Source$Cache.<init>:()V
            putstatic jdk.nashorn.internal.runtime.Source.CACHE:Ljdk/nashorn/internal/runtime/Source$Cache;
         1: .line 69
            invokestatic java.util.Base64.getUrlEncoder:()Ljava/util/Base64$Encoder;
            invokevirtual java.util.Base64$Encoder.withoutPadding:()Ljava/util/Base64$Encoder;
            putstatic jdk.nashorn.internal.runtime.Source.BASE64:Ljava/util/Base64$Encoder;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String, java.lang.String, jdk.nashorn.internal.runtime.Source$Data);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljdk/nashorn/internal/runtime/Source$Data;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String base
        start local 3 // jdk.nashorn.internal.runtime.Source$Data data
         0: .line 98
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 99
            aload 0 /* this */
            aload 1 /* name */
            putfield jdk.nashorn.internal.runtime.Source.name:Ljava/lang/String;
         2: .line 100
            aload 0 /* this */
            aload 2 /* base */
            putfield jdk.nashorn.internal.runtime.Source.base:Ljava/lang/String;
         3: .line 101
            aload 0 /* this */
            aload 3 /* data */
            putfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
         4: .line 102
            return
        end local 3 // jdk.nashorn.internal.runtime.Source$Data data
        end local 2 // java.lang.String base
        end local 1 // java.lang.String name
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/nashorn/internal/runtime/Source;
            0    5     1  name  Ljava/lang/String;
            0    5     2  base  Ljava/lang/String;
            0    5     3  data  Ljdk/nashorn/internal/runtime/Source$Data;
    MethodParameters:
      Name  Flags
      name  final
      base  final
      data  final

  private static synchronized jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, java.lang.String, jdk.nashorn.internal.runtime.Source$URLData);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljdk/nashorn/internal/runtime/Source$URLData;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.String name
        start local 1 // java.lang.String base
        start local 2 // jdk.nashorn.internal.runtime.Source$URLData data
         0: .line 106
            new jdk.nashorn.internal.runtime.Source
            dup
            aload 0 /* name */
            aload 1 /* base */
            aload 2 /* data */
            invokespecial jdk.nashorn.internal.runtime.Source.<init>:(Ljava/lang/String;Ljava/lang/String;Ljdk/nashorn/internal/runtime/Source$Data;)V
            astore 3 /* newSource */
        start local 3 // jdk.nashorn.internal.runtime.Source newSource
         1: .line 107
            getstatic jdk.nashorn.internal.runtime.Source.CACHE:Ljdk/nashorn/internal/runtime/Source$Cache;
            aload 3 /* newSource */
            invokevirtual jdk.nashorn.internal.runtime.Source$Cache.get:(Ljdk/nashorn/internal/runtime/Source;)Ljdk/nashorn/internal/runtime/Source;
            astore 4 /* existingSource */
        start local 4 // jdk.nashorn.internal.runtime.Source existingSource
         2: .line 108
            aload 4 /* existingSource */
            ifnull 6
         3: .line 110
            aload 2 /* data */
            invokevirtual jdk.nashorn.internal.runtime.Source$URLData.checkPermissionAndClose:()V
         4: .line 111
            aload 4 /* existingSource */
         5: areturn
         6: .line 115
      StackMap locals: jdk.nashorn.internal.runtime.Source jdk.nashorn.internal.runtime.Source
      StackMap stack:
            aload 2 /* data */
            invokevirtual jdk.nashorn.internal.runtime.Source$URLData.load:()V
         7: .line 116
            getstatic jdk.nashorn.internal.runtime.Source.CACHE:Ljdk/nashorn/internal/runtime/Source$Cache;
            aload 3 /* newSource */
            aload 3 /* newSource */
            invokevirtual jdk.nashorn.internal.runtime.Source$Cache.put:(Ljdk/nashorn/internal/runtime/Source;Ljdk/nashorn/internal/runtime/Source;)V
         8: .line 118
            aload 3 /* newSource */
         9: areturn
        end local 4 // jdk.nashorn.internal.runtime.Source existingSource
        end local 3 // jdk.nashorn.internal.runtime.Source newSource
        10: .line 119
      StackMap locals: java.lang.String java.lang.String jdk.nashorn.internal.runtime.Source$URLData
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
        11: .line 120
            aload 3 /* e */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            astore 4 /* cause */
        start local 4 // java.lang.Throwable cause
        12: .line 121
            aload 4 /* cause */
            instanceof java.io.IOException
            ifeq 14
        13: .line 122
            aload 4 /* cause */
            checkcast java.io.IOException
            athrow
        14: .line 124
      StackMap locals: java.lang.RuntimeException java.lang.Throwable
      StackMap stack:
            aload 3 /* e */
            athrow
        end local 4 // java.lang.Throwable cause
        end local 3 // java.lang.RuntimeException e
        end local 2 // jdk.nashorn.internal.runtime.Source$URLData data
        end local 1 // java.lang.String base
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            name  Ljava/lang/String;
            0   15     1            base  Ljava/lang/String;
            0   15     2            data  Ljdk/nashorn/internal/runtime/Source$URLData;
            1   10     3       newSource  Ljdk/nashorn/internal/runtime/Source;
            2   10     4  existingSource  Ljdk/nashorn/internal/runtime/Source;
           11   15     3               e  Ljava/lang/RuntimeException;
           12   15     4           cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     5      10  Class java.lang.RuntimeException
           6     9      10  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final
      base  final
      data  final

  jdk.nashorn.internal.runtime.DebuggerSupport$SourceInfo getSourceInfo();
    descriptor: ()Ljdk/nashorn/internal/runtime/DebuggerSupport$SourceInfo;
    flags: (0x0000) 
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 142
            new jdk.nashorn.internal.runtime.DebuggerSupport$SourceInfo
            dup
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokevirtual java.lang.Object.hashCode:()I
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokeinterface jdk.nashorn.internal.runtime.Source$Data.url:()Ljava/net/URL;
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokeinterface jdk.nashorn.internal.runtime.Source$Data.array:()[C
            invokespecial jdk.nashorn.internal.runtime.DebuggerSupport$SourceInfo.<init>:(Ljava/lang/String;ILjava/net/URL;[C)V
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  private static void debug(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Object[] msg
         0: .line 390
            invokestatic jdk.nashorn.internal.runtime.Source.getLoggerStatic:()Ljdk/nashorn/internal/runtime/logging/DebugLogger;
            astore 1 /* logger */
        start local 1 // jdk.nashorn.internal.runtime.logging.DebugLogger logger
         1: .line 391
            aload 1 /* logger */
            ifnull 3
         2: .line 392
            aload 1 /* logger */
            aload 0 /* msg */
            invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.info:([Ljava/lang/Object;)V
         3: .line 394
      StackMap locals: jdk.nashorn.internal.runtime.logging.DebugLogger
      StackMap stack:
            return
        end local 1 // jdk.nashorn.internal.runtime.logging.DebugLogger logger
        end local 0 // java.lang.Object[] msg
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0     msg  [Ljava/lang/Object;
            1    4     1  logger  Ljdk/nashorn/internal/runtime/logging/DebugLogger;
    MethodParameters:
      Name  Flags
      msg   final

  private char[] data();
    descriptor: ()[C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 397
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokeinterface jdk.nashorn.internal.runtime.Source$Data.array:()[C
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, char[], boolean);
    descriptor: (Ljava/lang/String;[CZ)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // java.lang.String name
        start local 1 // char[] content
        start local 2 // boolean isEval
         0: .line 409
            new jdk.nashorn.internal.runtime.Source
            dup
            aload 0 /* name */
            aload 0 /* name */
            invokestatic jdk.nashorn.internal.runtime.Source.baseName:(Ljava/lang/String;)Ljava/lang/String;
            new jdk.nashorn.internal.runtime.Source$RawData
            dup
            aload 1 /* content */
            iload 2 /* isEval */
            invokespecial jdk.nashorn.internal.runtime.Source$RawData.<init>:([CZ)V
            invokespecial jdk.nashorn.internal.runtime.Source.<init>:(Ljava/lang/String;Ljava/lang/String;Ljdk/nashorn/internal/runtime/Source$Data;)V
            areturn
        end local 2 // boolean isEval
        end local 1 // char[] content
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     name  Ljava/lang/String;
            0    1     1  content  [C
            0    1     2   isEval  Z
    MethodParameters:
         Name  Flags
      name     final
      content  final
      isEval   final

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, char[]);
    descriptor: (Ljava/lang/String;[C)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // char[] content
         0: .line 421
            aload 0 /* name */
            aload 1 /* content */
            iconst_0
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;[CZ)Ljdk/nashorn/internal/runtime/Source;
            areturn
        end local 1 // char[] content
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     name  Ljava/lang/String;
            0    1     1  content  [C
    MethodParameters:
         Name  Flags
      name     final
      content  final

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // java.lang.String name
        start local 1 // java.lang.String content
        start local 2 // boolean isEval
         0: .line 433
            new jdk.nashorn.internal.runtime.Source
            dup
            aload 0 /* name */
            aload 0 /* name */
            invokestatic jdk.nashorn.internal.runtime.Source.baseName:(Ljava/lang/String;)Ljava/lang/String;
            new jdk.nashorn.internal.runtime.Source$RawData
            dup
            aload 1 /* content */
            iload 2 /* isEval */
            invokespecial jdk.nashorn.internal.runtime.Source$RawData.<init>:(Ljava/lang/String;Z)V
            invokespecial jdk.nashorn.internal.runtime.Source.<init>:(Ljava/lang/String;Ljava/lang/String;Ljdk/nashorn/internal/runtime/Source$Data;)V
            areturn
        end local 2 // boolean isEval
        end local 1 // java.lang.String content
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     name  Ljava/lang/String;
            0    1     1  content  Ljava/lang/String;
            0    1     2   isEval  Z
    MethodParameters:
         Name  Flags
      name     final
      content  final
      isEval   final

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.String content
         0: .line 444
            aload 0 /* name */
            aload 1 /* content */
            iconst_0
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/lang/String;Z)Ljdk/nashorn/internal/runtime/Source;
            areturn
        end local 1 // java.lang.String content
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     name  Ljava/lang/String;
            0    1     1  content  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      name     final
      content  final

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, java.net.URL);
    descriptor: (Ljava/lang/String;Ljava/net/URL;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.net.URL url
         0: .line 458
            aload 0 /* name */
            aload 1 /* url */
            aconst_null
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/net/URL;Ljava/nio/charset/Charset;)Ljdk/nashorn/internal/runtime/Source;
            areturn
        end local 1 // java.net.URL url
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
            0    1     1   url  Ljava/net/URL;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final
      url   final

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, java.net.URL, java.nio.charset.Charset);
    descriptor: (Ljava/lang/String;Ljava/net/URL;Ljava/nio/charset/Charset;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.lang.String name
        start local 1 // java.net.URL url
        start local 2 // java.nio.charset.Charset cs
         0: .line 473
            aload 0 /* name */
            aload 1 /* url */
            invokestatic jdk.nashorn.internal.runtime.Source.baseURL:(Ljava/net/URL;)Ljava/lang/String;
            new jdk.nashorn.internal.runtime.Source$URLData
            dup
            aload 1 /* url */
            aload 2 /* cs */
            invokespecial jdk.nashorn.internal.runtime.Source$URLData.<init>:(Ljava/net/URL;Ljava/nio/charset/Charset;)V
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/lang/String;Ljdk/nashorn/internal/runtime/Source$URLData;)Ljdk/nashorn/internal/runtime/Source;
            areturn
        end local 2 // java.nio.charset.Charset cs
        end local 1 // java.net.URL url
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
            0    1     1   url  Ljava/net/URL;
            0    1     2    cs  Ljava/nio/charset/Charset;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final
      url   final
      cs    final

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, java.io.File);
    descriptor: (Ljava/lang/String;Ljava/io/File;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.io.File file
         0: .line 487
            aload 0 /* name */
            aload 1 /* file */
            aconst_null
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/io/File;Ljava/nio/charset/Charset;)Ljdk/nashorn/internal/runtime/Source;
            areturn
        end local 1 // java.io.File file
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
            0    1     1  file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final
      file  final

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, java.nio.file.Path);
    descriptor: (Ljava/lang/String;Ljava/nio/file/Path;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.nio.file.Path path
         0: .line 501
            aconst_null
            astore 2 /* file */
        start local 2 // java.io.File file
         1: .line 503
            aload 1 /* path */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            astore 2 /* file */
         2: .line 504
            goto 4
      StackMap locals: java.lang.String java.nio.file.Path java.io.File
      StackMap stack: java.lang.UnsupportedOperationException
         3: pop
         4: .line 507
      StackMap locals:
      StackMap stack:
            aload 2 /* file */
            ifnull 6
         5: .line 508
            aload 0 /* name */
            aload 2 /* file */
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/io/File;)Ljdk/nashorn/internal/runtime/Source;
            areturn
         6: .line 510
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            aload 1 /* path */
            invokestatic java.nio.file.Files.newBufferedReader:(Ljava/nio/file/Path;)Ljava/io/BufferedReader;
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/io/Reader;)Ljdk/nashorn/internal/runtime/Source;
            areturn
        end local 2 // java.io.File file
        end local 1 // java.nio.file.Path path
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  name  Ljava/lang/String;
            0    7     1  path  Ljava/nio/file/Path;
            1    7     2  file  Ljava/io/File;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.UnsupportedOperationException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final
      path  final

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, java.io.File, java.nio.charset.Charset);
    descriptor: (Ljava/lang/String;Ljava/io/File;Ljava/nio/charset/Charset;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // java.lang.String name
        start local 1 // java.io.File file
        start local 2 // java.nio.charset.Charset cs
         0: .line 526
            aload 1 /* file */
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            astore 3 /* absFile */
        start local 3 // java.io.File absFile
         1: .line 527
            aload 0 /* name */
            aload 3 /* absFile */
            aconst_null
            invokestatic jdk.nashorn.internal.runtime.Source.dirName:(Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;
            new jdk.nashorn.internal.runtime.Source$FileData
            dup
            aload 1 /* file */
            aload 2 /* cs */
            invokespecial jdk.nashorn.internal.runtime.Source$FileData.<init>:(Ljava/io/File;Ljava/nio/charset/Charset;)V
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/lang/String;Ljdk/nashorn/internal/runtime/Source$URLData;)Ljdk/nashorn/internal/runtime/Source;
            areturn
        end local 3 // java.io.File absFile
        end local 2 // java.nio.charset.Charset cs
        end local 1 // java.io.File file
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     name  Ljava/lang/String;
            0    2     1     file  Ljava/io/File;
            0    2     2       cs  Ljava/nio/charset/Charset;
            1    2     3  absFile  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  final
      file  final
      cs    final

  public static jdk.nashorn.internal.runtime.Source sourceFor(java.lang.String, java.io.Reader);
    descriptor: (Ljava/lang/String;Ljava/io/Reader;)Ljdk/nashorn/internal/runtime/Source;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.io.Reader reader
         0: .line 542
            aload 1 /* reader */
            instanceof jdk.nashorn.api.scripting.URLReader
            ifeq 3
         1: .line 543
            aload 1 /* reader */
            checkcast jdk.nashorn.api.scripting.URLReader
            astore 2 /* urlReader */
        start local 2 // jdk.nashorn.api.scripting.URLReader urlReader
         2: .line 544
            aload 0 /* name */
            aload 2 /* urlReader */
            invokevirtual jdk.nashorn.api.scripting.URLReader.getURL:()Ljava/net/URL;
            aload 2 /* urlReader */
            invokevirtual jdk.nashorn.api.scripting.URLReader.getCharset:()Ljava/nio/charset/Charset;
            invokestatic jdk.nashorn.internal.runtime.Source.sourceFor:(Ljava/lang/String;Ljava/net/URL;Ljava/nio/charset/Charset;)Ljdk/nashorn/internal/runtime/Source;
            areturn
        end local 2 // jdk.nashorn.api.scripting.URLReader urlReader
         3: .line 546
      StackMap locals:
      StackMap stack:
            new jdk.nashorn.internal.runtime.Source
            dup
            aload 0 /* name */
            aload 0 /* name */
            invokestatic jdk.nashorn.internal.runtime.Source.baseName:(Ljava/lang/String;)Ljava/lang/String;
            new jdk.nashorn.internal.runtime.Source$RawData
            dup
            aload 1 /* reader */
            invokespecial jdk.nashorn.internal.runtime.Source$RawData.<init>:(Ljava/io/Reader;)V
            invokespecial jdk.nashorn.internal.runtime.Source.<init>:(Ljava/lang/String;Ljava/lang/String;Ljdk/nashorn/internal/runtime/Source$Data;)V
            areturn
        end local 1 // java.io.Reader reader
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       name  Ljava/lang/String;
            0    4     1     reader  Ljava/io/Reader;
            2    3     2  urlReader  Ljdk/nashorn/api/scripting/URLReader;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      name    final
      reader  final

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // java.lang.Object obj
         0: .line 551
            aload 0 /* this */
            aload 1 /* obj */
            if_acmpne 2
         1: .line 552
            iconst_1
            ireturn
         2: .line 554
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof jdk.nashorn.internal.runtime.Source
            ifne 4
         3: .line 555
            iconst_0
            ireturn
         4: .line 557
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast jdk.nashorn.internal.runtime.Source
            astore 2 /* other */
        start local 2 // jdk.nashorn.internal.runtime.Source other
         5: .line 558
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.name:Ljava/lang/String;
            aload 2 /* other */
            getfield jdk.nashorn.internal.runtime.Source.name:Ljava/lang/String;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 6
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            aload 2 /* other */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
            iconst_1
            ireturn
      StackMap locals: jdk.nashorn.internal.runtime.Source
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // jdk.nashorn.internal.runtime.Source other
        end local 1 // java.lang.Object obj
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Ljdk/nashorn/internal/runtime/Source;
            0    7     1    obj  Ljava/lang/Object;
            5    7     2  other  Ljdk/nashorn/internal/runtime/Source;
    MethodParameters:
      Name  Flags
      obj   final

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 563
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.hash:I
            istore 1 /* h */
        start local 1 // int h
         1: .line 564
            iload 1 /* h */
            ifne 3
         2: .line 565
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokevirtual java.lang.Object.hashCode:()I
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.name:Ljava/lang/String;
            invokestatic java.util.Objects.hashCode:(Ljava/lang/Object;)I
            ixor
            dup_x1
            putfield jdk.nashorn.internal.runtime.Source.hash:I
            istore 1 /* h */
         3: .line 567
      StackMap locals: int
      StackMap stack:
            iload 1 /* h */
            ireturn
        end local 1 // int h
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/nashorn/internal/runtime/Source;
            1    4     1     h  I

  public java.lang.String getString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 575
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 583
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.name:Ljava/lang/String;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  public long getLastModified();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 591
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokeinterface jdk.nashorn.internal.runtime.Source$Data.lastModified:()J
            lreturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  public java.lang.String getBase();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 599
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.base:Ljava/lang/String;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  public java.lang.String getString(int, int);
    descriptor: (II)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // int start
        start local 2 // int len
         0: .line 609
            new java.lang.String
            dup
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.data:()[C
            iload 1 /* start */
            iload 2 /* len */
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 2 // int len
        end local 1 // int start
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/nashorn/internal/runtime/Source;
            0    1     1  start  I
            0    1     2    len  I
    MethodParameters:
       Name  Flags
      start  final
      len    final

  public java.lang.String getString(long);
    descriptor: (J)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // long token
         0: .line 618
            lload 1 /* token */
            invokestatic jdk.nashorn.internal.parser.Token.descPosition:(J)I
            istore 3 /* start */
        start local 3 // int start
         1: .line 619
            lload 1 /* token */
            invokestatic jdk.nashorn.internal.parser.Token.descLength:(J)I
            istore 4 /* len */
        start local 4 // int len
         2: .line 620
            new java.lang.String
            dup
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.data:()[C
            iload 3 /* start */
            iload 4 /* len */
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 4 // int len
        end local 3 // int start
        end local 1 // long token
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/nashorn/internal/runtime/Source;
            0    3     1  token  J
            1    3     3  start  I
            2    3     4    len  I
    MethodParameters:
       Name  Flags
      token  final

  public java.net.URL getURL();
    descriptor: ()Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 630
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokeinterface jdk.nashorn.internal.runtime.Source$Data.url:()Ljava/net/URL;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  public java.lang.String getExplicitURL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 638
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.explicitURL:Ljava/lang/String;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  public void setExplicitURL(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // java.lang.String explicitURL
         0: .line 646
            aload 0 /* this */
            aload 1 /* explicitURL */
            putfield jdk.nashorn.internal.runtime.Source.explicitURL:Ljava/lang/String;
         1: .line 647
            return
        end local 1 // java.lang.String explicitURL
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljdk/nashorn/internal/runtime/Source;
            0    2     1  explicitURL  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      explicitURL  final

  public boolean isEvalCode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 655
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokeinterface jdk.nashorn.internal.runtime.Source$Data.isEvalCode:()Z
            ireturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  private int findBOLN(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // int position
         0: .line 664
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.data:()[C
            astore 2 /* d */
        start local 2 // char[] d
         1: .line 665
            iload 1 /* position */
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 666
      StackMap locals: char[] int
      StackMap stack:
            aload 2 /* d */
            iload 3 /* i */
            caload
            istore 4 /* ch */
        start local 4 // char ch
         4: .line 668
            iload 4 /* ch */
            bipush 10
            if_icmpeq 5
            iload 4 /* ch */
            bipush 13
            if_icmpne 6
         5: .line 669
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            iconst_1
            iadd
            ireturn
        end local 4 // char ch
         6: .line 665
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            ifgt 3
        end local 3 // int i
         8: .line 673
            iconst_0
            ireturn
        end local 2 // char[] d
        end local 1 // int position
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Ljdk/nashorn/internal/runtime/Source;
            0    9     1  position  I
            1    9     2         d  [C
            2    8     3         i  I
            4    6     4        ch  C
    MethodParameters:
          Name  Flags
      position  final

  private int findEOLN(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // int position
         0: .line 682
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.data:()[C
            astore 2 /* d */
        start local 2 // char[] d
         1: .line 683
            aload 2 /* d */
            arraylength
            istore 3 /* length */
        start local 3 // int length
         2: .line 684
            iload 1 /* position */
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 685
      StackMap locals: char[] int int
      StackMap stack:
            aload 2 /* d */
            iload 4 /* i */
            caload
            istore 5 /* ch */
        start local 5 // char ch
         5: .line 687
            iload 5 /* ch */
            bipush 10
            if_icmpeq 6
            iload 5 /* ch */
            bipush 13
            if_icmpne 7
         6: .line 688
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            iconst_1
            isub
            ireturn
        end local 5 // char ch
         7: .line 684
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 3 /* length */
            if_icmplt 4
        end local 4 // int i
         9: .line 692
            iload 3 /* length */
            iconst_1
            isub
            ireturn
        end local 3 // int length
        end local 2 // char[] d
        end local 1 // int position
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Ljdk/nashorn/internal/runtime/Source;
            0   10     1  position  I
            1   10     2         d  [C
            2   10     3    length  I
            3    9     4         i  I
            5    7     5        ch  C
    MethodParameters:
          Name  Flags
      position  final

  public int getLine(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // int position
         0: .line 705
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.data:()[C
            astore 2 /* d */
        start local 2 // char[] d
         1: .line 707
            iconst_1
            istore 3 /* line */
        start local 3 // int line
         2: .line 709
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 710
      StackMap locals: char[] int int
      StackMap stack:
            aload 2 /* d */
            iload 4 /* i */
            caload
            istore 5 /* ch */
        start local 5 // char ch
         5: .line 712
            iload 5 /* ch */
            bipush 10
            if_icmpne 7
         6: .line 713
            iinc 3 /* line */ 1
        end local 5 // char ch
         7: .line 709
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 1 /* position */
            if_icmplt 4
        end local 4 // int i
         9: .line 717
            iload 3 /* line */
            ireturn
        end local 3 // int line
        end local 2 // char[] d
        end local 1 // int position
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Ljdk/nashorn/internal/runtime/Source;
            0   10     1  position  I
            1   10     2         d  [C
            2   10     3      line  I
            3    9     4         i  I
            5    7     5        ch  C
    MethodParameters:
          Name  Flags
      position  final

  public int getColumn(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // int position
         0: .line 727
            iload 1 /* position */
            aload 0 /* this */
            iload 1 /* position */
            invokevirtual jdk.nashorn.internal.runtime.Source.findBOLN:(I)I
            isub
            ireturn
        end local 1 // int position
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljdk/nashorn/internal/runtime/Source;
            0    1     1  position  I
    MethodParameters:
          Name  Flags
      position  final

  public java.lang.String getSourceLine(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // int position
         0: .line 737
            aload 0 /* this */
            iload 1 /* position */
            invokevirtual jdk.nashorn.internal.runtime.Source.findBOLN:(I)I
            istore 2 /* first */
        start local 2 // int first
         1: .line 739
            aload 0 /* this */
            iload 1 /* position */
            invokevirtual jdk.nashorn.internal.runtime.Source.findEOLN:(I)I
            istore 3 /* last */
        start local 3 // int last
         2: .line 741
            new java.lang.String
            dup
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.data:()[C
            iload 2 /* first */
            iload 3 /* last */
            iload 2 /* first */
            isub
            iconst_1
            iadd
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 3 // int last
        end local 2 // int first
        end local 1 // int position
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljdk/nashorn/internal/runtime/Source;
            0    3     1  position  I
            1    3     2     first  I
            2    3     3      last  I
    MethodParameters:
          Name  Flags
      position  final

  public char[] getContent();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 754
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.data:()[C
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  public int getLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 762
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokeinterface jdk.nashorn.internal.runtime.Source$Data.length:()I
            ireturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  public static char[] readFully(java.io.Reader);
    descriptor: (Ljava/io/Reader;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.io.Reader reader
         0: .line 773
            sipush 8192
            newarray 5
            astore 1 /* arr */
        start local 1 // char[] arr
         1: .line 774
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         2: .line 778
            goto 4
        start local 3 // int numChars
         3: .line 779
      StackMap locals: char[] java.lang.StringBuilder int
      StackMap stack:
            aload 2 /* sb */
            aload 1 /* arr */
            iconst_0
            iload 3 /* numChars */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        end local 3 // int numChars
         4: .line 778
      StackMap locals:
      StackMap stack:
            aload 0 /* reader */
            aload 1 /* arr */
            iconst_0
            aload 1 /* arr */
            arraylength
            invokevirtual java.io.Reader.read:([CII)I
            dup
            istore 3 /* numChars */
        start local 3 // int numChars
         5: ifgt 3
        end local 3 // int numChars
         6: .line 781
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 4
         8: .line 782
            aload 0 /* reader */
            invokevirtual java.io.Reader.close:()V
         9: .line 783
            aload 4
            athrow
        10: .line 782
      StackMap locals:
      StackMap stack:
            aload 0 /* reader */
            invokevirtual java.io.Reader.close:()V
        11: .line 785
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // char[] arr
        end local 0 // java.io.Reader reader
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0    reader  Ljava/io/Reader;
            1   12     1       arr  [C
            2   12     2        sb  Ljava/lang/StringBuilder;
            3    4     3  numChars  I
            5    6     3  numChars  I
      Exception table:
        from    to  target  type
           2     7       7  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      reader  final

  public static char[] readFully(java.io.File);
    descriptor: (Ljava/io/File;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.io.File file
         0: .line 796
            aload 0 /* file */
            invokevirtual java.io.File.isFile:()Z
            ifne 2
         1: .line 797
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not a file"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 799
      StackMap locals:
      StackMap stack:
            aload 0 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            invokestatic jdk.nashorn.internal.runtime.Source.byteToCharArray:([B)[C
            areturn
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  final

  public static char[] readFully(java.io.File, java.nio.charset.Charset);
    descriptor: (Ljava/io/File;Ljava/nio/charset/Charset;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.io.File file
        start local 1 // java.nio.charset.Charset cs
         0: .line 811
            aload 0 /* file */
            invokevirtual java.io.File.isFile:()Z
            ifne 2
         1: .line 812
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not a file"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 815
      StackMap locals:
      StackMap stack:
            aload 0 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            astore 2 /* buf */
        start local 2 // byte[] buf
         3: .line 816
            aload 1 /* cs */
            ifnull 4
            new java.lang.String
            dup
            aload 2 /* buf */
            aload 1 /* cs */
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokevirtual java.lang.String.toCharArray:()[C
            goto 5
      StackMap locals: byte[]
      StackMap stack:
         4: aload 2 /* buf */
            invokestatic jdk.nashorn.internal.runtime.Source.byteToCharArray:([B)[C
      StackMap locals:
      StackMap stack: char[]
         5: areturn
        end local 2 // byte[] buf
        end local 1 // java.nio.charset.Charset cs
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  file  Ljava/io/File;
            0    6     1    cs  Ljava/nio/charset/Charset;
            3    6     2   buf  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  final
      cs    final

  public static char[] readFully(java.net.URL);
    descriptor: (Ljava/net/URL;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.URL url
         0: .line 827
            aload 0 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            invokestatic jdk.nashorn.internal.runtime.Source.readFully:(Ljava/io/InputStream;)[C
            areturn
        end local 0 // java.net.URL url
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   url  Ljava/net/URL;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      url   final

  public static char[] readFully(java.net.URL, java.nio.charset.Charset);
    descriptor: (Ljava/net/URL;Ljava/nio/charset/Charset;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.net.URL url
        start local 1 // java.nio.charset.Charset cs
         0: .line 839
            aload 0 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            aload 1 /* cs */
            invokestatic jdk.nashorn.internal.runtime.Source.readFully:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)[C
            areturn
        end local 1 // java.nio.charset.Charset cs
        end local 0 // java.net.URL url
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   url  Ljava/net/URL;
            0    1     1    cs  Ljava/nio/charset/Charset;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      url   final
      cs    final

  public java.lang.String getDigest();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 848
            new java.lang.String
            dup
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.getDigestBytes:()[B
            getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  private byte[] getDigestBytes();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 852
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.digest:[B
            astore 1 /* ldigest */
        start local 1 // byte[] ldigest
         1: .line 853
            aload 1 /* ldigest */
            ifnonnull 21
         2: .line 854
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.data:()[C
            astore 2 /* content */
        start local 2 // char[] content
         3: .line 855
            aload 2 /* content */
            arraylength
            iconst_2
            imul
            newarray 8
            astore 3 /* bytes */
        start local 3 // byte[] bytes
         4: .line 857
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 9
         6: .line 858
      StackMap locals: jdk.nashorn.internal.runtime.Source byte[] char[] byte[] int
      StackMap stack:
            aload 3 /* bytes */
            iload 4 /* i */
            iconst_2
            imul
            aload 2 /* content */
            iload 4 /* i */
            caload
            sipush 255
            iand
            i2b
            bastore
         7: .line 859
            aload 3 /* bytes */
            iload 4 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            aload 2 /* content */
            iload 4 /* i */
            caload
            ldc 65280
            iand
            bipush 8
            ishr
            i2b
            bastore
         8: .line 857
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 2 /* content */
            arraylength
            if_icmplt 6
        end local 4 // int i
        10: .line 863
            ldc "SHA-1"
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 4 /* md */
        start local 4 // java.security.MessageDigest md
        11: .line 864
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.name:Ljava/lang/String;
            ifnull 13
        12: .line 865
            aload 4 /* md */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.name:Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual java.security.MessageDigest.update:([B)V
        13: .line 867
      StackMap locals: jdk.nashorn.internal.runtime.Source byte[] char[] byte[] java.security.MessageDigest
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.base:Ljava/lang/String;
            ifnull 15
        14: .line 868
            aload 4 /* md */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.base:Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual java.security.MessageDigest.update:([B)V
        15: .line 870
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.getURL:()Ljava/net/URL;
            ifnull 17
        16: .line 871
            aload 4 /* md */
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.getURL:()Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual java.security.MessageDigest.update:([B)V
        17: .line 873
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic jdk.nashorn.internal.runtime.Source.BASE64:Ljava/util/Base64$Encoder;
            aload 4 /* md */
            aload 3 /* bytes */
            invokevirtual java.security.MessageDigest.digest:([B)[B
            invokevirtual java.util.Base64$Encoder.encode:([B)[B
            dup
            astore 1 /* ldigest */
            putfield jdk.nashorn.internal.runtime.Source.digest:[B
        end local 4 // java.security.MessageDigest md
        18: .line 874
            goto 21
      StackMap locals: jdk.nashorn.internal.runtime.Source byte[] char[] byte[]
      StackMap stack: java.security.NoSuchAlgorithmException
        19: astore 4 /* e */
        start local 4 // java.security.NoSuchAlgorithmException e
        20: .line 875
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.NoSuchAlgorithmException e
        end local 3 // byte[] bytes
        end local 2 // char[] content
        21: .line 878
      StackMap locals:
      StackMap stack:
            aload 1 /* ldigest */
            areturn
        end local 1 // byte[] ldigest
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Ljdk/nashorn/internal/runtime/Source;
            1   22     1  ldigest  [B
            3   21     2  content  [C
            4   21     3    bytes  [B
            5   10     4        i  I
           11   18     4       md  Ljava/security/MessageDigest;
           20   21     4        e  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
          10    18      19  Class java.security.NoSuchAlgorithmException

  public static java.lang.String baseURL(java.net.URL);
    descriptor: (Ljava/net/URL;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.net.URL url
         0: .line 888
            aload 0 /* url */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            astore 1 /* uri */
        start local 1 // java.net.URI uri
         1: .line 890
            aload 1 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            ldc "file"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         2: .line 891
            aload 1 /* uri */
            invokestatic java.nio.file.Paths.get:(Ljava/net/URI;)Ljava/nio/file/Path;
            astore 2 /* path */
        start local 2 // java.nio.file.Path path
         3: .line 892
            aload 2 /* path */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            astore 3 /* parent */
        start local 3 // java.nio.file.Path parent
         4: .line 893
            aload 3 /* parent */
            ifnull 5
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 3 /* parent */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 6
      StackMap locals: java.net.URI java.nio.file.Path java.nio.file.Path
      StackMap stack:
         5: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         6: areturn
        end local 3 // java.nio.file.Path parent
        end local 2 // java.nio.file.Path path
         7: .line 895
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.isOpaque:()Z
            ifne 8
            aload 1 /* uri */
            invokevirtual java.net.URI.getPath:()Ljava/lang/String;
            ifnull 8
            aload 1 /* uri */
            invokevirtual java.net.URI.getPath:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 9
         8: .line 896
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         9: .line 898
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            ldc ""
            invokevirtual java.net.URI.resolve:(Ljava/lang/String;)Ljava/net/URI;
            invokevirtual java.net.URI.toString:()Ljava/lang/String;
        10: areturn
        end local 1 // java.net.URI uri
        11: .line 900
      StackMap locals: java.net.URL
      StackMap stack: java.lang.Throwable
            pop
        12: .line 901
            aconst_null
            areturn
        end local 0 // java.net.URL url
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0     url  Ljava/net/URL;
            1   11     1     uri  Ljava/net/URI;
            3    7     2    path  Ljava/nio/file/Path;
            4    7     3  parent  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           0     6      11  Class java.lang.SecurityException
           7     8      11  Class java.lang.SecurityException
           9    10      11  Class java.lang.SecurityException
           0     6      11  Class java.net.URISyntaxException
           7     8      11  Class java.net.URISyntaxException
           9    10      11  Class java.net.URISyntaxException
           0     6      11  Class java.io.IOError
           7     8      11  Class java.io.IOError
           9    10      11  Class java.io.IOError
    MethodParameters:
      Name  Flags
      url   final

  private static java.lang.String dirName(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.File file
        start local 1 // java.lang.String DEFAULT_BASE_NAME
         0: .line 906
            aload 0 /* file */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            astore 2 /* res */
        start local 2 // java.lang.String res
         1: .line 907
            aload 2 /* res */
            ifnull 2
            new java.lang.StringBuilder
            dup
            aload 2 /* res */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 3
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 1 /* DEFAULT_BASE_NAME */
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 2 // java.lang.String res
        end local 1 // java.lang.String DEFAULT_BASE_NAME
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               file  Ljava/io/File;
            0    4     1  DEFAULT_BASE_NAME  Ljava/lang/String;
            1    4     2                res  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      file               final
      DEFAULT_BASE_NAME  final

  private static java.lang.String baseName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String name
         0: .line 912
            aload 0 /* name */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* idx */
        start local 1 // int idx
         1: .line 913
            iload 1 /* idx */
            iconst_m1
            if_icmpne 3
         2: .line 914
            aload 0 /* name */
            bipush 92
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* idx */
         3: .line 916
      StackMap locals: int
      StackMap stack:
            iload 1 /* idx */
            iconst_m1
            if_icmpeq 4
            aload 0 /* name */
            iconst_0
            iload 1 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            goto 5
      StackMap locals:
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         5: areturn
        end local 1 // int idx
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  name  Ljava/lang/String;
            1    6     1   idx  I
    MethodParameters:
      Name  Flags
      name  final

  private static char[] readFully(java.io.InputStream, java.nio.charset.Charset);
    descriptor: (Ljava/io/InputStream;Ljava/nio/charset/Charset;)[C
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.InputStream is
        start local 1 // java.nio.charset.Charset cs
         0: .line 920
            aload 1 /* cs */
            ifnull 1
            new java.lang.String
            dup
            aload 0 /* is */
            invokestatic jdk.nashorn.internal.runtime.Source.readBytes:(Ljava/io/InputStream;)[B
            aload 1 /* cs */
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokevirtual java.lang.String.toCharArray:()[C
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* is */
            invokestatic jdk.nashorn.internal.runtime.Source.readFully:(Ljava/io/InputStream;)[C
      StackMap locals:
      StackMap stack: char[]
         2: areturn
        end local 1 // java.nio.charset.Charset cs
        end local 0 // java.io.InputStream is
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    is  Ljava/io/InputStream;
            0    3     1    cs  Ljava/nio/charset/Charset;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      is    final
      cs    final

  public static char[] readFully(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.InputStream is
         0: .line 924
            aload 0 /* is */
            invokestatic jdk.nashorn.internal.runtime.Source.readBytes:(Ljava/io/InputStream;)[B
            invokestatic jdk.nashorn.internal.runtime.Source.byteToCharArray:([B)[C
            areturn
        end local 0 // java.io.InputStream is
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    is  Ljava/io/InputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      is    final

  private static char[] byteToCharArray(byte[]);
    descriptor: ([B)[C
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // byte[] bytes
         0: .line 928
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            astore 1 /* cs */
        start local 1 // java.nio.charset.Charset cs
         1: .line 929
            iconst_0
            istore 2 /* start */
        start local 2 // int start
         2: .line 931
            aload 0 /* bytes */
            arraylength
            iconst_1
            if_icmple 6
            aload 0 /* bytes */
            iconst_0
            baload
            bipush -2
            if_icmpne 6
            aload 0 /* bytes */
            iconst_1
            baload
            iconst_m1
            if_icmpne 6
         3: .line 932
            iconst_2
            istore 2 /* start */
         4: .line 933
            getstatic java.nio.charset.StandardCharsets.UTF_16BE:Ljava/nio/charset/Charset;
            astore 1 /* cs */
         5: .line 934
            goto 21
      StackMap locals: java.nio.charset.Charset int
      StackMap stack:
         6: aload 0 /* bytes */
            arraylength
            iconst_1
            if_icmple 14
            aload 0 /* bytes */
            iconst_0
            baload
            iconst_m1
            if_icmpne 14
            aload 0 /* bytes */
            iconst_1
            baload
            bipush -2
            if_icmpne 14
         7: .line 935
            aload 0 /* bytes */
            arraylength
            iconst_3
            if_icmple 11
            aload 0 /* bytes */
            iconst_2
            baload
            ifne 11
            aload 0 /* bytes */
            iconst_3
            baload
            ifne 11
         8: .line 936
            iconst_4
            istore 2 /* start */
         9: .line 937
            ldc "UTF-32LE"
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 1 /* cs */
        10: .line 938
            goto 21
        11: .line 939
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 2 /* start */
        12: .line 940
            getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
            astore 1 /* cs */
        13: .line 942
            goto 21
      StackMap locals:
      StackMap stack:
        14: aload 0 /* bytes */
            arraylength
            iconst_2
            if_icmple 18
            aload 0 /* bytes */
            iconst_0
            baload
            bipush -17
            if_icmpne 18
            aload 0 /* bytes */
            iconst_1
            baload
            bipush -69
            if_icmpne 18
            aload 0 /* bytes */
            iconst_2
            baload
            bipush -65
            if_icmpne 18
        15: .line 943
            iconst_3
            istore 2 /* start */
        16: .line 944
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            astore 1 /* cs */
        17: .line 945
            goto 21
      StackMap locals:
      StackMap stack:
        18: aload 0 /* bytes */
            arraylength
            iconst_3
            if_icmple 21
            aload 0 /* bytes */
            iconst_0
            baload
            ifne 21
            aload 0 /* bytes */
            iconst_1
            baload
            ifne 21
            aload 0 /* bytes */
            iconst_2
            baload
            bipush -2
            if_icmpne 21
            aload 0 /* bytes */
            iconst_3
            baload
            iconst_m1
            if_icmpne 21
        19: .line 946
            iconst_4
            istore 2 /* start */
        20: .line 947
            ldc "UTF-32BE"
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 1 /* cs */
        21: .line 950
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            aload 0 /* bytes */
            iload 2 /* start */
            aload 0 /* bytes */
            arraylength
            iload 2 /* start */
            isub
            aload 1 /* cs */
            invokespecial java.lang.String.<init>:([BIILjava/nio/charset/Charset;)V
            invokevirtual java.lang.String.toCharArray:()[C
            areturn
        end local 2 // int start
        end local 1 // java.nio.charset.Charset cs
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0  bytes  [B
            1   22     1     cs  Ljava/nio/charset/Charset;
            2   22     2  start  I
    MethodParameters:
       Name  Flags
      bytes  final

  static byte[] readBytes(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // java.io.InputStream is
         0: .line 954
            sipush 8192
            newarray 8
            astore 1 /* arr */
        start local 1 // byte[] arr
         1: .line 956
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 4 /* buf */
        start local 4 // java.io.ByteArrayOutputStream buf
         3: .line 958
            goto 5
        start local 5 // int numBytes
         4: .line 959
      StackMap locals: java.io.InputStream byte[] java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream int
      StackMap stack:
            aload 4 /* buf */
            aload 1 /* arr */
            iconst_0
            iload 5 /* numBytes */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        end local 5 // int numBytes
         5: .line 958
      StackMap locals:
      StackMap stack:
            aload 0 /* is */
            aload 1 /* arr */
            iconst_0
            aload 1 /* arr */
            arraylength
            invokevirtual java.io.InputStream.read:([BII)I
            dup
            istore 5 /* numBytes */
        start local 5 // int numBytes
         6: ifgt 4
         7: .line 961
            aload 4 /* buf */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 7
         8: .line 962
            aload 4 /* buf */
            ifnull 9
            aload 4 /* buf */
            invokevirtual java.io.ByteArrayOutputStream.close:()V
         9: .line 964
      StackMap locals: java.io.InputStream byte[] java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream int top byte[]
      StackMap stack:
            aload 0 /* is */
            invokevirtual java.io.InputStream.close:()V
        10: .line 961
            aload 7
            areturn
        end local 5 // int numBytes
      StackMap locals: java.io.InputStream byte[] java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream
      StackMap stack: java.lang.Throwable
        11: astore 2
        12: .line 962
            aload 4 /* buf */
            ifnull 13
            aload 4 /* buf */
            invokevirtual java.io.ByteArrayOutputStream.close:()V
        end local 4 // java.io.ByteArrayOutputStream buf
      StackMap locals:
      StackMap stack:
        13: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 3
            aload 2
            ifnonnull 15
            aload 3
            astore 2
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 2
            aload 3
            if_acmpeq 16
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 2
            athrow
        17: .line 963
      StackMap locals: java.io.InputStream byte[]
      StackMap stack: java.lang.Throwable
            astore 6
        18: .line 964
            aload 0 /* is */
            invokevirtual java.io.InputStream.close:()V
        19: .line 965
            aload 6
            athrow
        end local 1 // byte[] arr
        end local 0 // java.io.InputStream is
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0        is  Ljava/io/InputStream;
            1   20     1       arr  [B
            3   13     4       buf  Ljava/io/ByteArrayOutputStream;
            4    5     5  numBytes  I
            6   11     5  numBytes  I
      Exception table:
        from    to  target  type
           3     8      11  any
           2     9      14  any
          11    14      14  any
           1     9      17  any
          11    17      17  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      is    final

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 970
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.getName:()Ljava/lang/String;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  private static java.net.URL getURLFromFile(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/net/URL;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.File file
         0: .line 975
            aload 0 /* file */
            invokevirtual java.io.File.toURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
         1: areturn
         2: .line 976
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         3: .line 977
            aconst_null
            areturn
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  file  Ljava/io/File;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
           0     1       2  Class java.net.MalformedURLException
    MethodParameters:
      Name  Flags
      file  final

  private static jdk.nashorn.internal.runtime.logging.DebugLogger getLoggerStatic();
    descriptor: ()Ljdk/nashorn/internal/runtime/logging/DebugLogger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 982
            invokestatic jdk.nashorn.internal.runtime.Context.getContextTrustedOrNull:()Ljdk/nashorn/internal/runtime/Context;
            astore 0 /* context */
        start local 0 // jdk.nashorn.internal.runtime.Context context
         1: .line 983
            aload 0 /* context */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: jdk.nashorn.internal.runtime.Context
      StackMap stack:
         2: aload 0 /* context */
            ldc Ljdk/nashorn/internal/runtime/Source;
            invokevirtual jdk.nashorn.internal.runtime.Context.getLogger:(Ljava/lang/Class;)Ljdk/nashorn/internal/runtime/logging/DebugLogger;
      StackMap locals:
      StackMap stack: jdk.nashorn.internal.runtime.logging.DebugLogger
         3: areturn
        end local 0 // jdk.nashorn.internal.runtime.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1    4     0  context  Ljdk/nashorn/internal/runtime/Context;

  public jdk.nashorn.internal.runtime.logging.DebugLogger initLogger(jdk.nashorn.internal.runtime.Context);
    descriptor: (Ljdk/nashorn/internal/runtime/Context;)Ljdk/nashorn/internal/runtime/logging/DebugLogger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // jdk.nashorn.internal.runtime.Context context
         0: .line 988
            aload 1 /* context */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual jdk.nashorn.internal.runtime.Context.getLogger:(Ljava/lang/Class;)Ljdk/nashorn/internal/runtime/logging/DebugLogger;
            areturn
        end local 1 // jdk.nashorn.internal.runtime.Context context
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljdk/nashorn/internal/runtime/Source;
            0    1     1  context  Ljdk/nashorn/internal/runtime/Context;
    MethodParameters:
         Name  Flags
      context  final

  public jdk.nashorn.internal.runtime.logging.DebugLogger getLogger();
    descriptor: ()Ljdk/nashorn/internal/runtime/logging/DebugLogger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Source this
         0: .line 993
            aload 0 /* this */
            invokestatic jdk.nashorn.internal.runtime.Context.getContextTrusted:()Ljdk/nashorn/internal/runtime/Context;
            invokevirtual jdk.nashorn.internal.runtime.Source.initLogger:(Ljdk/nashorn/internal/runtime/Context;)Ljdk/nashorn/internal/runtime/logging/DebugLogger;
            areturn
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/runtime/Source;

  private java.io.File dumpFile(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // java.io.File dirFile
         0: .line 997
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.getURL:()Ljava/net/URL;
            astore 2 /* u */
        start local 2 // java.net.URL u
         1: .line 998
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuilder buf
         2: .line 1000
            aload 3 /* buf */
            invokestatic java.time.LocalDateTime.now:()Ljava/time/LocalDateTime;
            invokevirtual java.time.LocalDateTime.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 1001
            aload 3 /* buf */
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 1002
            aload 2 /* u */
            ifnull 10
         5: .line 1004
            aload 3 /* buf */
            aload 2 /* u */
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
         6: .line 1005
            bipush 47
            bipush 95
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
         7: .line 1006
            bipush 92
            bipush 95
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
         8: .line 1004
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1007
            goto 11
        10: .line 1008
      StackMap locals: java.net.URL java.lang.StringBuilder
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.Source.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 1011
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* dirFile */
            aload 3 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            areturn
        end local 3 // java.lang.StringBuilder buf
        end local 2 // java.net.URL u
        end local 1 // java.io.File dirFile
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Ljdk/nashorn/internal/runtime/Source;
            0   12     1  dirFile  Ljava/io/File;
            1   12     2        u  Ljava/net/URL;
            2   12     3      buf  Ljava/lang/StringBuilder;
    MethodParameters:
         Name  Flags
      dirFile  final

  void dump(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=11, locals=8, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.Source this
        start local 1 // java.lang.String dir
         0: .line 1015
            new java.io.File
            dup
            aload 1 /* dir */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* dirFile */
        start local 2 // java.io.File dirFile
         1: .line 1016
            aload 0 /* this */
            aload 2 /* dirFile */
            invokevirtual jdk.nashorn.internal.runtime.Source.dumpFile:(Ljava/io/File;)Ljava/io/File;
            astore 3 /* file */
        start local 3 // java.io.File file
         2: .line 1017
            aload 2 /* dirFile */
            invokevirtual java.io.File.exists:()Z
            ifne 5
            aload 2 /* dirFile */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 5
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 1018
            new java.lang.StringBuilder
            dup
            ldc "Skipping source dump for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            invokestatic jdk.nashorn.internal.runtime.Source.debug:([Ljava/lang/Object;)V
         4: .line 1019
            return
         5: .line 1022
      StackMap locals: java.io.File java.io.File
      StackMap stack:
            aconst_null
            astore 4
            aconst_null
            astore 5
         6: new java.io.FileOutputStream
            dup
            aload 3 /* file */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 6 /* fos */
        start local 6 // java.io.FileOutputStream fos
         7: .line 1023
            new java.io.PrintWriter
            dup
            aload 6 /* fos */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            astore 7 /* pw */
        start local 7 // java.io.PrintWriter pw
         8: .line 1024
            aload 7 /* pw */
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.data:Ljdk/nashorn/internal/runtime/Source$Data;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         9: .line 1025
            aload 7 /* pw */
            invokevirtual java.io.PrintWriter.flush:()V
        end local 7 // java.io.PrintWriter pw
        10: .line 1026
            aload 6 /* fos */
            ifnull 27
            aload 6 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 27
      StackMap locals: jdk.nashorn.internal.runtime.Source java.lang.String java.io.File java.io.File java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
      StackMap stack: java.lang.Throwable
        11: astore 4
            aload 6 /* fos */
            ifnull 12
            aload 6 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 6 // java.io.FileOutputStream fos
      StackMap locals:
      StackMap stack:
        12: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 5
            aload 4
            ifnonnull 14
            aload 5
            astore 4
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 4
            aload 5
            if_acmpeq 15
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 4
            athrow
      StackMap locals: jdk.nashorn.internal.runtime.Source java.lang.String java.io.File java.io.File
      StackMap stack: java.io.IOException
        16: astore 4 /* ioExp */
        start local 4 // java.io.IOException ioExp
        17: iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 1027
            new java.lang.StringBuilder
            dup
            ldc "Skipping source dump for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 1028
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.Source.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 1029
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 1031
            ldc "io.error.cant.write"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
        22: .line 1032
            new java.lang.StringBuilder
            dup
            aload 1 /* dir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        23: .line 1033
            ldc " : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* ioExp */
            invokevirtual java.io.IOException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 1032
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        25: .line 1030
            invokestatic jdk.nashorn.internal.runtime.ECMAErrors.getMessage:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        26: .line 1027
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            invokestatic jdk.nashorn.internal.runtime.Source.debug:([Ljava/lang/Object;)V
        end local 4 // java.io.IOException ioExp
        27: .line 1035
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.File file
        end local 2 // java.io.File dirFile
        end local 1 // java.lang.String dir
        end local 0 // jdk.nashorn.internal.runtime.Source this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   28     0     this  Ljdk/nashorn/internal/runtime/Source;
            0   28     1      dir  Ljava/lang/String;
            1   28     2  dirFile  Ljava/io/File;
            2   28     3     file  Ljava/io/File;
            7   12     6      fos  Ljava/io/FileOutputStream;
            8   10     7       pw  Ljava/io/PrintWriter;
           17   27     4    ioExp  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7    10      11  any
           6    13      13  any
           5    16      16  Class java.io.IOException
    MethodParameters:
      Name  Flags
      dir   final
}
SourceFile: "Source.java"
NestMembers:
  jdk.nashorn.internal.runtime.Source$Cache  jdk.nashorn.internal.runtime.Source$Data  jdk.nashorn.internal.runtime.Source$FileData  jdk.nashorn.internal.runtime.Source$RawData  jdk.nashorn.internal.runtime.Source$URLData
InnerClasses:
  public Encoder = java.util.Base64$Encoder of java.util.Base64
  SourceInfo = jdk.nashorn.internal.runtime.DebuggerSupport$SourceInfo of jdk.nashorn.internal.runtime.DebuggerSupport
  private Cache = jdk.nashorn.internal.runtime.Source$Cache of jdk.nashorn.internal.runtime.Source
  private abstract Data = jdk.nashorn.internal.runtime.Source$Data of jdk.nashorn.internal.runtime.Source
  private FileData = jdk.nashorn.internal.runtime.Source$FileData of jdk.nashorn.internal.runtime.Source
  private RawData = jdk.nashorn.internal.runtime.Source$RawData of jdk.nashorn.internal.runtime.Source
  private URLData = jdk.nashorn.internal.runtime.Source$URLData of jdk.nashorn.internal.runtime.Source
    RuntimeVisibleAnnotations: 
      jdk.nashorn.internal.runtime.logging.Logger(name = "source")