Ensure deleteDatabase() can run concurrently with transactions in other databases

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB;

indexedDB.deleteDatabase(dbname)
indexedDB.open(dbname)
db.createObjectStore('store')

Start a transaction against the first database:
trans = db.transaction('store', 'readonly')
trans.objectStore('store').get(0)

Delete a different database:
dbname2 = dbname + '2'
indexedDB.deleteDatabase(dbname2)
PASS success event was fired at delete request
PASS successfullyParsed is true

TEST COMPLETE

