-
Notifications
You must be signed in to change notification settings - Fork 67
Description
There's a note in the request definition:
Requests are not typically re-used, but there are exceptions. When a cursor is iterated, the success of the iteration is reported on the same request object used to open the cursor. And when an upgrade transaction is necessary, the same open request is used for both the upgradeneeded event and final result of the open operation itself. In both cases, the request’s done flag will be unset then set again, and the result may change.
For cursor iteration there are explicit "Unset the done flag on request." steps (e.g. in continue()). But there's nothing in the steps for upgrade transactions.
I'd expect a final step there that unsets the done flag. Ostensibly this would be visible as a change in the request's readyState
between the "complete" event fired at the transaction and the "success" event fired at the request.
However... I'm unable to test this in either Chrome or Firefox. In Chrome, at least, the code that queues the "complete" and "success" doesn't really leave room for anything to happen in between, at least not in a non-racy way.
So... the note is inconsistent with the spec, but changing the spec without a test seems weird.