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

Method parseYieldExpression

parser/expression.go:1367–1395  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1365}
1366
1367func (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
1397func (self *_parser) parseExpression() ast.Expression {
1398 left := self.parseAssignmentExpression()

Callers 1

Calls 6

expectMethod · 0.95
errorMethod · 0.95
nextMethod · 0.95
markMethod · 0.95
restoreMethod · 0.95

Tested by

no test coverage detected