final class jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase extends jdk.nashorn.internal.codegen.CompilationPhase
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase
  super_class: jdk.nashorn.internal.codegen.CompilationPhase
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase this
         0: .line 480
            aload 0 /* this */
            invokespecial jdk.nashorn.internal.codegen.CompilationPhase.<init>:()V
            return
        end local 0 // jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/codegen/CompilationPhase$InstallPhase;

  jdk.nashorn.internal.ir.FunctionNode transform(jdk.nashorn.internal.codegen.Compiler, jdk.nashorn.internal.codegen.Compiler$CompilationPhases, jdk.nashorn.internal.ir.FunctionNode);
    descriptor: (Ljdk/nashorn/internal/codegen/Compiler;Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;Ljdk/nashorn/internal/ir/FunctionNode;)Ljdk/nashorn/internal/ir/FunctionNode;
    flags: (0x0000) 
    Code:
      stack=4, locals=18, args_size=4
        start local 0 // jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase this
        start local 1 // jdk.nashorn.internal.codegen.Compiler compiler
        start local 2 // jdk.nashorn.internal.codegen.Compiler$CompilationPhases phases
        start local 3 // jdk.nashorn.internal.ir.FunctionNode fn
         0: .line 483
            aload 1 /* compiler */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.getLogger:()Ljdk/nashorn/internal/runtime/logging/DebugLogger;
            astore 4 /* log */
        start local 4 // jdk.nashorn.internal.runtime.logging.DebugLogger log
         1: .line 485
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 5 /* installedClasses */
        start local 5 // java.util.Map installedClasses
         2: .line 487
            iconst_1
            istore 6 /* first */
        start local 6 // boolean first
         3: .line 488
            aconst_null
            astore 7 /* rootClass */
        start local 7 // java.lang.Class rootClass
         4: .line 489
            lconst_0
            lstore 8 /* length */
        start local 8 // long length
         5: .line 491
            aload 1 /* compiler */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.getCodeInstaller:()Ljdk/nashorn/internal/runtime/CodeInstaller;
            astore 10 /* origCodeInstaller */
        start local 10 // jdk.nashorn.internal.runtime.CodeInstaller origCodeInstaller
         6: .line 492
            aload 1 /* compiler */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.getBytecode:()Ljava/util/Map;
            astore 11 /* bytecode */
        start local 11 // java.util.Map bytecode
         7: .line 493
            aload 11 /* bytecode */
            invokeinterface java.util.Map.size:()I
            iconst_1
            if_icmple 8
            aload 10 /* origCodeInstaller */
            invokeinterface jdk.nashorn.internal.runtime.CodeInstaller.getMultiClassCodeInstaller:()Ljdk/nashorn/internal/runtime/CodeInstaller;
            goto 9
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map
      StackMap stack:
         8: aload 10 /* origCodeInstaller */
      StackMap locals:
      StackMap stack: jdk.nashorn.internal.runtime.CodeInstaller
         9: astore 12 /* codeInstaller */
        start local 12 // jdk.nashorn.internal.runtime.CodeInstaller codeInstaller
        10: .line 495
            aload 11 /* bytecode */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 14
            goto 20
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map jdk.nashorn.internal.runtime.CodeInstaller top java.util.Iterator
      StackMap stack:
        11: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 13 /* entry */
        start local 13 // java.util.Map$Entry entry
        12: .line 496
            aload 13 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 15 /* className */
        start local 15 // java.lang.String className
        13: .line 498
            aload 13 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 16 /* code */
        start local 16 // byte[] code
        14: .line 499
            lload 8 /* length */
            aload 16 /* code */
            arraylength
            i2l
            ladd
            lstore 8 /* length */
        15: .line 501
            aload 12 /* codeInstaller */
            aload 15 /* className */
            aload 16 /* code */
            invokeinterface jdk.nashorn.internal.runtime.CodeInstaller.install:(Ljava/lang/String;[B)Ljava/lang/Class;
            astore 17 /* clazz */
        start local 17 // java.lang.Class clazz
        16: .line 502
            iload 6 /* first */
            ifeq 19
        17: .line 503
            aload 17 /* clazz */
            astore 7 /* rootClass */
        18: .line 504
            iconst_0
            istore 6 /* first */
        19: .line 506
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map jdk.nashorn.internal.runtime.CodeInstaller java.util.Map$Entry java.util.Iterator java.lang.String byte[] java.lang.Class
      StackMap stack:
            aload 5 /* installedClasses */
            aload 15 /* className */
            aload 17 /* clazz */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 17 // java.lang.Class clazz
        end local 16 // byte[] code
        end local 15 // java.lang.String className
        end local 13 // java.util.Map$Entry entry
        20: .line 495
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map jdk.nashorn.internal.runtime.CodeInstaller top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        21: .line 509
            aload 7 /* rootClass */
            ifnonnull 23
        22: .line 510
            new jdk.nashorn.internal.codegen.CompilationException
            dup
            ldc "Internal compiler error: root class not found!"
            invokespecial jdk.nashorn.internal.codegen.CompilationException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 513
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map jdk.nashorn.internal.runtime.CodeInstaller
      StackMap stack:
            aload 1 /* compiler */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.getConstantData:()Ljdk/nashorn/internal/codegen/ConstantData;
            invokevirtual jdk.nashorn.internal.codegen.ConstantData.toArray:()[Ljava/lang/Object;
            astore 13 /* constants */
        start local 13 // java.lang.Object[] constants
        24: .line 514
            aload 12 /* codeInstaller */
            aload 5 /* installedClasses */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            aload 1 /* compiler */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.getSource:()Ljdk/nashorn/internal/runtime/Source;
            aload 13 /* constants */
            invokeinterface jdk.nashorn.internal.runtime.CodeInstaller.initialize:(Ljava/util/Collection;Ljdk/nashorn/internal/runtime/Source;[Ljava/lang/Object;)V
        25: .line 517
            aload 13 /* constants */
            dup
            astore 17
            arraylength
            istore 16
            iconst_0
            istore 15
            goto 30
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map jdk.nashorn.internal.runtime.CodeInstaller java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
        26: aload 17
            iload 15
            aaload
            astore 14 /* constant */
        start local 14 // java.lang.Object constant
        27: .line 518
            aload 14 /* constant */
            instanceof jdk.nashorn.internal.runtime.RecompilableScriptFunctionData
            ifeq 29
        28: .line 519
            aload 14 /* constant */
            checkcast jdk.nashorn.internal.runtime.RecompilableScriptFunctionData
            aload 1 /* compiler */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.getSource:()Ljdk/nashorn/internal/runtime/Source;
            aload 12 /* codeInstaller */
            invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.initTransients:(Ljdk/nashorn/internal/runtime/Source;Ljdk/nashorn/internal/runtime/CodeInstaller;)V
        end local 14 // java.lang.Object constant
        29: .line 517
      StackMap locals:
      StackMap stack:
            iinc 15 1
      StackMap locals:
      StackMap stack:
        30: iload 15
            iload 16
            if_icmplt 26
        31: .line 524
            aload 1 /* compiler */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.getCompileUnits:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15
            goto 37
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map jdk.nashorn.internal.runtime.CodeInstaller java.lang.Object[] top java.util.Iterator
      StackMap stack:
        32: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.nashorn.internal.codegen.CompileUnit
            astore 14 /* unit */
        start local 14 // jdk.nashorn.internal.codegen.CompileUnit unit
        33: .line 525
            aload 14 /* unit */
            invokevirtual jdk.nashorn.internal.codegen.CompileUnit.isUsed:()Z
            ifne 35
        34: .line 526
            goto 37
        35: .line 528
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map jdk.nashorn.internal.runtime.CodeInstaller java.lang.Object[] jdk.nashorn.internal.codegen.CompileUnit java.util.Iterator
      StackMap stack:
            aload 14 /* unit */
            aload 5 /* installedClasses */
            aload 14 /* unit */
            invokevirtual jdk.nashorn.internal.codegen.CompileUnit.getUnitClassName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            invokevirtual jdk.nashorn.internal.codegen.CompileUnit.setCode:(Ljava/lang/Class;)V
        36: .line 529
            aload 14 /* unit */
            invokevirtual jdk.nashorn.internal.codegen.CompileUnit.initializeFunctionsCode:()V
        end local 14 // jdk.nashorn.internal.codegen.CompileUnit unit
        37: .line 524
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map jdk.nashorn.internal.runtime.CodeInstaller java.lang.Object[] top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        38: .line 532
            aload 4 /* log */
            invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.isEnabled:()Z
            ifeq 51
        39: .line 533
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 14 /* sb */
        start local 14 // java.lang.StringBuilder sb
        40: .line 535
            aload 14 /* sb */
            ldc "Installed class '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        41: .line 536
            aload 7 /* rootClass */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        42: .line 537
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        43: .line 538
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        44: .line 539
            aload 7 /* rootClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        45: .line 540
            ldc ", size="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        46: .line 541
            lload 8 /* length */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        47: .line 542
            ldc " bytes, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        48: .line 543
            aload 1 /* compiler */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.getCompileUnits:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        49: .line 544
            ldc " compile unit(s)]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        50: .line 546
            aload 4 /* log */
            aload 14 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.nashorn.internal.runtime.logging.DebugLogger.fine:(Ljava/lang/String;)V
        end local 14 // java.lang.StringBuilder sb
        51: .line 549
      StackMap locals: jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase jdk.nashorn.internal.codegen.Compiler jdk.nashorn.internal.codegen.Compiler$CompilationPhases jdk.nashorn.internal.ir.FunctionNode jdk.nashorn.internal.runtime.logging.DebugLogger java.util.Map int java.lang.Class long jdk.nashorn.internal.runtime.CodeInstaller java.util.Map jdk.nashorn.internal.runtime.CodeInstaller java.lang.Object[]
      StackMap stack:
            aload 3 /* fn */
            aconst_null
            aload 7 /* rootClass */
            invokevirtual jdk.nashorn.internal.ir.FunctionNode.setRootClass:(Ljdk/nashorn/internal/ir/LexicalContext;Ljava/lang/Class;)Ljdk/nashorn/internal/ir/FunctionNode;
            areturn
        end local 13 // java.lang.Object[] constants
        end local 12 // jdk.nashorn.internal.runtime.CodeInstaller codeInstaller
        end local 11 // java.util.Map bytecode
        end local 10 // jdk.nashorn.internal.runtime.CodeInstaller origCodeInstaller
        end local 8 // long length
        end local 7 // java.lang.Class rootClass
        end local 6 // boolean first
        end local 5 // java.util.Map installedClasses
        end local 4 // jdk.nashorn.internal.runtime.logging.DebugLogger log
        end local 3 // jdk.nashorn.internal.ir.FunctionNode fn
        end local 2 // jdk.nashorn.internal.codegen.Compiler$CompilationPhases phases
        end local 1 // jdk.nashorn.internal.codegen.Compiler compiler
        end local 0 // jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   52     0               this  Ljdk/nashorn/internal/codegen/CompilationPhase$InstallPhase;
            0   52     1           compiler  Ljdk/nashorn/internal/codegen/Compiler;
            0   52     2             phases  Ljdk/nashorn/internal/codegen/Compiler$CompilationPhases;
            0   52     3                 fn  Ljdk/nashorn/internal/ir/FunctionNode;
            1   52     4                log  Ljdk/nashorn/internal/runtime/logging/DebugLogger;
            2   52     5   installedClasses  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Class<*>;>;
            3   52     6              first  Z
            4   52     7          rootClass  Ljava/lang/Class<*>;
            5   52     8             length  J
            6   52    10  origCodeInstaller  Ljdk/nashorn/internal/runtime/CodeInstaller;
            7   52    11           bytecode  Ljava/util/Map<Ljava/lang/String;[B>;
           10   52    12      codeInstaller  Ljdk/nashorn/internal/runtime/CodeInstaller;
           12   20    13              entry  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
           13   20    15          className  Ljava/lang/String;
           14   20    16               code  [B
           16   20    17              clazz  Ljava/lang/Class<*>;
           24   52    13          constants  [Ljava/lang/Object;
           27   29    14           constant  Ljava/lang/Object;
           33   37    14               unit  Ljdk/nashorn/internal/codegen/CompileUnit;
           40   51    14                 sb  Ljava/lang/StringBuilder;
    MethodParameters:
          Name  Flags
      compiler  final
      phases    final
      fn        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.codegen.CompilationPhase$InstallPhase this
         0: .line 554
            ldc "'Class Installation'"
            areturn
        end local 0 // jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/nashorn/internal/codegen/CompilationPhase$InstallPhase;
}
SourceFile: "CompilationPhase.java"
NestHost: jdk.nashorn.internal.codegen.CompilationPhase
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private final InstallPhase = jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase of jdk.nashorn.internal.codegen.CompilationPhase
  public CompilationPhases = jdk.nashorn.internal.codegen.Compiler$CompilationPhases of jdk.nashorn.internal.codegen.Compiler