Sounds good! I've updated the bug to reflect this decision. Israel On Friday, December 16, 2011 3:37 PM, Joshua Bell wrote: On Fri, Dec 16, 2011 at 3:30 PM, Jonas Sicking <[email protected]<mailto:[email protected]>> wrote: On Fri, Dec 16, 2011 at 2:41 PM, Israel Hilerio <[email protected]<mailto:[email protected]>> wrote: > On December 15, 2011 10:20 PM, Jonas Sicking wrote: >> On Thu, Dec 15, 2011 at 12:54 PM, Joshua Bell >> <[email protected]<mailto:[email protected]>> >> wrote: >> > Is there any particular reason why IDBTransaction.objectStore() and >> > IDBObjectStore.index() should be usable (i.e. return values vs. raise >> > exceptions) after the containing transaction has finished? >> > >> > Changing the spec so that calling these methods after the containing >> > transaction has finished raises InvalidStateError (or >> > TransactionInactiveError) could simplify implementations. >> >> That would be ok with me. >> >> Please file a bug though. >> >> / Jonas >> > Do we want to throw two Exceptions or one? > We currently throw a NOT_ALLOWED_ERR for IDBTransaction.objectStore() and a > TRANSACTION_INACTIVE_ERR for IDBObjectStore.index(). > > It seems that we could throw a TRANSACTION_INACTIVE_ERR for both. > What do you think? I think InvalidStateError is slightly more correct (for both IDBTransaction.objectStore() and IDBObjectStore.index) since we're not planning on throwing if those functions are called in between transaction-request callbacks, right?
I.e. TransactionInactiveError is more appropriate if it's always thrown whenever a transaction is inactive, which isn't the case here. / Jonas Agreed - that we should be consistent between methods, and that InvalidStateError is slightly more correct for the reason Jonas cites. For reference, Chrome currently throws NOT_ALLOWED_ERR for IDBTransaction.objectStore() but does not throw for IDBObjectStore.index().
