abstract class com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor extends com.oracle.js.parser.ir.visitor.NodeVisitor<com.oracle.js.parser.ir.LexicalContext>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor
super_class: com.oracle.js.parser.ir.visitor.NodeVisitor
{
final com.oracle.js.parser.Parser this$0;
descriptor: Lcom/oracle/js/parser/Parser;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.js.parser.Parser, com.oracle.js.parser.ir.LexicalContext);
descriptor: (Lcom/oracle/js/parser/Parser;Lcom/oracle/js/parser/ir/LexicalContext;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.this$0:Lcom/oracle/js/parser/Parser;
1: aload 0
aload 2
invokespecial com.oracle.js.parser.ir.visitor.NodeVisitor.<init>:(Lcom/oracle/js/parser/ir/LexicalContext;)V
2: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/js/parser/Parser$VerifyDestructuringPatternNodeVisitor;
0 3 2 lc Lcom/oracle/js/parser/ir/LexicalContext;
MethodParameters:
Name Flags
this$0 final
lc
public boolean enterLiteralNode(com.oracle.js.parser.ir.LiteralNode<?>);
descriptor: (Lcom/oracle/js/parser/ir/LiteralNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.js.parser.ir.LiteralNode.isArray:()Z
ifeq 19
1: aload 1
invokevirtual com.oracle.js.parser.ir.LiteralNode.isParenthesized:()Z
ifeq 3
2: aload 0
getfield com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.this$0:Lcom/oracle/js/parser/Parser;
ldc "invalid.lvalue"
iconst_0
anewarray java.lang.String
invokestatic com.oracle.js.parser.AbstractParser.message:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
aload 1
invokevirtual com.oracle.js.parser.ir.LiteralNode.getToken:()J
invokevirtual com.oracle.js.parser.Parser.error:(Ljava/lang/String;J)Lcom/oracle/js/parser/ParserException;
athrow
3: StackMap locals:
StackMap stack:
aload 1
checkcast com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode
invokevirtual com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode.hasSpread:()Z
ifeq 5
aload 1
checkcast com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode
invokevirtual com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode.hasTrailingComma:()Z
ifeq 5
4: aload 0
getfield com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.this$0:Lcom/oracle/js/parser/Parser;
ldc "Rest element must be last"
aload 1
invokevirtual com.oracle.js.parser.ir.LiteralNode.getElementExpressions:()Ljava/util/List;
aload 1
invokevirtual com.oracle.js.parser.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 com.oracle.js.parser.ir.Expression
invokevirtual com.oracle.js.parser.ir.Expression.getToken:()J
invokevirtual com.oracle.js.parser.Parser.error:(Ljava/lang/String;J)Lcom/oracle/js/parser/ParserException;
athrow
5: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 6: aload 1
invokevirtual com.oracle.js.parser.ir.LiteralNode.getElementExpressions:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 17
StackMap locals: com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor com.oracle.js.parser.ir.LiteralNode int top java.util.Iterator
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.js.parser.ir.Expression
astore 3
start local 3 8: aload 3
ifnull 17
9: iload 2
ifeq 11
10: aload 0
getfield com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.this$0:Lcom/oracle/js/parser/Parser;
ldc "Unexpected element after rest element"
aload 3
invokevirtual com.oracle.js.parser.ir.Expression.getToken:()J
invokevirtual com.oracle.js.parser.Parser.error:(Ljava/lang/String;J)Lcom/oracle/js/parser/ParserException;
athrow
11: StackMap locals: com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor com.oracle.js.parser.ir.LiteralNode int com.oracle.js.parser.ir.Expression java.util.Iterator
StackMap stack:
aload 3
getstatic com.oracle.js.parser.TokenType.SPREAD_ARRAY:Lcom/oracle/js/parser/TokenType;
invokevirtual com.oracle.js.parser.ir.Expression.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
ifeq 16
12: iconst_1
istore 2
13: aload 3
checkcast com.oracle.js.parser.ir.UnaryNode
invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
astore 5
start local 5 14: aload 0
aload 5
invokevirtual com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.verifySpreadElement:(Lcom/oracle/js/parser/ir/Expression;)V
end local 5 15: goto 17
16: StackMap locals:
StackMap stack:
aload 3
aload 0
invokevirtual com.oracle.js.parser.ir.Expression.accept:(Lcom/oracle/js/parser/ir/visitor/NodeVisitor;)Lcom/oracle/js/parser/ir/Node;
pop
end local 3 17: StackMap locals: com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor com.oracle.js.parser.ir.LiteralNode int top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
18: iconst_0
ireturn
end local 2 19: StackMap locals: com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor com.oracle.js.parser.ir.LiteralNode
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.enterDefault:(Lcom/oracle/js/parser/ir/Node;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/js/parser/Parser$VerifyDestructuringPatternNodeVisitor;
0 20 1 literalNode Lcom/oracle/js/parser/ir/LiteralNode<*>;
6 19 2 restElement Z
8 17 3 element Lcom/oracle/js/parser/ir/Expression;
14 15 5 lvalue Lcom/oracle/js/parser/ir/Expression;
Signature: (Lcom/oracle/js/parser/ir/LiteralNode<*>;)Z
MethodParameters:
Name Flags
literalNode
protected abstract void verifySpreadElement(com.oracle.js.parser.ir.Expression);
descriptor: (Lcom/oracle/js/parser/ir/Expression;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
lvalue
public boolean enterObjectNode(com.oracle.js.parser.ir.ObjectNode);
descriptor: (Lcom/oracle/js/parser/ir/ObjectNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.js.parser.ir.ObjectNode.isParenthesized:()Z
ifeq 2
1: aload 0
getfield com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.this$0:Lcom/oracle/js/parser/Parser;
ldc "invalid.lvalue"
iconst_0
anewarray java.lang.String
invokestatic com.oracle.js.parser.AbstractParser.message:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
aload 1
invokevirtual com.oracle.js.parser.ir.ObjectNode.getToken:()J
invokevirtual com.oracle.js.parser.Parser.error:(Ljava/lang/String;J)Lcom/oracle/js/parser/ParserException;
athrow
2: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 3: aload 1
invokevirtual com.oracle.js.parser.ir.ObjectNode.getElements:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor com.oracle.js.parser.ir.ObjectNode int top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.js.parser.ir.PropertyNode
astore 3
start local 3 5: aload 3
ifnull 15
6: iload 2
ifeq 8
7: aload 0
getfield com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.this$0:Lcom/oracle/js/parser/Parser;
ldc "Unexpected element after rest element"
aload 3
invokevirtual com.oracle.js.parser.ir.PropertyNode.getToken:()J
invokevirtual com.oracle.js.parser.Parser.error:(Ljava/lang/String;J)Lcom/oracle/js/parser/ParserException;
athrow
8: StackMap locals: com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor com.oracle.js.parser.ir.ObjectNode int com.oracle.js.parser.ir.PropertyNode java.util.Iterator
StackMap stack:
aload 3
invokevirtual com.oracle.js.parser.ir.PropertyNode.getKey:()Lcom/oracle/js/parser/ir/Expression;
astore 5
start local 5 9: aload 5
getstatic com.oracle.js.parser.TokenType.SPREAD_OBJECT:Lcom/oracle/js/parser/TokenType;
invokevirtual com.oracle.js.parser.ir.Expression.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
ifeq 14
10: iconst_1
istore 2
11: aload 5
checkcast com.oracle.js.parser.ir.UnaryNode
invokevirtual com.oracle.js.parser.ir.UnaryNode.getExpression:()Lcom/oracle/js/parser/ir/Expression;
astore 6
start local 6 12: aload 0
aload 6
invokevirtual com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.verifySpreadElement:(Lcom/oracle/js/parser/ir/Expression;)V
end local 6 13: goto 15
14: StackMap locals: com.oracle.js.parser.ir.Expression
StackMap stack:
aload 3
aload 0
invokevirtual com.oracle.js.parser.ir.PropertyNode.accept:(Lcom/oracle/js/parser/ir/visitor/NodeVisitor;)Lcom/oracle/js/parser/ir/Node;
pop
end local 5 end local 3 15: StackMap locals: com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor com.oracle.js.parser.ir.ObjectNode int top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
16: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/js/parser/Parser$VerifyDestructuringPatternNodeVisitor;
0 17 1 objectNode Lcom/oracle/js/parser/ir/ObjectNode;
3 17 2 restElement Z
5 15 3 property Lcom/oracle/js/parser/ir/PropertyNode;
9 15 5 key Lcom/oracle/js/parser/ir/Expression;
12 13 6 lvalue Lcom/oracle/js/parser/ir/Expression;
MethodParameters:
Name Flags
objectNode
public boolean enterPropertyNode(com.oracle.js.parser.ir.PropertyNode);
descriptor: (Lcom/oracle/js/parser/ir/PropertyNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
ifnull 3
1: aload 1
invokevirtual com.oracle.js.parser.ir.PropertyNode.getValue:()Lcom/oracle/js/parser/ir/Expression;
aload 0
invokevirtual com.oracle.js.parser.ir.Expression.accept:(Lcom/oracle/js/parser/ir/visitor/NodeVisitor;)Lcom/oracle/js/parser/ir/Node;
pop
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.enterDefault:(Lcom/oracle/js/parser/ir/Node;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/js/parser/Parser$VerifyDestructuringPatternNodeVisitor;
0 4 1 propertyNode Lcom/oracle/js/parser/ir/PropertyNode;
MethodParameters:
Name Flags
propertyNode
public boolean enterBinaryNode(com.oracle.js.parser.ir.BinaryNode);
descriptor: (Lcom/oracle/js/parser/ir/BinaryNode;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic com.oracle.js.parser.TokenType.ASSIGN:Lcom/oracle/js/parser/TokenType;
invokevirtual com.oracle.js.parser.ir.BinaryNode.isTokenType:(Lcom/oracle/js/parser/TokenType;)Z
ifeq 3
1: aload 1
invokevirtual com.oracle.js.parser.ir.BinaryNode.getLhs:()Lcom/oracle/js/parser/ir/Expression;
aload 0
invokevirtual com.oracle.js.parser.ir.Expression.accept:(Lcom/oracle/js/parser/ir/visitor/NodeVisitor;)Lcom/oracle/js/parser/ir/Node;
pop
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor.enterDefault:(Lcom/oracle/js/parser/ir/Node;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/js/parser/Parser$VerifyDestructuringPatternNodeVisitor;
0 4 1 binaryNode Lcom/oracle/js/parser/ir/BinaryNode;
MethodParameters:
Name Flags
binaryNode
}
Signature: Lcom/oracle/js/parser/ir/visitor/NodeVisitor<Lcom/oracle/js/parser/ir/LexicalContext;>;
SourceFile: "Parser.java"
NestHost: com.oracle.js.parser.Parser
InnerClasses:
private abstract VerifyDestructuringPatternNodeVisitor = com.oracle.js.parser.Parser$VerifyDestructuringPatternNodeVisitor of com.oracle.js.parser.Parser
public final ArrayLiteralNode = com.oracle.js.parser.ir.LiteralNode$ArrayLiteralNode of com.oracle.js.parser.ir.LiteralNode