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

Method parseNewExpression

parser/expression.go:694–725  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

692}
693
694func (self *_parser) parseNewExpression() ast.Expression {
695 idx := self.expect(token.NEW)
696 if self.token == token.PERIOD {
697 self.next()
698 if self.literal == "target" {
699 return &ast.MetaProperty{
700 Meta: &ast.Identifier{
701 Name: unistring.String(token.NEW.String()),
702 Idx: idx,
703 },
704 Property: self.parseIdentifier(),
705 }
706 }
707 self.errorUnexpectedToken(token.IDENTIFIER)
708 }
709 callee := self.parseLeftHandSideExpression()
710 if bad, ok := callee.(*ast.BadExpression); ok {
711 bad.From = idx
712 return bad
713 }
714 node := &ast.NewExpression{
715 New: idx,
716 Callee: callee,
717 }
718 if self.token == token.LEFT_PARENTHESIS {
719 argumentList, idx0, idx1 := self.parseArgumentList()
720 node.ArgumentList = argumentList
721 node.LeftParenthesis = idx0
722 node.RightParenthesis = idx1
723 }
724 return node
725}
726
727func (self *_parser) parseLeftHandSideExpression() ast.Expression {
728

Calls 8

expectMethod · 0.95
nextMethod · 0.95
parseIdentifierMethod · 0.95
errorUnexpectedTokenMethod · 0.95
parseArgumentListMethod · 0.95
StringTypeAlias · 0.92
StringMethod · 0.65

Tested by

no test coverage detected