class jdk.nashorn.internal.codegen.CacheAst extends jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.nashorn.internal.codegen.CacheAst
  super_class: jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor
{
  private final java.util.Deque<jdk.nashorn.internal.runtime.RecompilableScriptFunctionData> dataStack;
    descriptor: Ljava/util/Deque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Deque<Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;>;

  private final jdk.nashorn.internal.codegen.Compiler compiler;
    descriptor: Ljdk/nashorn/internal/codegen/Compiler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 37
            ldc Ljdk/nashorn/internal/codegen/CacheAst;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.nashorn.internal.codegen.CacheAst.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.nashorn.internal.codegen.Compiler);
    descriptor: (Ljdk/nashorn/internal/codegen/Compiler;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.CacheAst this
        start local 1 // jdk.nashorn.internal.codegen.Compiler compiler
         0: .line 42
            aload 0 /* this */
            invokespecial jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor.<init>:()V
         1: .line 38
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield jdk.nashorn.internal.codegen.CacheAst.dataStack:Ljava/util/Deque;
         2: .line 43
            aload 0 /* this */
            aload 1 /* compiler */
            putfield jdk.nashorn.internal.codegen.CacheAst.compiler:Ljdk/nashorn/internal/codegen/Compiler;
         3: .line 44
            getstatic jdk.nashorn.internal.codegen.CacheAst.$assertionsDisabled:Z
            ifne 4
            aload 1 /* compiler */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.isOnDemandCompilation:()Z
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 45
      StackMap locals: jdk.nashorn.internal.codegen.CacheAst jdk.nashorn.internal.codegen.Compiler
      StackMap stack:
            return
        end local 1 // jdk.nashorn.internal.codegen.Compiler compiler
        end local 0 // jdk.nashorn.internal.codegen.CacheAst this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljdk/nashorn/internal/codegen/CacheAst;
            0    5     1  compiler  Ljdk/nashorn/internal/codegen/Compiler;
    MethodParameters:
          Name  Flags
      compiler  final

  public boolean enterFunctionNode(jdk.nashorn.internal.ir.FunctionNode);
    descriptor: (Ljdk/nashorn/internal/ir/FunctionNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.CacheAst this
        start local 1 // jdk.nashorn.internal.ir.FunctionNode functionNode
         0: .line 49
            aload 1 /* functionNode */
            invokevirtual jdk.nashorn.internal.ir.FunctionNode.getId:()I
            istore 2 /* id */
        start local 2 // int id
         1: .line 53
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CacheAst.dataStack:Ljava/util/Deque;
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CacheAst.dataStack:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 2
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CacheAst.compiler:Ljdk/nashorn/internal/codegen/Compiler;
            iload 2 /* id */
            invokevirtual jdk.nashorn.internal.codegen.Compiler.getScriptFunctionData:(I)Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
            goto 3
      StackMap locals: jdk.nashorn.internal.codegen.CacheAst jdk.nashorn.internal.ir.FunctionNode int
      StackMap stack: java.util.Deque
         2: aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CacheAst.dataStack:Ljava/util/Deque;
            invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
            checkcast jdk.nashorn.internal.runtime.RecompilableScriptFunctionData
            iload 2 /* id */
            invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.getScriptFunctionData:(I)Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
      StackMap locals: jdk.nashorn.internal.codegen.CacheAst jdk.nashorn.internal.ir.FunctionNode int
      StackMap stack: java.util.Deque jdk.nashorn.internal.runtime.RecompilableScriptFunctionData
         3: invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         4: .line 54
            iconst_1
            ireturn
        end local 2 // int id
        end local 1 // jdk.nashorn.internal.ir.FunctionNode functionNode
        end local 0 // jdk.nashorn.internal.codegen.CacheAst this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Ljdk/nashorn/internal/codegen/CacheAst;
            0    5     1  functionNode  Ljdk/nashorn/internal/ir/FunctionNode;
            1    5     2            id  I
    MethodParameters:
              Name  Flags
      functionNode  final

  public jdk.nashorn.internal.ir.Node leaveFunctionNode(jdk.nashorn.internal.ir.FunctionNode);
    descriptor: (Ljdk/nashorn/internal/ir/FunctionNode;)Ljdk/nashorn/internal/ir/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.CacheAst this
        start local 1 // jdk.nashorn.internal.ir.FunctionNode functionNode
         0: .line 59
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CacheAst.dataStack:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast jdk.nashorn.internal.runtime.RecompilableScriptFunctionData
            astore 2 /* data */
        start local 2 // jdk.nashorn.internal.runtime.RecompilableScriptFunctionData data
         1: .line 60
            aload 1 /* functionNode */
            invokevirtual jdk.nashorn.internal.ir.FunctionNode.isSplit:()Z
            ifeq 3
         2: .line 73
            aload 2 /* data */
            aload 1 /* functionNode */
            invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.setCachedAst:(Ljdk/nashorn/internal/ir/FunctionNode;)V
         3: .line 76
      StackMap locals: jdk.nashorn.internal.runtime.RecompilableScriptFunctionData
      StackMap stack:
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CacheAst.dataStack:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 5
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CacheAst.dataStack:Ljava/util/Deque;
            invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
            checkcast jdk.nashorn.internal.runtime.RecompilableScriptFunctionData
            invokevirtual jdk.nashorn.internal.runtime.RecompilableScriptFunctionData.getFunctionFlags:()I
            bipush 16
            iand
            ifeq 5
         4: .line 81
            aload 1 /* functionNode */
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.CacheAst.lc:Ljdk/nashorn/internal/ir/LexicalContext;
            aload 1 /* functionNode */
            invokevirtual jdk.nashorn.internal.ir.FunctionNode.getBody:()Ljdk/nashorn/internal/ir/Block;
            aconst_null
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokevirtual jdk.nashorn.internal.ir.Block.setStatements:(Ljdk/nashorn/internal/ir/LexicalContext;Ljava/util/List;)Ljdk/nashorn/internal/ir/Block;
            invokevirtual jdk.nashorn.internal.ir.FunctionNode.setBody:(Ljdk/nashorn/internal/ir/LexicalContext;Ljdk/nashorn/internal/ir/Block;)Ljdk/nashorn/internal/ir/FunctionNode;
            areturn
         5: .line 83
      StackMap locals:
      StackMap stack:
            aload 1 /* functionNode */
            areturn
        end local 2 // jdk.nashorn.internal.runtime.RecompilableScriptFunctionData data
        end local 1 // jdk.nashorn.internal.ir.FunctionNode functionNode
        end local 0 // jdk.nashorn.internal.codegen.CacheAst this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Ljdk/nashorn/internal/codegen/CacheAst;
            0    6     1  functionNode  Ljdk/nashorn/internal/ir/FunctionNode;
            1    6     2          data  Ljdk/nashorn/internal/runtime/RecompilableScriptFunctionData;
    MethodParameters:
              Name  Flags
      functionNode  final
}
SourceFile: "CacheAst.java"