(boolean allowTrailingComma)
| 2665 | } |
| 2666 | |
| 2667 | private AstNode expr(boolean allowTrailingComma) throws IOException { |
| 2668 | AstNode pn = assignExpr(); |
| 2669 | int pos = pn.getPosition(); |
| 2670 | while (matchToken(Token.COMMA, true)) { |
| 2671 | int opPos = ts.tokenBeg; |
| 2672 | if (compilerEnv.isStrictMode() && !pn.hasSideEffects()) |
| 2673 | addStrictWarning("msg.no.side.effects", "", pos, nodeEnd(pn) - pos); |
| 2674 | if (peekToken() == Token.YIELD) reportError("msg.yield.parenthesized"); |
| 2675 | if (allowTrailingComma && peekToken() == Token.RP) { |
| 2676 | pn.putIntProp(Node.TRAILING_COMMA, 1); |
| 2677 | return pn; |
| 2678 | } |
| 2679 | pn = new InfixExpression(Token.COMMA, pn, assignExpr(), opPos); |
| 2680 | } |
| 2681 | return pn; |
| 2682 | } |
| 2683 | |
| 2684 | private AstNode assignExpr() throws IOException { |
| 2685 | int tt = peekToken(); |
no test coverage detected