@@ -654,6 +654,16 @@ const hasNonEmptyResolverCall = (node, resolverName) => {
654654 );
655655 }
656656
657+ case 'ArrayPattern':
658+ case 'ArrayExpression':
659+ return node.elements.some((element) => {
660+ return hasNonEmptyResolverCall(element, resolverName);
661+ });
662+
663+ case 'AssignmentPattern':
664+ return hasNonEmptyResolverCall(node.right, resolverName);
665+
666+ // Todo: Review all of the statements below this for relevance to yields/throw/return checkers
657667 case 'AssignmentExpression':
658668 case 'BinaryExpression':
659669 case 'LogicalExpression': {
@@ -668,11 +678,6 @@ const hasNonEmptyResolverCall = (node, resolverName) => {
668678 return hasNonEmptyResolverCall(subExpression, resolverName);
669679 });
670680
671- case 'ArrayExpression':
672- return node.elements.some((element) => {
673- return hasNonEmptyResolverCall(element, resolverName);
674- });
675-
676681 case 'ObjectExpression':
677682 return node.properties.some((property) => {
678683 return hasNonEmptyResolverCall(property, resolverName);
@@ -693,8 +698,8 @@ const hasNonEmptyResolverCall = (node, resolverName) => {
693698 });
694699 }
695700 case 'VariableDeclarator': {
696- // Todo: Check ` id ` too once ` ArrayPattern ` is implemented (destructuring default)
697- return hasNonEmptyResolverCall(node.init, resolverName);
701+ return hasNonEmptyResolverCall(node.id, resolverName) ||
702+ hasNonEmptyResolverCall(node.init, resolverName);
698703 }
699704
700705 case 'TaggedTemplateExpression':
@@ -710,8 +715,7 @@ const hasNonEmptyResolverCall = (node, resolverName) => {
710715 /*
711716 // Todo: As relevant, also check these in return/throw and yield checks
712717
713- case 'AssignmentPattern': // Default destructuring value
714- case 'ArrayPattern': case 'ObjectPattern':
718+ case 'ObjectPattern':
715719
716720 case 'ClassProperty':
717721 case 'ClassDeclaration': case 'ClassExpression': case 'MethodDefinition':
@@ -826,14 +830,22 @@ const hasYieldValue = (node, checkYieldReturnValue) => {
826830 },
827831 );
828832 }
833+ case 'ArrayPattern':
834+ case 'ArrayExpression':
835+ return node.elements.some((element) => {
836+ return hasYieldValue(element, checkYieldReturnValue);
837+ });
838+ case 'AssignmentPattern':
839+ return hasYieldValue(node.right, checkYieldReturnValue);
840+
829841 case 'VariableDeclaration': {
830842 return node.declarations.some((nde) => {
831843 return hasYieldValue(nde, checkYieldReturnValue);
832844 });
833845 }
834846 case 'VariableDeclarator': {
835- // Todo: Check ` id ` too once ` ArrayPattern ` is implemented (destructuring default)
836- return hasYieldValue(node.init, checkYieldReturnValue);
847+ return hasYieldValue(node.id, checkYieldReturnValue) ||
848+ hasYieldValue(node.init, checkYieldReturnValue);
837849 }
838850 case 'YieldExpression': {
839851 if (checkYieldReturnValue) {
0 commit comments