MCPcopy Create free account
hub / github.com/dop251/goja / parseDoWhileStatement

Method parseDoWhileStatement

parser/statement.go:813–838  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

811}
812
813func (self *_parser) parseDoWhileStatement() ast.Statement {
814 inIteration := self.scope.inIteration
815 self.scope.inIteration = true
816 defer func() {
817 self.scope.inIteration = inIteration
818 }()
819
820 node := &ast.DoWhileStatement{}
821 node.Do = self.expect(token.DO)
822 if self.token == token.LEFT_BRACE {
823 node.Body = self.parseBlockStatement()
824 } else {
825 self.scope.allowLet = false
826 node.Body = self.parseStatement()
827 }
828
829 self.expect(token.WHILE)
830 self.expect(token.LEFT_PARENTHESIS)
831 node.Test = self.parseExpression()
832 node.RightParenthesis = self.expect(token.RIGHT_PARENTHESIS)
833 if self.token == token.SEMICOLON {
834 self.next()
835 }
836
837 return node
838}
839
840func (self *_parser) parseWhileStatement() ast.Statement {
841 idx := self.expect(token.WHILE)

Callers 1

parseStatementMethod · 0.95

Calls 5

expectMethod · 0.95
parseBlockStatementMethod · 0.95
parseStatementMethod · 0.95
parseExpressionMethod · 0.95
nextMethod · 0.95

Tested by

no test coverage detected