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 debug("Casting object to class " + class_constructor + "\n");
8 obj = eval("new " + class_constructor + "(obj)");
9 debug("My Classname: " + obj.classname);
18 function JSON2js (json) {
20 json = String(json).replace( /\/\*--\s*S\w*?\s*?\s+\w+\s*--\*\//g, 'Cast(');
21 json = String(json).replace( /\/\*--\s*E\w*?\s*?\s+(\w+)\s*--\*\//g, ', "$1")');
23 debug("=======================\n" + json);
28 eval( 'obj = ' + json );
30 debug("Error building JSON object with string " + json );
38 function js2JSON(arg) {
41 debug( "Running js2JSON on " + arg );
48 if (arg._isfieldmapper) {
49 return "/*--S acp*/" + js2JSON(arg.array) + "/*--E acp*/";
53 if (arg.constructor == Array) {
55 for (i = 0; i < arg.length; ++i) {
67 } else if (typeof arg.toString != 'undefined') {
75 o += js2JSON(i) + ':' + v;
81 if ( arg.class_name() ) {
82 obj_start = '/*--S ' + arg.class_name() + '--*/{';
83 obj_end = '}/*--E ' + arg.class_name() + '--*/';
86 o = obj_start + o + obj_end;
105 return '"' + String(arg).replace(/(["\\])/g, '\\$1') + '"';