Skip to content

Instantly share code, notes, and snippets.

@nakamura-to
Created May 8, 2012 01:15
Show Gist options
  • Save nakamura-to/2631807 to your computer and use it in GitHub Desktop.
Save nakamura-to/2631807 to your computer and use it in GitHub Desktop.
KageDB.open abstraction fragment
var onsuccess;
Object.defineProperty(req, "onsuccess", {
get: function () {
return onsuccess;
},
set: function (onsuccess_internal) {
req.removeEventListener('success', onsuccess);
onsuccess = function onsuccess(event) {
var db = event.target.result;
db.kage_kageDB = self;
helper.bindListeners(db, self, ["abort", "error"]);
try {
if (typeof version === 'number' && db.setVersion && db.version < version) {
db.setVersion(version);
if (self.onupgradeneeded) {
self.onupgradeneede(event);
}
}
onsuccess_internal.call(this, event);
} catch (e) {
if (self._autoClose) {
db.close();
}
throw e;
}
if (self._autoClose) {
db.close();
}
};
req.addEventListener('success', onsuccess);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment