abstract class jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor extends jdk.nashorn.internal.ir.visitor.NodeVisitor<jdk.nashorn.internal.ir.LexicalContext>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor
  super_class: jdk.nashorn.internal.ir.visitor.NodeVisitor
{
  final jdk.nashorn.internal.parser.Parser this$0;
    descriptor: Ljdk/nashorn/internal/parser/Parser;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(jdk.nashorn.internal.parser.Parser, jdk.nashorn.internal.ir.LexicalContext);
    descriptor: (Ljdk/nashorn/internal/parser/Parser;Ljdk/nashorn/internal/ir/LexicalContext;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
        start local 2 // jdk.nashorn.internal.ir.LexicalContext lc
         0: .line 1723
            aload 0 /* this */
            aload 1
            putfield jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor.this$0:Ljdk/nashorn/internal/parser/Parser;
         1: .line 1724
            aload 0 /* this */
            aload 2 /* lc */
            invokespecial jdk.nashorn.internal.ir.visitor.NodeVisitor.<init>:(Ljdk/nashorn/internal/ir/LexicalContext;)V
         2: .line 1725
            return
        end local 2 // jdk.nashorn.internal.ir.LexicalContext lc
        end local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/nashorn/internal/parser/Parser$VerifyDestructuringPatternNodeVisitor;
            0    3     2    lc  Ljdk/nashorn/internal/ir/LexicalContext;
    MethodParameters:
        Name  Flags
      this$0  final
      lc      final

  public boolean enterLiteralNode(jdk.nashorn.internal.ir.LiteralNode<?>);
    descriptor: (Ljdk/nashorn/internal/ir/LiteralNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
        start local 1 // jdk.nashorn.internal.ir.LiteralNode literalNode
         0: .line 1729
            aload 1 /* literalNode */
            invokevirtual jdk.nashorn.internal.ir.LiteralNode.isArray:()Z
            ifeq 16
         1: .line 1730
            aload 1 /* literalNode */
            checkcast jdk.nashorn.internal.ir.LiteralNode$ArrayLiteralNode
            invokevirtual jdk.nashorn.internal.ir.LiteralNode$ArrayLiteralNode.hasSpread:()Z
            ifeq 3
            aload 1 /* literalNode */
            checkcast jdk.nashorn.internal.ir.LiteralNode$ArrayLiteralNode
            invokevirtual jdk.nashorn.internal.ir.LiteralNode$ArrayLiteralNode.hasTrailingComma:()Z
            ifeq 3
         2: .line 1731
            aload 0 /* this */
            getfield jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor.this$0:Ljdk/nashorn/internal/parser/Parser;
            ldc "Rest element must be last"
            aload 1 /* literalNode */
            invokevirtual jdk.nashorn.internal.ir.LiteralNode.getElementExpressions:()Ljava/util/List;
            aload 1 /* literalNode */
            invokevirtual jdk.nashorn.internal.ir.LiteralNode.getElementExpressions:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.nashorn.internal.ir.Expression
            invokevirtual jdk.nashorn.internal.ir.Expression.getToken:()J
            invokevirtual jdk.nashorn.internal.parser.Parser.error:(Ljava/lang/String;J)Ljdk/nashorn/internal/runtime/ParserException;
            athrow
         3: .line 1733
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* restElement */
        start local 2 // boolean restElement
         4: .line 1734
            aload 1 /* literalNode */
            invokevirtual jdk.nashorn.internal.ir.LiteralNode.getElementExpressions:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor jdk.nashorn.internal.ir.LiteralNode int top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.nashorn.internal.ir.Expression
            astore 3 /* element */
        start local 3 // jdk.nashorn.internal.ir.Expression element
         6: .line 1735
            aload 3 /* element */
            ifnull 14
         7: .line 1736
            iload 2 /* restElement */
            ifeq 9
         8: .line 1737
            aload 0 /* this */
            getfield jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor.this$0:Ljdk/nashorn/internal/parser/Parser;
            ldc "Unexpected element after rest element"
            aload 3 /* element */
            invokevirtual jdk.nashorn.internal.ir.Expression.getToken:()J
            invokevirtual jdk.nashorn.internal.parser.Parser.error:(Ljava/lang/String;J)Ljdk/nashorn/internal/runtime/ParserException;
            athrow
         9: .line 1739
      StackMap locals: jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor jdk.nashorn.internal.ir.LiteralNode int jdk.nashorn.internal.ir.Expression java.util.Iterator
      StackMap stack:
            aload 3 /* element */
            getstatic jdk.nashorn.internal.parser.TokenType.SPREAD_ARRAY:Ljdk/nashorn/internal/parser/TokenType;
            invokevirtual jdk.nashorn.internal.ir.Expression.isTokenType:(Ljdk/nashorn/internal/parser/TokenType;)Z
            ifeq 13
        10: .line 1740
            iconst_1
            istore 2 /* restElement */
        11: .line 1741
            aload 3 /* element */
            checkcast jdk.nashorn.internal.ir.UnaryNode
            invokevirtual jdk.nashorn.internal.ir.UnaryNode.getExpression:()Ljdk/nashorn/internal/ir/Expression;
            astore 5 /* lvalue */
        start local 5 // jdk.nashorn.internal.ir.Expression lvalue
        12: .line 1742
            aload 0 /* this */
            aload 5 /* lvalue */
            invokevirtual jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor.verifySpreadElement:(Ljdk/nashorn/internal/ir/Expression;)V
        end local 5 // jdk.nashorn.internal.ir.Expression lvalue
        13: .line 1744
      StackMap locals:
      StackMap stack:
            aload 3 /* element */
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.ir.Expression.accept:(Ljdk/nashorn/internal/ir/visitor/NodeVisitor;)Ljdk/nashorn/internal/ir/Node;
            pop
        end local 3 // jdk.nashorn.internal.ir.Expression element
        14: .line 1734
      StackMap locals: jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor jdk.nashorn.internal.ir.LiteralNode int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        15: .line 1747
            iconst_0
            ireturn
        end local 2 // boolean restElement
        16: .line 1749
      StackMap locals: jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor jdk.nashorn.internal.ir.LiteralNode
      StackMap stack:
            aload 0 /* this */
            aload 1 /* literalNode */
            invokevirtual jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor.enterDefault:(Ljdk/nashorn/internal/ir/Node;)Z
            ireturn
        end local 1 // jdk.nashorn.internal.ir.LiteralNode literalNode
        end local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Ljdk/nashorn/internal/parser/Parser$VerifyDestructuringPatternNodeVisitor;
            0   17     1  literalNode  Ljdk/nashorn/internal/ir/LiteralNode<*>;
            4   16     2  restElement  Z
            6   14     3      element  Ljdk/nashorn/internal/ir/Expression;
           12   13     5       lvalue  Ljdk/nashorn/internal/ir/Expression;
    Signature: (Ljdk/nashorn/internal/ir/LiteralNode<*>;)Z
    MethodParameters:
             Name  Flags
      literalNode  final

  protected abstract void verifySpreadElement(jdk.nashorn.internal.ir.Expression);
    descriptor: (Ljdk/nashorn/internal/ir/Expression;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      lvalue  

  public boolean enterObjectNode(jdk.nashorn.internal.ir.ObjectNode);
    descriptor: (Ljdk/nashorn/internal/ir/ObjectNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
        start local 1 // jdk.nashorn.internal.ir.ObjectNode objectNode
         0: .line 1757
            iconst_1
            ireturn
        end local 1 // jdk.nashorn.internal.ir.ObjectNode objectNode
        end local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljdk/nashorn/internal/parser/Parser$VerifyDestructuringPatternNodeVisitor;
            0    1     1  objectNode  Ljdk/nashorn/internal/ir/ObjectNode;
    MethodParameters:
            Name  Flags
      objectNode  final

  public boolean enterPropertyNode(jdk.nashorn.internal.ir.PropertyNode);
    descriptor: (Ljdk/nashorn/internal/ir/PropertyNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
        start local 1 // jdk.nashorn.internal.ir.PropertyNode propertyNode
         0: .line 1762
            aload 1 /* propertyNode */
            invokevirtual jdk.nashorn.internal.ir.PropertyNode.getValue:()Ljdk/nashorn/internal/ir/Expression;
            ifnull 3
         1: .line 1763
            aload 1 /* propertyNode */
            invokevirtual jdk.nashorn.internal.ir.PropertyNode.getValue:()Ljdk/nashorn/internal/ir/Expression;
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.ir.Expression.accept:(Ljdk/nashorn/internal/ir/visitor/NodeVisitor;)Ljdk/nashorn/internal/ir/Node;
            pop
         2: .line 1764
            iconst_0
            ireturn
         3: .line 1766
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* propertyNode */
            invokevirtual jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor.enterDefault:(Ljdk/nashorn/internal/ir/Node;)Z
            ireturn
        end local 1 // jdk.nashorn.internal.ir.PropertyNode propertyNode
        end local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Ljdk/nashorn/internal/parser/Parser$VerifyDestructuringPatternNodeVisitor;
            0    4     1  propertyNode  Ljdk/nashorn/internal/ir/PropertyNode;
    MethodParameters:
              Name  Flags
      propertyNode  final

  public boolean enterBinaryNode(jdk.nashorn.internal.ir.BinaryNode);
    descriptor: (Ljdk/nashorn/internal/ir/BinaryNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
        start local 1 // jdk.nashorn.internal.ir.BinaryNode binaryNode
         0: .line 1772
            aload 1 /* binaryNode */
            getstatic jdk.nashorn.internal.parser.TokenType.ASSIGN:Ljdk/nashorn/internal/parser/TokenType;
            invokevirtual jdk.nashorn.internal.ir.BinaryNode.isTokenType:(Ljdk/nashorn/internal/parser/TokenType;)Z
            ifeq 3
         1: .line 1773
            aload 1 /* binaryNode */
            invokevirtual jdk.nashorn.internal.ir.BinaryNode.lhs:()Ljdk/nashorn/internal/ir/Expression;
            aload 0 /* this */
            invokevirtual jdk.nashorn.internal.ir.Expression.accept:(Ljdk/nashorn/internal/ir/visitor/NodeVisitor;)Ljdk/nashorn/internal/ir/Node;
            pop
         2: .line 1775
            iconst_0
            ireturn
         3: .line 1777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* binaryNode */
            invokevirtual jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor.enterDefault:(Ljdk/nashorn/internal/ir/Node;)Z
            ireturn
        end local 1 // jdk.nashorn.internal.ir.BinaryNode binaryNode
        end local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Ljdk/nashorn/internal/parser/Parser$VerifyDestructuringPatternNodeVisitor;
            0    4     1  binaryNode  Ljdk/nashorn/internal/ir/BinaryNode;
    MethodParameters:
            Name  Flags
      binaryNode  final

  public boolean enterUnaryNode(jdk.nashorn.internal.ir.UnaryNode);
    descriptor: (Ljdk/nashorn/internal/ir/UnaryNode;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
        start local 1 // jdk.nashorn.internal.ir.UnaryNode unaryNode
         0: .line 1783
            aload 1 /* unaryNode */
            getstatic jdk.nashorn.internal.parser.TokenType.SPREAD_ARRAY:Ljdk/nashorn/internal/parser/TokenType;
            invokevirtual jdk.nashorn.internal.ir.UnaryNode.isTokenType:(Ljdk/nashorn/internal/parser/TokenType;)Z
            ifeq 2
         1: .line 1785
            iconst_1
            ireturn
         2: .line 1787
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unaryNode */
            invokevirtual jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor.enterDefault:(Ljdk/nashorn/internal/ir/Node;)Z
            ireturn
        end local 1 // jdk.nashorn.internal.ir.UnaryNode unaryNode
        end local 0 // jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Ljdk/nashorn/internal/parser/Parser$VerifyDestructuringPatternNodeVisitor;
            0    3     1  unaryNode  Ljdk/nashorn/internal/ir/UnaryNode;
    MethodParameters:
           Name  Flags
      unaryNode  final
}
Signature: Ljdk/nashorn/internal/ir/visitor/NodeVisitor<Ljdk/nashorn/internal/ir/LexicalContext;>;
SourceFile: "Parser.java"
NestHost: jdk.nashorn.internal.parser.Parser
InnerClasses:
  public final ArrayLiteralNode = jdk.nashorn.internal.ir.LiteralNode$ArrayLiteralNode of jdk.nashorn.internal.ir.LiteralNode
  private abstract VerifyDestructuringPatternNodeVisitor = jdk.nashorn.internal.parser.Parser$VerifyDestructuringPatternNodeVisitor of jdk.nashorn.internal.parser.Parser