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 */
44 var arr = new Array();
45 if( arg.array.constructor != Array ) {
46 for( var i = 0; i < arg.array.length, i++ ) {
47 arr[i] = arg.array[i];
52 return "/*--S " + arg.classname + " --*/" + js2JSON(arg.array) + "/*--E " + arg.classname + " --*/";
56 if (arg.constructor == Array) {
58 for (i = 0; i < arg.length; ++i) {
71 } else if (typeof arg.toString != 'undefined') {
79 o += js2JSON(i) + ':' + v;
103 return '"' + String(arg).replace(/(["\\])/g, '\\$1') + '"';