In the readAsText in the latest draft [1] I see that readyState gets set to done "When the blob has been read into memory fully". I see that elsewhere in the progress notification description, "When the data from the blob has been completely read into memory, queue a task to fire a progress event called load". So readyState changes separately from the sending of that progress event, since one is direct and the other queued, and script could observe the state in between.
In the discussion at [2] we arranged to avoid that for FileWriter. We should do the same for FileReader. Eric [1] http://dev.w3.org/2006/webapi/FileAPI/ [2] http://lists.w3.org/Archives/Public/public-webapps/2010OctDec/0912.html