diff options
Diffstat (limited to 'share/server/util.js')
-rw-r--r-- | share/server/util.js | 64 |
1 files changed, 3 insertions, 61 deletions
diff --git a/share/server/util.js b/share/server/util.js index bd4abc1d..c2e6600f 100644 --- a/share/server/util.js +++ b/share/server/util.js @@ -13,14 +13,7 @@ var Couch = { // moving this away from global so we can move to json2.js later toJSON : function (val) { - if (typeof(val) == "undefined") { - throw "Cannot encode 'undefined' value as JSON"; - } - if (typeof(val) == "xml") { // E4X support - val = val.toXMLString(); - } - if (val === null) { return "null"; } - return (Couch.toJSON.dispatcher[val.constructor.name])(val); + return JSON.stringify(val); }, compileFunction : function(source) { if (!source) throw(["error","not_found","missing function"]); @@ -47,55 +40,6 @@ var Couch = { } } -Couch.toJSON.subs = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', - '\r': '\\r', '"' : '\\"', '\\': '\\\\'}; -Couch.toJSON.dispatcher = { - "Array": function(v) { - var buf = []; - for (var i = 0; i < v.length; i++) { - buf.push(Couch.toJSON(v[i])); - } - return "[" + buf.join(",") + "]"; - }, - "Boolean": function(v) { - return v.toString(); - }, - "Date": function(v) { - var f = function(n) { return n < 10 ? '0' + n : n }; - return '"' + v.getUTCFullYear() + '-' + - f(v.getUTCMonth() + 1) + '-' + - f(v.getUTCDate()) + 'T' + - f(v.getUTCHours()) + ':' + - f(v.getUTCMinutes()) + ':' + - f(v.getUTCSeconds()) + 'Z"'; - }, - "Number": function(v) { - return isFinite(v) ? v.toString() : "null"; - }, - "Object": function(v) { - //if (v === null) return "null"; - var buf = []; - for (var k in v) { - if (!v.hasOwnProperty(k) || typeof(k) !== "string" || v[k] === undefined) { - continue; - } - buf.push(Couch.toJSON(k) + ": " + Couch.toJSON(v[k])); - } - return "{" + buf.join(",") + "}"; - }, - "String": function(v) { - if (/["\\\x00-\x1f]/.test(v)) { - v = v.replace(/([\x00-\x1f\\"])/g, function(a, b) { - var c = Couch.toJSON.subs[b]; - if (c) return c; - c = b.charCodeAt(); - return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16); - }); - } - return '"' + v + '"'; - } -}; - // prints the object as JSON, and rescues and logs any toJSON() related errors function respond(obj) { try { @@ -107,10 +51,8 @@ function respond(obj) { }; function log(message) { - // return; // idea: query_server_config option for log level - if (typeof message == "undefined") { - message = "Error: attempting to log message of 'undefined'."; - } else if (typeof message != "string") { + // idea: query_server_config option for log level + if (typeof message != "string") { message = Couch.toJSON(message); } respond(["log", message]); |