Minor change
1 bugfix + static method Dexie.getDatabaseNames()

Static method that lists all database names. On opera and chrome, it
uses webkitGetDatabaseNames() and for all other browsers it uses a
localStorage entry to keep track of the created database names.

Also: Bugfix for IE10 when using mapToClass(), it failed to read objects
from database because IE10 doesnt support __proto__. The fallback
function for non-__proto__ supported browser had a little bug. Works
now.
Callback parameter to Dexie.getDatabaseNames()
Database Monitoring capability added

Possible to monitor databases on current origin when not knowing
anything about what databases that exists or their schemas.

Features that enables this:
1. Static method: Dexie.getDatabaseNames() - retrieve a list of
databases at current host.
2. Possible to call db.open() when not having specified any versions or
schemas. Database will then open any existing database and if no
database exists it will fail.
3. New property db.verno tells current version of the database.

Together this makes it possible to create a DB monitor tool that would
look up any databases on the current origin and display the schemas for
each of them as well as display or modify their contents.

(It also enables non-Dexie IDBs to be opened by Dexie without having to
translate the existing schema into a dexie format)

Other changes in this commit:
* Removed FireFox workaround since the situation is very rare and the
bug has been resolved in Firefox, so it wont be a problem in future.
Debugging improvement: reject Error keep orig

When onerror was fired, we used to derive the original Error object to a
simple [toString: function (){...}] object that would add some info to
the orignal object. What I found was that this hides the actual Error
object in the debugger so that you have to call toString() in the
debugger  watchers in order to see what went wrong. Now I changed this
so that the same Error instance is used but its message is extended with
the additional info.
New Property: MultiModifyError.failedKeys

MultiModifyError.failedKeys is the array of primary keys of the failed
write operations. Can be useful to lookup which object that failed. For
example if showing a table on an HTML page, you might need to lookup the
rows where the commit failed and mark them somehow.
Promise Bugfix

Returning another Promise instance from a catch() clause would not
regard the promise as catched, making the error still bubble to
transaction and abort the transaction.
Dexie.Syncable.js: Days of testing and bugfixing

Tested Dexie.Syncable by creating a sync provider towards the sync
server of my current project. The goal is to migrate my app from using
localStorage to be using indexedDB. I will replace the current db
framework built on localStorage and ajax syncing to be based on Dexie
and Dexie.Syncable.

When committing this, the framework is working as expected with my
application. The application runs in two different windows so one of the
windows becomes the master node that is responsible of doing the sync
calls to the server. There were errors in forms of dead-locks due to the
lack of db.vip() in some places.

Still, one of the unit tests for Dexie.Syncable fails. Need to check
what is wrong and do another commit soon.
db.vip() prohibit deadlock for on('ready') subscribers

A new method db.vip() is needed when subscribing to db.on('ready') and
returning a Promise; Returning a Promise from on db.on('ready') makes
the database stay blocked until the returned Promise is resolved. If the
subscriber then want to use database during this time, it's calls will
also be blocked, resulting in a deadlock. However, thanks to the magic
Promise.PSD.letThrough boolean, this deadlock never happens if the
subscriber is consequently using Dexie Promises to fullfill any async
job, but sometimes that is not possible. For example, the each() method
does not execute in the context of a Promise. Nor does any external
event or ajax call. In those cases, the problem can be worked around by
surrounding any database request with the db.vip() method.
Updated unit tests for Dexie.Syncable.
Corrected unit test and prohibit exception in opera
Ran all unit tests and samples after

Fixes:
* Dexie.js: Error events got bad description in Firefox. Bug introduced
in a recent checkin.
* Two unit tests not compatible with Dexie.Observable and marked such.
* test-syncable-dexie-tests.html updated to latest API.
* test-observable-dexie-tests.html revealed some bugs in
Dexie.Observable that are now corrected.
* test-syncable-dexie-tests.html revealed some bugs in Dexie.Syncable
that are now corrected.
Version 0.9.7.2 Released

For a complete change log, see history of src/Dexie.js from version
0.9.7.1 to 0.9.7.2.