MCPcopy
hub / github.com/jquery/esprima / reinterpretExpressionAsPattern

Method reinterpretExpressionAsPattern

src/parser.ts:983–1017  ·  view source on GitHub ↗
(expr)

Source from the content-addressed store, hash-verified

981 // https://tc39.github.io/ecma262/#sec-grouping-operator
982
983 reinterpretExpressionAsPattern(expr) {
984 switch (expr.type) {
985 case Syntax.Identifier:
986 case Syntax.MemberExpression:
987 case Syntax.RestElement:
988 case Syntax.AssignmentPattern:
989 break;
990 case Syntax.SpreadElement:
991 expr.type = Syntax.RestElement;
992 this.reinterpretExpressionAsPattern(expr.argument);
993 break;
994 case Syntax.ArrayExpression:
995 expr.type = Syntax.ArrayPattern;
996 for (let i = 0; i < expr.elements.length; i++) {
997 if (expr.elements[i] !== null) {
998 this.reinterpretExpressionAsPattern(expr.elements[i]);
999 }
1000 }
1001 break;
1002 case Syntax.ObjectExpression:
1003 expr.type = Syntax.ObjectPattern;
1004 for (let i = 0; i < expr.properties.length; i++) {
1005 this.reinterpretExpressionAsPattern(expr.properties[i].value);
1006 }
1007 break;
1008 case Syntax.AssignmentExpression:
1009 expr.type = Syntax.AssignmentPattern;
1010 delete expr.operator;
1011 this.reinterpretExpressionAsPattern(expr.left);
1012 break;
1013 default:
1014 // Allow other node type for tolerant parsing.
1015 break;
1016 }
1017 }
1018
1019 parseGroupExpression(): ArrowParameterPlaceHolderNode | Node.Expression {
1020 let expr;

Calls

no outgoing calls

Tested by

no test coverage detected