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

Method reinterpretAsArrayAssignmentPattern

parser/expression.go:1423–1445  ·  view source on GitHub ↗
(left *ast.ArrayLiteral)

Source from the content-addressed store, hash-verified

1421}
1422
1423func (self *_parser) reinterpretAsArrayAssignmentPattern(left *ast.ArrayLiteral) ast.Expression {
1424 value := left.Value
1425 var rest ast.Expression
1426 for i, item := range value {
1427 if spread, ok := item.(*ast.SpreadElement); ok {
1428 if i != len(value)-1 {
1429 self.error(item.Idx0(), "Rest element must be last element")
1430 return &ast.BadExpression{From: left.Idx0(), To: left.Idx1()}
1431 }
1432 self.checkComma(spread.Expression.Idx1(), left.RightBracket)
1433 rest = self.reinterpretAsDestructAssignTarget(spread.Expression)
1434 value = value[:len(value)-1]
1435 } else {
1436 value[i] = self.reinterpretAsAssignmentElement(item)
1437 }
1438 }
1439 return &ast.ArrayPattern{
1440 LeftBracket: left.LeftBracket,
1441 RightBracket: left.RightBracket,
1442 Elements: value,
1443 Rest: rest,
1444 }
1445}
1446
1447func (self *_parser) reinterpretArrayAssignPatternAsBinding(pattern *ast.ArrayPattern) *ast.ArrayPattern {
1448 for i, item := range pattern.Elements {

Calls 6

errorMethod · 0.95
checkCommaMethod · 0.95
Idx0Method · 0.65
Idx1Method · 0.65

Tested by

no test coverage detected