Oh, lovely. Apparently I lied about the first one being consistent. I get that Chrome, Firefox, Safari, and Opera match the behavior I implemented in this patch. IE9 and IE10 do not. In their implementation, removeEventListener never affects the current dispatchEvent call.

IE's behavior is, honestly, less ridiculous to implement. I personally don't really care much and just want an event listener removing itself to not explode horribly. Other uses don't seem terriblt important, IMO.

(Also, for the second, Opera (pre-Chromium) also does ONE THREE TWO FOUR like WebKit/Blink. IE and Firefox do ONE TWO THREE FOUR.)