@@ -1818,10 +1818,8 @@ namespace ts {
18181818
18191819 function getJSDocCommentsAndTagsWorker ( node : Node ) : void {
18201820 const parent = node . parent ;
1821- if ( parent &&
1822- ( parent . kind === SyntaxKind . PropertyAssignment ||
1823- parent . kind === SyntaxKind . PropertyDeclaration ||
1824- getNestedModuleDeclaration ( parent ) ) ) {
1821+ if ( ! parent ) return ;
1822+ if ( parent . kind === SyntaxKind . PropertyAssignment || parent . kind === SyntaxKind . PropertyDeclaration || getNestedModuleDeclaration ( parent ) ) {
18251823 getJSDocCommentsAndTagsWorker ( parent ) ;
18261824 }
18271825 // Try to recognize this pattern when node is initializer of variable declaration and JSDoc comments are on containing variable statement.
@@ -1830,16 +1828,18 @@ namespace ts {
18301828 // * @returns {number }
18311829 // */
18321830 // var x = function(name) { return name.length; }
1833- if ( parent && parent . parent &&
1831+ if ( parent . parent &&
18341832 ( getSingleVariableOfVariableStatement ( parent . parent ) === node || getSourceOfAssignment ( parent . parent ) ) ) {
18351833 getJSDocCommentsAndTagsWorker ( parent . parent ) ;
18361834 }
1837- if ( parent && parent . parent && parent . parent . parent &&
1838- ( getSingleInitializerOfVariableStatementOrPropertyDeclaration ( parent . parent . parent ) === node || getSourceOfDefaultedAssignment ( parent . parent . parent ) ) ) {
1835+ if ( parent . parent && parent . parent . parent &&
1836+ ( getSingleVariableOfVariableStatement ( parent . parent . parent )
1837+ || getSingleInitializerOfVariableStatementOrPropertyDeclaration ( parent . parent . parent ) === node
1838+ || getSourceOfDefaultedAssignment ( parent . parent . parent ) ) ) {
18391839 getJSDocCommentsAndTagsWorker ( parent . parent . parent ) ;
18401840 }
18411841 if ( isBinaryExpression ( node ) && getSpecialPropertyAssignmentKind ( node ) !== SpecialPropertyAssignmentKind . None ||
1842- parent && isBinaryExpression ( parent ) && getSpecialPropertyAssignmentKind ( parent ) !== SpecialPropertyAssignmentKind . None ||
1842+ isBinaryExpression ( parent ) && getSpecialPropertyAssignmentKind ( parent ) !== SpecialPropertyAssignmentKind . None ||
18431843 node . kind === SyntaxKind . PropertyAccessExpression && node . parent && node . parent . kind === SyntaxKind . ExpressionStatement ) {
18441844 getJSDocCommentsAndTagsWorker ( parent ) ;
18451845 }
0 commit comments