<div dir="ltr"><div><div><div><div>While playing with my little async/await library, I noticed that I was often forced to parenthesize yield expressions as (yield exp) because of the low precedence of the yield operator. Typical patterns are:<br>
<br></div>var foo = (yield a()) + (yield b()) + (yield c());<br></div>if ((yield a()) && cond2 ...) ...<br><br></div><div>Looks more LISPish than JSish to me.<br></div><div><br></div>The low precedence plays well with yield _statements_, as it lets you write <br>
  yield a + b; <br>very much like you would write <br>  return a + b;<br><br></div><div>But it does not play as well with yield _expressions_.<br><br></div><div>The only solutions I can think of would be to have a different keyword for yield _expressions_ (await?) with the same precedence as other unary operators.<br>
<br></div><div>Anyway, this is only a small annoyance and I know it's getting late into the game. But I thought I'd raise the issue anyway.<br></div><div><br></div><div>Bruno<br></div></div>