in src/parser.ts [1576:1604]
checkPatternParam(options, param) {
switch (param.type) {
case Syntax.Identifier:
this.validateParam(options, param, param.name);
break;
case Syntax.RestElement:
this.checkPatternParam(options, param.argument);
break;
case Syntax.AssignmentPattern:
this.checkPatternParam(options, param.left);
break;
case Syntax.ArrayPattern:
for (let i = 0; i < param.elements.length; i++) {
if (param.elements[i] !== null) {
this.checkPatternParam(options, param.elements[i]);
}
}
break;
case Syntax.ObjectPattern:
for (let i = 0; i < param.properties.length; i++) {
const property = param.properties[i];
this.checkPatternParam(options, (property.type === Syntax.RestElement) ? property : property.value);
}
break;
default:
break;
}
options.simple = options.simple && (param instanceof Node.Identifier);
}