src/cm/media/js/lib/yui/yui3-3.15.0/build/json-stringify/json-stringify.js
changeset 602 e16a97fb364a
--- /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';
+    },
+
+    /**
+     * <p>Converts an arbitrary value to a JSON string representation.</p>
+     *
+     * <p>Objects with cyclical references will trigger an exception.</p>
+     *
+     * <p>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.</p>
+     *
+     * <p>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.</p>
+     *
+     * @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);
+    },
+
+    /**
+     * <p>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.</p>
+     *
+     * <p>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.</p>
+     *
+     * <p>To prime the preprocessor cache, set this value to 1, then call
+     * <code>Y.JSON.stringify("<em>(all special characters to
+     * cache)</em>");</code>, then return this setting to a more conservative
+     * value.</p>
+     *
+     * <p>Special characters \ " \b \t \n \f \r are already cached.</p>
+     *
+     * @property charCacheThreshold
+     * @static
+     * @default 100
+     * @type {Number}
+     */
+    charCacheThreshold: 100
+});
+
+
+}, '@VERSION@', {"requires": ["yui-base"]});