Can't understand the minimal timeout value in `setTimeout()`
<p>I see in some question <a href="https://stackoverflow.com/questions/9647215/what-is-minimum-millisecond-value-of-settimeout">What is minimum millisecond value of setTimeout?</a> people talk about the "minimal timeout of setTimeout", but I can't really understand it.</p>

<p>It says the minimal timeout value in HTML5 spec is <code>4ms</code>, so I think, if I run following code in browsers (say Chrome):</p>

<pre><code>setTimeout(function() { console.log("333"); }, 3);
setTimeout(function() { console.log("222"); }, 2);
setTimeout(function() { console.log("111"); }, 1);
setTimeout(function() { console.log("000"); }, 0);
</code></pre>

<p>the output should be:</p>

<pre><code>333
222
111
000
</code></pre>

<p>But actually it is:</p>

<pre><code>111
000
222
333
</code></pre>

<p>Seems like they still be run according to the specified timeout even if they are less than 4 (expect the <code>0</code> and <code>1</code>)</p>

<p>How should I understand the value <code>4ms</code>?</p>