()
| 1365 | } |
| 1366 | |
| 1367 | func (self *_parser) parseYieldExpression() ast.Expression { |
| 1368 | idx := self.expect(token.YIELD) |
| 1369 | |
| 1370 | if self.scope.inFuncParams { |
| 1371 | self.error(idx, "Yield expression not allowed in formal parameter") |
| 1372 | } |
| 1373 | |
| 1374 | node := &ast.YieldExpression{ |
| 1375 | Yield: idx, |
| 1376 | } |
| 1377 | |
| 1378 | if !self.implicitSemicolon && self.token == token.MULTIPLY { |
| 1379 | node.Delegate = true |
| 1380 | self.next() |
| 1381 | } |
| 1382 | |
| 1383 | if !self.implicitSemicolon && self.token != token.SEMICOLON && self.token != token.RIGHT_BRACE && self.token != token.EOF { |
| 1384 | var state parserState |
| 1385 | self.mark(&state) |
| 1386 | expr := self.parseAssignmentExpression() |
| 1387 | if _, bad := expr.(*ast.BadExpression); bad { |
| 1388 | expr = nil |
| 1389 | self.restore(&state) |
| 1390 | } |
| 1391 | node.Argument = expr |
| 1392 | } |
| 1393 | |
| 1394 | return node |
| 1395 | } |
| 1396 | |
| 1397 | func (self *_parser) parseExpression() ast.Expression { |
| 1398 | left := self.parseAssignmentExpression() |
no test coverage detected