(pos int, jsdoc jsdocScannerInfo, modifiers *ast.ModifierList, name *ast.Node, questionToken *ast.Node)
| 1968 | } |
| 1969 | |
| 1970 | func (p *Parser) parsePropertyDeclaration(pos int, jsdoc jsdocScannerInfo, modifiers *ast.ModifierList, name *ast.Node, questionToken *ast.Node) *ast.Node { |
| 1971 | postfixToken := questionToken |
| 1972 | if postfixToken == nil && !p.hasPrecedingLineBreak() { |
| 1973 | postfixToken = p.parseOptionalToken(ast.KindExclamationToken) |
| 1974 | } |
| 1975 | typeNode := p.parseTypeAnnotation() |
| 1976 | initializer := doInContext(p, ast.NodeFlagsYieldContext|ast.NodeFlagsAwaitContext|ast.NodeFlagsDisallowInContext, false, (*Parser).parseInitializer) |
| 1977 | p.parseSemicolonAfterPropertyName(name, typeNode, initializer) |
| 1978 | result := p.finishNode(p.factory.NewPropertyDeclaration(modifiers, name, postfixToken, typeNode, initializer), pos) |
| 1979 | p.withJSDoc(result, jsdoc) |
| 1980 | p.checkJSSyntax(result) |
| 1981 | return result |
| 1982 | } |
| 1983 | |
| 1984 | func (p *Parser) parseSemicolonAfterPropertyName(name *ast.Node, typeNode *ast.TypeNode, initializer *ast.Expression) { |
| 1985 | if p.token == ast.KindAtToken && !p.hasPrecedingLineBreak() { |
no test coverage detected