1 // in case we run on an implimentation that doesn't have "undefined";
4 function Cast (obj, class_constructor) {
6 if (eval(class_constructor + '["_isfieldmapper"]')) {
7 obj = eval("new " + class_constructor + "(obj)");
16 function JSON2js (json) {
18 json = String(json).replace( /\/\*--\s*S\w*?\s*?\s+\w+\s*--\*\//g, 'Cast(');
19 json = String(json).replace( /\/\*--\s*E\w*?\s*?\s+(\w+)\s*--\*\//g, ', "$1")');
24 eval( 'obj = ' + json );
26 debug("Error building JSON object with string " + E + "\nString:\n" + json );
34 function js2JSON(arg) {
42 if (arg._isfieldmapper) { /* magi-c-ast for fieldmapper objects */
43 return "/*--S " + arg.classname + " --*/" + js2JSON(arg.array) + "/*--E " + arg.classname + " --*/";
47 if (arg.constructor == Array) {
49 for (i = 0; i < arg.length; ++i) {
62 } else if (typeof arg.toString != 'undefined') {
70 o += js2JSON(i) + ':' + v;
94 return '"' + String(arg).replace(/(["\\])/g, '\\$1') + '"';