Javascript Precedence of Parenthesis
<p>I'm playing with Rhino and noticed this strange behavior in what appears to be operator precedence:</p>

<pre><code>js&gt; {}+{}
NaN
js&gt; ''+{}+{}
[object Object][object Object]
js&gt; ''+({}+{})
[object Object][object Object]
</code></pre>

<p>I would expect the expression <code>''+({}+{})</code> to evaluate to <code>"NaN"</code>, since <code>{}+{}</code> should be evaluated first, yet this does not happen. I tested this out in V8 and Firefox and got the same result.</p>

<p>Why does it appear that Javascript does not follow the standard precedence given to parenthesis in this case (<code>4*(1+2)</code> is still the expected <code>12</code>)?</p>
