IndexedDB Plugin - making promises look more like Jquery

I had written about an IndexedDB plugin for Jquery. It generated some interest in the community and was written about and bookmarked. You can play with the API using TrialTool or on the samples page.
One feedback I got was about the inconsistencies in the way promises were exposed on individual objects. For example, when the user adds or modifies data, the user can do things like

$.indexeddb("BookShop-1").objectStore("BookList").add(book).then(doneMessage, errorMessage);

This is exactly what Jquery provides in form of Deferred objects. However, there were ugly mismatches in cases of objects like objectStores or cursors that had a syntax like the following.

$.indexeddb("BookShop-1").promise.then(write, writeError);

Exposing the promises as a separate property may not be a great idea. As a part of this commit, I was able to make it follow the Jquery pattern. 


$.indexeddb("BookShop-1").then(write, writeError); 

The other interesting bug I noticed was the availability of the transaction object from an object Store. In Firefox 4, I can access a database from an opened object store using objectStore.transaction.db.name. This is however not possible in Chrome; the objectStore is much more simpler in Chrome. This was the root cause of the bug with indexes. This commit fixes the issue.

Right now, the library seems to have most IndexedDB objects captures. Feedback on the library and the constructs needed :)