happstack-yui-7371.5.0: bundle/json-stringify/json-stringify-min.js
/*
YUI 3.7.1 (build 5627)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
YUI.add("json-stringify",function(e,t){function H(e){var t=typeof e;return g[t]||g[u.call(e)]||(t===c?e?c:h:l)}function B(e){return _[e]||(_[e]="\\u"+("0000"+(+e.charCodeAt(0)).toString(16)).slice(-4),D[e]=0),++D[e]===P&&(O.push([new RegExp(e,"g"),_[e]]),M=O.length),_[e]}function j(e){var t,n;for(t=0;t<M;t++)n=O[t],e=e.replace(n[0],n[1]);return L+e.replace(A,B)+L}function F(e,t){return e.replace(/^/gm,t)}function I(t,n,r){function M(e,t){var u=e[t],f=H(u),L=[],A=r?k:C,O,_,D,P,B;s(u)&&i(u.toJSON)?u=u.toJSON(t):f===m&&(u=l(u)),i(a)&&(u=a.call(e,t,u)),u!==e[t]&&(f=H(u));switch(f){case m:case c:break;case p:return j(u);case d:return isFinite(u)?u+y:h;case v:return u+y;case h:return h;default:return undefined}for(_=g.length-1;_>=0;--_)if(g[_]===u)throw new Error("JSON.stringify. Cyclical reference");O=o(u),g.push(u);if(O)for(_=u.length-1;_>=0;--_)L[_]=M(u,_)||h;else{D=n||u,_=0;for(P in D)D.hasOwnProperty(P)&&(B=M(u,P),B&&(L[_++]=j(P)+A+B))}return g.pop(),r&&L.length?O?E+N+F(L.join(T),r)+N+S:b+N+F(L.join(T),r)+N+w:O?E+L.join(x)+S:b+L.join(x)+w}if(t===undefined)return undefined;var a=i(n)?n:null,f=u.call(r).match(/String|Number/)||[],l=e.JSON.dateToString,g=[],L,A,O;D={},P=e.JSON.charCacheThreshold;if(a||!o(n))n=undefined;if(n){L={};for(A=0,O=n.length;A<O;++A)L[n[A]]=!0;n=L}return r=f[0]==="Number"?(new Array(Math.min(Math.max(0,r),10)+1)).join(" "):(r||y).slice(0,10),M({"":t},"")}var n=(e.config.win||{}).JSON,r=e.Lang,i=r.isFunction,s=r.isObject,o=r.isArray,u=Object.prototype.toString,a=u.call(n)==="[object JSON]"&&n,f=!!a,l="undefined",c="object",h="null",p="string",d="number",v="boolean",m="date",g={"undefined":l,string:p,"[object String]":p,number:d,"[object Number]":d,"boolean":v,"[object Boolean]":v,"[object Date]":m,"[object RegExp]":c},y="",b="{",w="}",E="[",S="]",x=",",T=",\n",N="\n",C=":",k=": ",L='"',A=/[\x00-\x07\x0b\x0e-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,O=[[/\\/g,"\\\\"],[/\"/g,'\\"'],[/\x08/g,"\\b"],[/\x09/g,"\\t"],[/\x0a/g,"\\n"],[/\x0c/g,"\\f"],[/\x0d/g,"\\r"]],M=O.length,_={},D,P;if(a)try{f="0"===a.stringify(0)}catch(q){f=!1}e.mix(e.namespace("JSON"),{useNativeStringify:f,dateToString:function(e){function t(e){return e<10?"0"+e:e}return e.getUTCFullYear()+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+C+t(e.getUTCMinutes())+C+t(e.getUTCSeconds())+"Z"},stringify:function(t,n,r){return a&&e.JSON.useNativeStringify?a.stringify(t,n,r):I(t,n,r)},charCacheThreshold:100})},"3.7.1",{requires:["yui-base"]});