Mercurial > browser-couch
diff browser-couch.js @ 41:3fd3aacf33fb
Test suite now passes on Safari.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Tue, 14 Apr 2009 10:40:30 -0700 |
parents | cf2122f596c8 |
children | 2d4a0ca10783 |
line wrap: on
line diff
--- a/browser-couch.js Tue Apr 14 10:22:28 2009 -0700 +++ b/browser-couch.js Tue Apr 14 10:40:30 2009 -0700 @@ -34,6 +34,15 @@ * * ***** END LICENSE BLOCK ***** */ +function isArray(value) { + // Taken from "Remedial Javascript" by Douglas Crockford: + // http://javascript.crockford.com/remedial.html + + return (typeof value.length === 'number' && + !(value.propertyIsEnumerable('length')) && + typeof value.splice === 'function'); +} + var ModuleLoader = { LIBS: {JSON: "json2.js"}, @@ -42,7 +51,7 @@ var i = 0; var lastLib = ""; - if (libs.constructor.name != "Array") + if (!isArray(libs)) libs = [libs]; function loadNextLib() { @@ -91,7 +100,7 @@ if (typeof(obj) == "object") { var copy; - if (obj.constructor.name == "Array") + if (isArray(obj)) copy = new Array(); else copy = new Object(); @@ -204,7 +213,7 @@ dict[key] = value; }; - this.delete = function Dictionary_delete(key) { + this.remove = function Dictionary_delete(key) { delete dict[key]; // TODO: If we're in JS 1.6 and have Array.indexOf(), we @@ -250,7 +259,7 @@ }; this.put = function DB_put(document, cb) { - if (document.constructor.name == "Array") { + if (isArray(document)) { for (var i = 0; i < document.length; i++) dict.set(document[i].id, document[i]); } else