(inExpressionContext)
| 35372 | return expression; |
| 35373 | } |
| 35374 | function parseJsxExpression(inExpressionContext) { |
| 35375 | var pos = getNodePos(); |
| 35376 | if (!parseExpected(18 /* SyntaxKind.OpenBraceToken */)) { |
| 35377 | return undefined; |
| 35378 | } |
| 35379 | var dotDotDotToken; |
| 35380 | var expression; |
| 35381 | if (token() !== 19 /* SyntaxKind.CloseBraceToken */) { |
| 35382 | dotDotDotToken = parseOptionalToken(25 /* SyntaxKind.DotDotDotToken */); |
| 35383 | // Only an AssignmentExpression is valid here per the JSX spec, |
| 35384 | // but we can unambiguously parse a comma sequence and provide |
| 35385 | // a better error message in grammar checking. |
| 35386 | expression = parseExpression(); |
| 35387 | } |
| 35388 | if (inExpressionContext) { |
| 35389 | parseExpected(19 /* SyntaxKind.CloseBraceToken */); |
| 35390 | } |
| 35391 | else { |
| 35392 | if (parseExpected(19 /* SyntaxKind.CloseBraceToken */, /*message*/ undefined, /*shouldAdvance*/ false)) { |
| 35393 | scanJsxText(); |
| 35394 | } |
| 35395 | } |
| 35396 | return finishNode(factory.createJsxExpression(dotDotDotToken, expression), pos); |
| 35397 | } |
| 35398 | function parseJsxAttribute() { |
| 35399 | if (token() === 18 /* SyntaxKind.OpenBraceToken */) { |
| 35400 | return parseJsxSpreadAttribute(); |
no test coverage detected
searching dependent graphs…