How type coercion happens when [] == false?
<p>ECMA script <a href="http://ecma262-5.com/ELS5_HTML.htm#Section_11.9.3">documentation</a> says in <strong><em>abstract equality comparison alogorithm</em></strong> that, </p>

<blockquote>
  <p>If Type(y) is Boolean, return the result of the comparison x ==
  ToNumber(y).</p>
</blockquote>

<p>So for instance, <code>[] == false</code> will be coerced like,</p>

<pre><code>1.   [] == Number(false)
2.   [] == 0 //comparison happens here.
</code></pre>

<p>My question is, the coercion will be happened recursively until the two operands becomes primitive or not? How exactly the coercion happens here? </p>

<p>I presume the coercion will be repeated until the conversion of two operands to primitive, like below</p>

<pre><code>1.   [] == Number(false)
2.   [] == 0
3.   ToPrimitive([]) == 0
4.   0 == 0 
5.   true
</code></pre>

<p>Is my presumption true? If not can anyone explain what is wrong here? Also how can I verify the result of <code>ToPrimitive([])</code> is 0 in any browser's console ?</p>