As the spec states (yes, 5.1, that's intentional):
AssignmentExpression :
ConditionalExpression
LeftHandSideExpression = AssignmentExpression
LeftHandSideExpression AssignmentOperator AssignmentExpression
Based on this definition, I don't understand how a simple foo = 42 assignment is valid.
My understanding is, that foo = should always be followed by either a ConditionalExpression or essentially another assignment, but in that case, how will the production terminate if I don't use a ConditionalExpression? All further AssignmentExpression rules require either a ConditionalExpression or another AssignmentExpression.
What am I missing here?