It looks like I was wrong. Our current impl throws NOT_ALLOWED_ERR for getting errorCode *and* result before readyState is set to DONE.
And now that I think about it I think I like that best. If we returned NO_ERR from errorCode before DONE then it seems to imply that the request succeeded when the reality is we don't yet know. Checking errorCode before DONE is most likely a bug in the page script just as calling result before DONE, so I'm happy with throwing here. Sound ok? -Ben