This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
In a version change transaction: store = db.createObjectStore("store"); db.deleteObjectStore("store"); store.put(0, 0); // throws InvalidStateError since object is deleted But consider: store = db.createObjectStore("store"); store.put(0, 0); store.openCursor().onsuccess = function(e) { var cursor = e.target.result; if (cursor) { db.deleteObjectStore("store"); cursor.continue(); } }; The behavior here does not appear to be specified. It seems to me it should also throw InvalidStateError. This could be specified by adding to the operation descriptions for IDBIndex continue, advance, update and delete: "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError." (The same would apply to operations on an index if its object store is deleted. That also seems underspecified.)
Resolved in https://dvcs.w3.org/hg/IndexedDB/rev/192dbbcb896f This may be considered a normative change, but the previous behavior in this case would be undefined.