()
| 466 | } |
| 467 | |
| 468 | func (self *_parser) parseReturnStatement() ast.Statement { |
| 469 | idx := self.expect(token.RETURN) |
| 470 | |
| 471 | if !self.scope.inFunction { |
| 472 | self.error(idx, "Illegal return statement") |
| 473 | self.nextStatement() |
| 474 | return &ast.BadStatement{From: idx, To: self.idx} |
| 475 | } |
| 476 | |
| 477 | node := &ast.ReturnStatement{ |
| 478 | Return: idx, |
| 479 | } |
| 480 | |
| 481 | if !self.implicitSemicolon && self.token != token.SEMICOLON && self.token != token.RIGHT_BRACE && self.token != token.EOF { |
| 482 | node.Argument = self.parseExpression() |
| 483 | } |
| 484 | |
| 485 | self.semicolon() |
| 486 | |
| 487 | return node |
| 488 | } |
| 489 | |
| 490 | func (self *_parser) parseThrowStatement() ast.Statement { |
| 491 | idx := self.expect(token.THROW) |
no test coverage detected