()
| 3113 | // 11.13 Assignment Operators |
| 3114 | |
| 3115 | function parseAssignmentExpression() { |
| 3116 | var token, expr, right, list, startToken; |
| 3117 | |
| 3118 | startToken = lookahead; |
| 3119 | token = lookahead; |
| 3120 | |
| 3121 | expr = parseConditionalExpression(); |
| 3122 | |
| 3123 | if (expr.type === PlaceHolders.ArrowParameterPlaceHolder || match('=>')) { |
| 3124 | list = reinterpretAsCoverFormalsList(expr); |
| 3125 | |
| 3126 | if (list) { |
| 3127 | return parseArrowFunctionExpression(list, new WrappingNode(startToken)); |
| 3128 | } |
| 3129 | } |
| 3130 | |
| 3131 | if (matchAssign()) { |
| 3132 | // LeftHandSideExpression |
| 3133 | if (!isLeftHandSide(expr)) { |
| 3134 | tolerateError(Messages.InvalidLHSInAssignment); |
| 3135 | } |
| 3136 | |
| 3137 | // 11.13.1 |
| 3138 | if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) { |
| 3139 | tolerateUnexpectedToken(token, Messages.StrictLHSAssignment); |
| 3140 | } |
| 3141 | |
| 3142 | token = lex(); |
| 3143 | right = parseAssignmentExpression(); |
| 3144 | expr = new WrappingNode(startToken).finishAssignmentExpression(token.value, expr, right); |
| 3145 | } |
| 3146 | |
| 3147 | return expr; |
| 3148 | } |
| 3149 | |
| 3150 | // 11.14 Comma Operator |
| 3151 |
no test coverage detected