title: setTimeout behaviour with blocking code
body: <p>This is my test code (fiddle <a href="http://jsfiddle.net/Xvh55/" rel="noreferrer">here</a>):</p>
  
  <pre><code>console.log('Before wait');
  setTimeout(function () { console.log('Yo!'); }, 1000);
  var start = Date.now();
  while (Date.now() &lt; start + 3000) {}
  console.log('After wait');
  </code></pre>
  
  <p>This is the timeline of events in Chrome:</p>
  
  <ul>
  <li>Time 0 seconds: Prints "Before wait"</li>
  <li>Time 3 seconds: Prints "After wait", and then immediately after "Yo!"</li>
  </ul>
  
  <p>Is this behaviour according to spec? Why is it not</p>
  
  <ul>
  <li>Time 0 seconds: Prints "Before wait"</li>
  <li>Time 3 seconds: Prints "After wait"</li>
  <li>Time 4 seoncds: Prints "Yo!"</li>
  </ul>
  
  <p>?</p>