Even thought not mentioned in the spec, IE, Firefox and Opera does show this behaviour. Patch + test case will follow.
Created attachment 19266 [details] patch + test case Add readyState check in open : if the readyState is not open then raise a readyState event
Comment on attachment 19266 [details] patch + test case r=me, with comments. + int previousState = m_state; The type of this variable should be XMLHttpRequestState. + // Check previous state to avoid dispatching readyState event + // when calling several times open in a row Looks like it should be "calling open several times in a row". Also, it's better to put a period at the end of the sentence.
Created attachment 19295 [details] patch updated with Ap's comments > The type of this variable should be XMLHttpRequestState. changed. > Looks like it should be "calling open several times in a row". Also, it's > better to put a period at the end of the sentence. Changed words' order and added a period. I also updated the test case so that the result is more human readable.
Comment on attachment 19295 [details] patch updated with Ap's comments r=ap (no need for him to review again)
Committed revision 30626 (but I had to write a ChangeLog).
Bug 71985 asks to undo this.