class jdk.nashorn.internal.codegen.ProgramPoints extends jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.nashorn.internal.codegen.ProgramPoints
  super_class: jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor
{
  private final jdk.nashorn.internal.IntDeque nextProgramPoint;
    descriptor: Ljdk/nashorn/internal/IntDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Set<jdk.nashorn.internal.ir.Node> noProgramPoint;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljdk/nashorn/internal/ir/Node;>;

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
         0: .line 49
            aload 0 /* this */
            invokespecial jdk.nashorn.internal.ir.visitor.SimpleNodeVisitor.<init>:()V
         1: .line 51
            aload 0 /* this */
            new jdk.nashorn.internal.IntDeque
            dup
            invokespecial jdk.nashorn.internal.IntDeque.<init>:()V
            putfield jdk.nashorn.internal.codegen.ProgramPoints.nextProgramPoint:Ljdk/nashorn/internal/IntDeque;
         2: .line 52
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield jdk.nashorn.internal.codegen.ProgramPoints.noProgramPoint:Ljava/util/Set;
         3: .line 49
            return
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/nashorn/internal/codegen/ProgramPoints;

  private int next();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
         0: .line 55
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.ProgramPoints.nextProgramPoint:Ljdk/nashorn/internal/IntDeque;
            invokevirtual jdk.nashorn.internal.IntDeque.getAndIncrement:()I
            istore 1 /* next */
        start local 1 // int next
         1: .line 56
            iload 1 /* next */
            ldc 131071
            if_icmple 3
         2: .line 57
            new java.lang.AssertionError
            dup
            ldc "Function has more than 131071 program points"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 59
      StackMap locals: int
      StackMap stack:
            iload 1 /* next */
            ireturn
        end local 1 // int next
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            1    4     1  next  I

  public boolean enterFunctionNode(jdk.nashorn.internal.ir.FunctionNode);
    descriptor: (Ljdk/nashorn/internal/ir/FunctionNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.FunctionNode functionNode
         0: .line 64
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.ProgramPoints.nextProgramPoint:Ljdk/nashorn/internal/IntDeque;
            iconst_1
            invokevirtual jdk.nashorn.internal.IntDeque.push:(I)V
         1: .line 65
            iconst_1
            ireturn
        end local 1 // jdk.nashorn.internal.ir.FunctionNode functionNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    2     1  functionNode  Ljdk/nashorn/internal/ir/FunctionNode;
    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=1, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.FunctionNode functionNode
         0: .line 70
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.ProgramPoints.nextProgramPoint:Ljdk/nashorn/internal/IntDeque;
            invokevirtual jdk.nashorn.internal.IntDeque.pop:()I
            pop
         1: .line 71
            aload 1 /* functionNode */
            areturn
        end local 1 // jdk.nashorn.internal.ir.FunctionNode functionNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    2     1  functionNode  Ljdk/nashorn/internal/ir/FunctionNode;
    MethodParameters:
              Name  Flags
      functionNode  final

  private jdk.nashorn.internal.ir.Expression setProgramPoint(jdk.nashorn.internal.ir.Optimistic);
    descriptor: (Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.Optimistic optimistic
         0: .line 75
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.ProgramPoints.noProgramPoint:Ljava/util/Set;
            aload 1 /* optimistic */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 76
            aload 1 /* optimistic */
            checkcast jdk.nashorn.internal.ir.Expression
            areturn
         2: .line 78
      StackMap locals:
      StackMap stack:
            aload 1 /* optimistic */
            invokeinterface jdk.nashorn.internal.ir.Optimistic.canBeOptimistic:()Z
            ifeq 3
            aload 1 /* optimistic */
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.codegen.ProgramPoints.next:()I
            invokeinterface jdk.nashorn.internal.ir.Optimistic.setProgramPoint:(I)Ljdk/nashorn/internal/ir/Optimistic;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* optimistic */
      StackMap locals:
      StackMap stack: jdk.nashorn.internal.ir.Optimistic
         4: checkcast jdk.nashorn.internal.ir.Expression
            areturn
        end local 1 // jdk.nashorn.internal.ir.Optimistic optimistic
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    5     1  optimistic  Ljdk/nashorn/internal/ir/Optimistic;
    MethodParameters:
            Name  Flags
      optimistic  final

  public boolean enterVarNode(jdk.nashorn.internal.ir.VarNode);
    descriptor: (Ljdk/nashorn/internal/ir/VarNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.VarNode varNode
         0: .line 83
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.ProgramPoints.noProgramPoint:Ljava/util/Set;
            aload 1 /* varNode */
            invokevirtual jdk.nashorn.internal.ir.VarNode.getName:()Ljdk/nashorn/internal/ir/IdentNode;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 84
            iconst_1
            ireturn
        end local 1 // jdk.nashorn.internal.ir.VarNode varNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    2     1  varNode  Ljdk/nashorn/internal/ir/VarNode;
    MethodParameters:
         Name  Flags
      varNode  final

  public boolean enterIdentNode(jdk.nashorn.internal.ir.IdentNode);
    descriptor: (Ljdk/nashorn/internal/ir/IdentNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.IdentNode identNode
         0: .line 89
            aload 1 /* identNode */
            invokevirtual jdk.nashorn.internal.ir.IdentNode.isInternal:()Z
            ifeq 2
         1: .line 90
            aload 0 /* this */
            getfield jdk.nashorn.internal.codegen.ProgramPoints.noProgramPoint:Ljava/util/Set;
            aload 1 /* identNode */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 92
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // jdk.nashorn.internal.ir.IdentNode identNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    3     1  identNode  Ljdk/nashorn/internal/ir/IdentNode;
    MethodParameters:
           Name  Flags
      identNode  final

  public jdk.nashorn.internal.ir.Node leaveIdentNode(jdk.nashorn.internal.ir.IdentNode);
    descriptor: (Ljdk/nashorn/internal/ir/IdentNode;)Ljdk/nashorn/internal/ir/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.IdentNode identNode
         0: .line 97
            aload 1 /* identNode */
            invokevirtual jdk.nashorn.internal.ir.IdentNode.isPropertyName:()Z
            ifeq 2
         1: .line 98
            aload 1 /* identNode */
            areturn
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* identNode */
            invokevirtual jdk.nashorn.internal.codegen.ProgramPoints.setProgramPoint:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
            areturn
        end local 1 // jdk.nashorn.internal.ir.IdentNode identNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    3     1  identNode  Ljdk/nashorn/internal/ir/IdentNode;
    MethodParameters:
           Name  Flags
      identNode  final

  public jdk.nashorn.internal.ir.Node leaveCallNode(jdk.nashorn.internal.ir.CallNode);
    descriptor: (Ljdk/nashorn/internal/ir/CallNode;)Ljdk/nashorn/internal/ir/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.CallNode callNode
         0: .line 105
            aload 0 /* this */
            aload 1 /* callNode */
            invokevirtual jdk.nashorn.internal.codegen.ProgramPoints.setProgramPoint:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
            areturn
        end local 1 // jdk.nashorn.internal.ir.CallNode callNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    1     1  callNode  Ljdk/nashorn/internal/ir/CallNode;
    MethodParameters:
          Name  Flags
      callNode  final

  public jdk.nashorn.internal.ir.Node leaveAccessNode(jdk.nashorn.internal.ir.AccessNode);
    descriptor: (Ljdk/nashorn/internal/ir/AccessNode;)Ljdk/nashorn/internal/ir/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.AccessNode accessNode
         0: .line 110
            aload 0 /* this */
            aload 1 /* accessNode */
            invokevirtual jdk.nashorn.internal.codegen.ProgramPoints.setProgramPoint:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
            areturn
        end local 1 // jdk.nashorn.internal.ir.AccessNode accessNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    1     1  accessNode  Ljdk/nashorn/internal/ir/AccessNode;
    MethodParameters:
            Name  Flags
      accessNode  final

  public jdk.nashorn.internal.ir.Node leaveIndexNode(jdk.nashorn.internal.ir.IndexNode);
    descriptor: (Ljdk/nashorn/internal/ir/IndexNode;)Ljdk/nashorn/internal/ir/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.IndexNode indexNode
         0: .line 115
            aload 0 /* this */
            aload 1 /* indexNode */
            invokevirtual jdk.nashorn.internal.codegen.ProgramPoints.setProgramPoint:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
            areturn
        end local 1 // jdk.nashorn.internal.ir.IndexNode indexNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    1     1  indexNode  Ljdk/nashorn/internal/ir/IndexNode;
    MethodParameters:
           Name  Flags
      indexNode  final

  public jdk.nashorn.internal.ir.Node leaveBinaryNode(jdk.nashorn.internal.ir.BinaryNode);
    descriptor: (Ljdk/nashorn/internal/ir/BinaryNode;)Ljdk/nashorn/internal/ir/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.BinaryNode binaryNode
         0: .line 120
            aload 0 /* this */
            aload 1 /* binaryNode */
            invokevirtual jdk.nashorn.internal.codegen.ProgramPoints.setProgramPoint:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
            areturn
        end local 1 // jdk.nashorn.internal.ir.BinaryNode binaryNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    1     1  binaryNode  Ljdk/nashorn/internal/ir/BinaryNode;
    MethodParameters:
            Name  Flags
      binaryNode  final

  public jdk.nashorn.internal.ir.Node leaveUnaryNode(jdk.nashorn.internal.ir.UnaryNode);
    descriptor: (Ljdk/nashorn/internal/ir/UnaryNode;)Ljdk/nashorn/internal/ir/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
        start local 1 // jdk.nashorn.internal.ir.UnaryNode unaryNode
         0: .line 125
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual jdk.nashorn.internal.codegen.ProgramPoints.setProgramPoint:(Ljdk/nashorn/internal/ir/Optimistic;)Ljdk/nashorn/internal/ir/Expression;
            areturn
        end local 1 // jdk.nashorn.internal.ir.UnaryNode unaryNode
        end local 0 // jdk.nashorn.internal.codegen.ProgramPoints this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Ljdk/nashorn/internal/codegen/ProgramPoints;
            0    1     1  unaryNode  Ljdk/nashorn/internal/ir/UnaryNode;
    MethodParameters:
           Name  Flags
      unaryNode  final
}
SourceFile: "ProgramPoints.java"