title: setTimeout from within an event handler not appearing to fire
body: <p>Am aware that not all setTimout tasks put on the queue are actually fired (thanks a post by bobnice on this). Yet I can't understand why it would not be reached in this case :</p>
  
  <p>I add the following event handler to an anchor link (via <code>addEventListener( 'click', ...</code> ) to experiment with so-called "in-flight event modification" :</p>
  
  <pre><code>var f = function(e) {  
      e.preventDefault(); 
      e.stopPropagation(); // capture first event
      e2 = new MouseEvent("click",{metaKey:true}); // create second event where we hold meta
      e.target.removeEventListener('click', f, false); // remove this handler so no stackoverflow
      e.target.dispatchEvent(e2); // dispatch second event, a "modified" first event.
  };
  </code></pre>
  
  <p>Works fine.</p>
  
  <p>However, an earlier version had this :</p>
  
  <pre><code>setTimeout( 0, function () {
      e.target.dispatchEvent(e2); // dispatch second event, a "modified" first event.
  });
  </code></pre>
  
  <p>From within the handler (as a debugging patch to try to avoid stackoverflow when I couldn't get the removeEventListener to work -- I had neglected to assign my function <code>f</code> to a variable).</p>
  
  <p>Why would this setTimeout not execute? In  my handful of tests, it never once executed the dispatching of the second event from within the listener for the first event. </p>
  
  <p>Clearly, the setTimeout puts the execution context of<code>dispatchEvent</code> outside of the stack frame for the function <code>f</code>, as <code>f</code> returns before <code>dispatchEvent</code> fires. </p>
  
  <p>Or, rather, <em>doesn't</em> fire.</p>
  
  <p>I would like to understand exactly why it didn't fire in this previous version of the code.</p>