function GC() { // Force GC. if (window.GCController) GCController.collect(); else { for (var i = 0; i < 10000; ++i) { ({ }); } } } // Variable for the database that will never be forgotten var persistentDB = 0; // Variable for the forgotten database var forgottenDB = 0; var completed = 0; function checkCompletion() { if (++completed == 2 && window.layoutTestController) layoutTestController.notifyDone(); } function runTest() { persistentDB = openDatabaseWithSuffix("MultipleDatabasesTest1", "1.0", "Test one out of a set of databases being destroyed (1)", 32768); forgottenDB = openDatabaseWithSuffix("MultipleDatabasesTest2", "1.0", "Test one out of a set of databases being destroyed (2)", 32768); persistentDB.transaction(function(tx) { tx.executeSql("CREATE TABLE IF NOT EXISTS DataTest (randomData)", [], function(tx, result) { for (var i = 0; i < 25; ++i) tx.executeSql("INSERT INTO DataTest (randomData) VALUES (1)", []); }); }, function(err) { log("Persistent Database Transaction Errored - " + err); checkCompletion(); }, function() { log("Persistent Database Transaction Complete"); checkCompletion(); }); forgottenDB.transaction(function(tx) { tx.executeSql("CREATE TABLE IF NOT EXISTS EmptyTable (unimportantData)", []); }, function(err) { log("Forgotten Database Transaction Errored - " + err); forgottenDB = 0; GC(); checkCompletion(); }, function() { log("Forgotten Database Transaction Complete"); forgottenDB = 0; GC(); checkCompletion(); }); }