If someone tries to reuse sync XHR later as async XHR, setting
for example timeout after the sync XHR has succeeded doesn't work before
Is there any reason to keep sync flag after abort() or successful request?
It was not cleared before because there were no side effects. Now that we have introduced side effects, we should clear it.
Actually, that would mean that doing send() after a successful synchronous send() becomes asynchronous. Not sure if that is a good idea.
you need to call open before send
Oops, you're right!