 (function () {     var m={             '\b': '\\b',             '\t': '\\t',             '\n': '\\n',             '\f': '\\f',             '\r': '\\r',             '"' : '\\"',             '\\': '\\\\'         },         s={             array: function (x) {                 var a=['['], b, f, i, l=x.length, v;                for (i=0;i < l;i += 1) {                     v=x[i];                    f=s[typeof v];                    if (f) {                         v=f(v);                        if (typeof v == 'string') {                             if (b) {                                 a[a.length]=',';                            }                             a[a.length]=v;                            b=true;                        }                     }                 }                 a[a.length]=']';                return a.join('');            },             'boolean': function (x) {                 return String(x);            },             'null': function (x) {                 return "null";            },             number: function (x) {                 return isFinite(x) ? String(x) : 'null';            },             object: function (x) {                 if (x) {                     if (x instanceof Array) {                         return s.array(x);                    }                     var a=['{'], b, f, i, v;                    for (i in x) {                         v=x[i];                        f=s[typeof v];                        if (f) {                             v=f(v);                            if (typeof v == 'string') {                                 if (b) {                                     a[a.length]=',';                                }                                 a.push(s.string(i), ':', v);                                b=true;                            }                         }                     }                     a[a.length]='}';                    return a.join('');                }                 return 'null';            },             string: function (x) {                 if (/["\\\x00-\x1f]/.test(x)) {                     x=x.replace(/([\x00-\x1f\\"])/g, function(a, b) {                         var c=m[b];                        if (c) {                             return c;                        }                         c=b.charCodeAt();                        return '\\u00' +                             Math.floor(c / 16).toString(16) +                             (c % 16).toString(16);                    });                }                 return '"' + x + '"';            }         };     Object.prototype.toJSONString=function () {         return s.object(this);    };     Array.prototype.toJSONString=function () {         return s.array(this);    };})();       String.prototype.parseJSON=function (filter)   {              try {                      if (/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.                          test(this))        {        var j=eval('(' + this + ')');       if (typeof filter === 'function')        {         function walk(k, v)          {          if (v && typeof v === 'object')           {           for (var i in v) {            if (v.hasOwnProperty(i))             {             v[i]=walk(i, v[i]);           }           }          }          return filter(k, v);        }         return walk('', j);       }                          return j;                    }                 }        catch (e)      {              }     alert('PARSE ERROR ' + this);             throw new SyntaxError("parseJSON");         };                   