public class jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore extends jdk.nashorn.internal.runtime.CodeStore
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore
  super_class: jdk.nashorn.internal.runtime.CodeStore
{
  private static final int DEFAULT_MIN_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  private final java.io.File dir;
    descriptor: Ljava/io/File;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final int minSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(jdk.nashorn.internal.runtime.Context);
    descriptor: (Ljdk/nashorn/internal/runtime/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
        start local 1 // jdk.nashorn.internal.runtime.Context context
         0: .line 197
            aload 0 /* this */
            aload 1 /* context */
            ldc "nashorn.persistent.code.cache"
            ldc "nashorn_code_cache"
            invokestatic jdk.nashorn.internal.runtime.options.Options.getStringProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            iconst_0
            sipush 1000
            invokespecial jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.<init>:(Ljdk/nashorn/internal/runtime/Context;Ljava/lang/String;ZI)V
         1: .line 198
            return
        end local 1 // jdk.nashorn.internal.runtime.Context context
        end local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljdk/nashorn/internal/runtime/CodeStore$DirectoryCodeStore;
            0    2     1  context  Ljdk/nashorn/internal/runtime/Context;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  final

  public void <init>(jdk.nashorn.internal.runtime.Context, java.lang.String, boolean, int);
    descriptor: (Ljdk/nashorn/internal/runtime/Context;Ljava/lang/String;ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
        start local 1 // jdk.nashorn.internal.runtime.Context context
        start local 2 // java.lang.String path
        start local 3 // boolean readOnly
        start local 4 // int minSize
         0: .line 209
            aload 0 /* this */
            invokespecial jdk.nashorn.internal.runtime.CodeStore.<init>:()V
         1: .line 210
            aload 0 /* this */
            aload 2 /* path */
            aload 1 /* context */
            invokevirtual jdk.nashorn.internal.runtime.Context.getEnv:()Ljdk/nashorn/internal/runtime/ScriptEnvironment;
            iload 3 /* readOnly */
            invokestatic jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.checkDirectory:(Ljava/lang/String;Ljdk/nashorn/internal/runtime/ScriptEnvironment;Z)Ljava/io/File;
            putfield jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.dir:Ljava/io/File;
         2: .line 211
            aload 0 /* this */
            iload 3 /* readOnly */
            putfield jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.readOnly:Z
         3: .line 212
            aload 0 /* this */
            iload 4 /* minSize */
            putfield jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.minSize:I
         4: .line 213
            return
        end local 4 // int minSize
        end local 3 // boolean readOnly
        end local 2 // java.lang.String path
        end local 1 // jdk.nashorn.internal.runtime.Context context
        end local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljdk/nashorn/internal/runtime/CodeStore$DirectoryCodeStore;
            0    5     1   context  Ljdk/nashorn/internal/runtime/Context;
            0    5     2      path  Ljava/lang/String;
            0    5     3  readOnly  Z
            0    5     4   minSize  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      context   final
      path      final
      readOnly  final
      minSize   final

  private static java.io.File checkDirectory(java.lang.String, jdk.nashorn.internal.runtime.ScriptEnvironment, boolean);
    descriptor: (Ljava/lang/String;Ljdk/nashorn/internal/runtime/ScriptEnvironment;Z)Ljava/io/File;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.String path
        start local 1 // jdk.nashorn.internal.runtime.ScriptEnvironment env
        start local 2 // boolean readOnly
         0: .line 217
            new jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore$1
            dup
            aload 0 /* path */
            aload 1 /* env */
            iload 2 /* readOnly */
            invokespecial jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore$1.<init>:(Ljava/lang/String;Ljdk/nashorn/internal/runtime/ScriptEnvironment;Z)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.io.File
         1: areturn
         2: .line 237
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
            astore 3 /* e */
        start local 3 // java.security.PrivilegedActionException e
         3: .line 238
            aload 3 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 3 // java.security.PrivilegedActionException e
        end local 2 // boolean readOnly
        end local 1 // jdk.nashorn.internal.runtime.ScriptEnvironment env
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      path  Ljava/lang/String;
            0    4     1       env  Ljdk/nashorn/internal/runtime/ScriptEnvironment;
            0    4     2  readOnly  Z
            3    4     3         e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      path      final
      env       final
      readOnly  final

  private static java.lang.String getVersionDir(jdk.nashorn.internal.runtime.ScriptEnvironment);
    descriptor: (Ljdk/nashorn/internal/runtime/ScriptEnvironment;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.ScriptEnvironment env
         0: .line 244
            invokestatic jdk.nashorn.internal.codegen.OptimisticTypesPersistence.getVersionDirName:()Ljava/lang/String;
            astore 1 /* versionDir */
        start local 1 // java.lang.String versionDir
         1: .line 245
            aload 0 /* env */
            getfield jdk.nashorn.internal.runtime.ScriptEnvironment._optimistic_types:Z
            ifeq 2
            new java.lang.StringBuilder
            dup
            aload 1 /* versionDir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_opt"
            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 /* versionDir */
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // java.lang.String versionDir
         4: .line 246
      StackMap locals: jdk.nashorn.internal.runtime.ScriptEnvironment
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         5: .line 247
            new java.io.IOException
            dup
            aload 1 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // jdk.nashorn.internal.runtime.ScriptEnvironment env
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0         env  Ljdk/nashorn/internal/runtime/ScriptEnvironment;
            1    4     1  versionDir  Ljava/lang/String;
            5    6     1           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      env   final

  public jdk.nashorn.internal.runtime.StoredScript load(jdk.nashorn.internal.runtime.Source, java.lang.String);
    descriptor: (Ljdk/nashorn/internal/runtime/Source;Ljava/lang/String;)Ljdk/nashorn/internal/runtime/StoredScript;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
        start local 1 // jdk.nashorn.internal.runtime.Source source
        start local 2 // java.lang.String functionKey
         0: .line 253
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.belowThreshold:(Ljdk/nashorn/internal/runtime/Source;)Z
            ifeq 2
         1: .line 254
            aconst_null
            areturn
         2: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* source */
            aload 2 /* functionKey */
            invokevirtual jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.getCacheFile:(Ljdk/nashorn/internal/runtime/Source;Ljava/lang/String;)Ljava/io/File;
            astore 3 /* file */
        start local 3 // java.io.File file
         3: .line 260
            new jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore$2
            dup
            aload 0 /* this */
            aload 3 /* file */
            aload 1 /* source */
            aload 2 /* functionKey */
            invokespecial jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore$2.<init>:(Ljdk/nashorn/internal/runtime/CodeStore$DirectoryCodeStore;Ljava/io/File;Ljdk/nashorn/internal/runtime/Source;Ljava/lang/String;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast jdk.nashorn.internal.runtime.StoredScript
         4: areturn
         5: .line 273
      StackMap locals: jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore jdk.nashorn.internal.runtime.Source java.lang.String java.io.File
      StackMap stack: java.security.PrivilegedActionException
            astore 4 /* e */
        start local 4 // java.security.PrivilegedActionException e
         6: .line 274
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.getLogger:()Ljdk/nashorn/internal/runtime/logging/DebugLogger;
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "failed to load "
            aastore
            dup
            iconst_1
            aload 1 /* source */
            aastore
            dup
            iconst_2
            ldc "-"
            aastore
            dup
            iconst_3
            aload 2 /* functionKey */
            aastore
            dup
            iconst_4
            ldc ": "
            aastore
            dup
            iconst_5
            aload 4 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            aastore
            invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.warning:([Ljava/lang/Object;)V
         7: .line 275
            aconst_null
            areturn
        end local 4 // java.security.PrivilegedActionException e
        end local 3 // java.io.File file
        end local 2 // java.lang.String functionKey
        end local 1 // jdk.nashorn.internal.runtime.Source source
        end local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Ljdk/nashorn/internal/runtime/CodeStore$DirectoryCodeStore;
            0    8     1       source  Ljdk/nashorn/internal/runtime/Source;
            0    8     2  functionKey  Ljava/lang/String;
            3    8     3         file  Ljava/io/File;
            6    8     4            e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.security.PrivilegedActionException
    MethodParameters:
             Name  Flags
      source       final
      functionKey  final

  public jdk.nashorn.internal.runtime.StoredScript store(java.lang.String, jdk.nashorn.internal.runtime.Source, jdk.nashorn.internal.runtime.StoredScript);
    descriptor: (Ljava/lang/String;Ljdk/nashorn/internal/runtime/Source;Ljdk/nashorn/internal/runtime/StoredScript;)Ljdk/nashorn/internal/runtime/StoredScript;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
        start local 1 // java.lang.String functionKey
        start local 2 // jdk.nashorn.internal.runtime.Source source
        start local 3 // jdk.nashorn.internal.runtime.StoredScript script
         0: .line 281
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.readOnly:Z
            ifne 1
            aload 3 /* script */
            ifnull 1
            aload 0 /* this */
            aload 2 /* source */
            invokevirtual jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.belowThreshold:(Ljdk/nashorn/internal/runtime/Source;)Z
            ifeq 2
         1: .line 282
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* source */
            aload 1 /* functionKey */
            invokevirtual jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.getCacheFile:(Ljdk/nashorn/internal/runtime/Source;Ljava/lang/String;)Ljava/io/File;
            astore 4 /* file */
        start local 4 // java.io.File file
         3: .line 288
            new jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore$3
            dup
            aload 0 /* this */
            aload 4 /* file */
            aload 3 /* script */
            aload 2 /* source */
            aload 1 /* functionKey */
            invokespecial jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore$3.<init>:(Ljdk/nashorn/internal/runtime/CodeStore$DirectoryCodeStore;Ljava/io/File;Ljdk/nashorn/internal/runtime/StoredScript;Ljdk/nashorn/internal/runtime/Source;Ljava/lang/String;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast jdk.nashorn.internal.runtime.StoredScript
         4: areturn
         5: .line 298
      StackMap locals: jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore java.lang.String jdk.nashorn.internal.runtime.Source jdk.nashorn.internal.runtime.StoredScript java.io.File
      StackMap stack: java.security.PrivilegedActionException
            astore 5 /* e */
        start local 5 // java.security.PrivilegedActionException e
         6: .line 299
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.getLogger:()Ljdk/nashorn/internal/runtime/logging/DebugLogger;
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "failed to store "
            aastore
            dup
            iconst_1
            aload 3 /* script */
            aastore
            dup
            iconst_2
            ldc "-"
            aastore
            dup
            iconst_3
            aload 1 /* functionKey */
            aastore
            dup
            iconst_4
            ldc ": "
            aastore
            dup
            iconst_5
            aload 5 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            aastore
            invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.warning:([Ljava/lang/Object;)V
         7: .line 300
            aconst_null
            areturn
        end local 5 // java.security.PrivilegedActionException e
        end local 4 // java.io.File file
        end local 3 // jdk.nashorn.internal.runtime.StoredScript script
        end local 2 // jdk.nashorn.internal.runtime.Source source
        end local 1 // java.lang.String functionKey
        end local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Ljdk/nashorn/internal/runtime/CodeStore$DirectoryCodeStore;
            0    8     1  functionKey  Ljava/lang/String;
            0    8     2       source  Ljdk/nashorn/internal/runtime/Source;
            0    8     3       script  Ljdk/nashorn/internal/runtime/StoredScript;
            3    8     4         file  Ljava/io/File;
            6    8     5            e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.security.PrivilegedActionException
    MethodParameters:
             Name  Flags
      functionKey  final
      source       final
      script       final

  private java.io.File getCacheFile(jdk.nashorn.internal.runtime.Source, java.lang.String);
    descriptor: (Ljdk/nashorn/internal/runtime/Source;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
        start local 1 // jdk.nashorn.internal.runtime.Source source
        start local 2 // java.lang.String functionKey
         0: .line 306
            new java.io.File
            dup
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.dir:Ljava/io/File;
            new java.lang.StringBuilder
            dup
            aload 1 /* source */
            invokevirtual jdk.nashorn.internal.runtime.Source.getDigest:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* functionKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String functionKey
        end local 1 // jdk.nashorn.internal.runtime.Source source
        end local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Ljdk/nashorn/internal/runtime/CodeStore$DirectoryCodeStore;
            0    1     1       source  Ljdk/nashorn/internal/runtime/Source;
            0    1     2  functionKey  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      source       final
      functionKey  final

  private boolean belowThreshold(jdk.nashorn.internal.runtime.Source);
    descriptor: (Ljdk/nashorn/internal/runtime/Source;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
        start local 1 // jdk.nashorn.internal.runtime.Source source
         0: .line 310
            aload 1 /* source */
            invokevirtual jdk.nashorn.internal.runtime.Source.getLength:()I
            aload 0 /* this */
            getfield jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.minSize:I
            if_icmpge 3
         1: .line 311
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore.getLogger:()Ljdk/nashorn/internal/runtime/logging/DebugLogger;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "below size threshold "
            aastore
            dup
            iconst_1
            aload 1 /* source */
            aastore
            invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.info:([Ljava/lang/Object;)V
         2: .line 312
            iconst_1
            ireturn
         3: .line 314
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // jdk.nashorn.internal.runtime.Source source
        end local 0 // jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/nashorn/internal/runtime/CodeStore$DirectoryCodeStore;
            0    4     1  source  Ljdk/nashorn/internal/runtime/Source;
    MethodParameters:
        Name  Flags
      source  final
}
SourceFile: "CodeStore.java"
NestHost: jdk.nashorn.internal.runtime.CodeStore
InnerClasses:
  public DirectoryCodeStore = jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore of jdk.nashorn.internal.runtime.CodeStore
  jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore$1
  jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore$2
  jdk.nashorn.internal.runtime.CodeStore$DirectoryCodeStore$3