diff -r d334a616c023 -r e16a97fb364a src/cm/media/js/lib/yui/yui3-3.15.0/build/json-stringify/json-stringify.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui3-3.15.0/build/json-stringify/json-stringify.js Mon Mar 10 15:19:48 2014 +0100 @@ -0,0 +1,99 @@ +YUI.add('json-stringify', function (Y, NAME) { + +/** + * Provides Y.JSON.stringify method for converting objects to JSON strings. + * + * @module json + * @submodule json-stringify + * @for JSON + * @static + */ +var COLON = ':', + _JSON = Y.config.global.JSON; + +Y.mix(Y.namespace('JSON'), { + /** + * Serializes a Date instance as a UTC date string. Used internally by + * stringify. Override this method if you need Dates serialized in a + * different format. + * + * @method dateToString + * @param d {Date} The Date to serialize + * @return {String} stringified Date in UTC format YYYY-MM-DDTHH:mm:SSZ + * @deprecated Use a replacer function + * @static + */ + dateToString: function (d) { + function _zeroPad(v) { + return v < 10 ? '0' + v : v; + } + + return d.getUTCFullYear() + '-' + + _zeroPad(d.getUTCMonth() + 1) + '-' + + _zeroPad(d.getUTCDate()) + 'T' + + _zeroPad(d.getUTCHours()) + COLON + + _zeroPad(d.getUTCMinutes()) + COLON + + _zeroPad(d.getUTCSeconds()) + 'Z'; + }, + + /** + *
Converts an arbitrary value to a JSON string representation.
+ * + *Objects with cyclical references will trigger an exception.
+ * + *If a whitelist is provided, only matching object keys will be + * included. Alternately, a replacer function may be passed as the + * second parameter. This function is executed on every value in the + * input, and its return value will be used in place of the original value. + * This is useful to serialize specialized objects or class instances.
+ * + *If a positive integer or non-empty string is passed as the third + * parameter, the output will be formatted with carriage returns and + * indentation for readability. If a String is passed (such as "\t") it + * will be used once for each indentation level. If a number is passed, + * that number of spaces will be used.
+ * + * @method stringify + * @param o {MIXED} any arbitrary value to convert to JSON string + * @param w {Array|Function} (optional) whitelist of acceptable object + * keys to include, or a replacer function to modify the + * raw value before serialization + * @param ind {Number|String} (optional) indentation character or depth of + * spaces to format the output. + * @return {string} JSON string representation of the input + * @static + */ + stringify: function () { + return _JSON.stringify.apply(_JSON, arguments); + }, + + /** + *Number of occurrences of a special character within a single call to + * stringify that should trigger promotion of that character to a dedicated + * preprocess step for future calls. This is only used in environments + * that don't support native JSON, or when useNativeJSONStringify is set to + * false.
+ * + *So, if set to 50 and an object is passed to stringify that includes + * strings containing the special character \x07 more than 50 times, + * subsequent calls to stringify will process object strings through a + * faster serialization path for \x07 before using the generic, slower, + * replacement process for all special characters.
+ * + *To prime the preprocessor cache, set this value to 1, then call
+ * Y.JSON.stringify("(all special characters to
+ * cache)");, then return this setting to a more conservative
+ * value.
Special characters \ " \b \t \n \f \r are already cached.
+ * + * @property charCacheThreshold + * @static + * @default 100 + * @type {Number} + */ + charCacheThreshold: 100 +}); + + +}, '@VERSION@', {"requires": ["yui-base"]});