<!doctype html><html><head><title>XMLHttpRequest: implements EventTarget</title><scriptsrc="/resources/testharness.js"></script><scriptsrc="/resources/testharnessreport.js"></script><linkrel="help"href="https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget"data-tested-assertations=".."/><!-- Obviously, most of the stuff actually being tested here is covered in the DOM events spec, not in the XHR spec --></head><body><divid="log"></div><script>vartest=async_test(),x=null,expected=["a1","b1","c1","a2","b2","c2","a3","c3","a4","c4"],result=[]functioncallback(e){result.push("b"+x.readyState)test.step(function(){if(x.readyState==3)assert_unreached()})}test.step(function(){x=newXMLHttpRequest()x.onreadystatechange=function(){test.step(function(){result.push("a"+x.readyState)})}x.addEventListener("readystatechange",callback,false)x.addEventListener("readystatechange",function(){test.step(function(){result.push("c"+x.readyState)if(x.readyState==2)x.removeEventListener("readystatechange",callback,false)if(x.readyState==4){assert_array_equals(result,expected)test.done()}})},false)x.open("GET","folder.txt")x.send(null)})</script></body></html>