src/cm/media/js/lib/yui/yui3-3.15.0/build/json-stringify/json-stringify-debug.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('json-stringify', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
 * Provides Y.JSON.stringify method for converting objects to JSON strings.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 * @module json
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @submodule json-stringify
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 * @for JSON
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
var COLON     = ':',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
    _JSON     = Y.config.global.JSON;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
Y.mix(Y.namespace('JSON'), {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
     * Serializes a Date instance as a UTC date string.  Used internally by
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
     * stringify.  Override this method if you need Dates serialized in a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
     * different format.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
     * @method dateToString
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
     * @param d {Date} The Date to serialize
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
     * @return {String} stringified Date in UTC format YYYY-MM-DDTHH:mm:SSZ
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
     * @deprecated Use a replacer function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
    dateToString: function (d) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
        function _zeroPad(v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
            return v < 10 ? '0' + v : v;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
        return d.getUTCFullYear()           + '-' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
              _zeroPad(d.getUTCMonth() + 1) + '-' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
              _zeroPad(d.getUTCDate())      + 'T' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
              _zeroPad(d.getUTCHours())     + COLON +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
              _zeroPad(d.getUTCMinutes())   + COLON +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
              _zeroPad(d.getUTCSeconds())   + 'Z';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
     * <p>Converts an arbitrary value to a JSON string representation.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
     * <p>Objects with cyclical references will trigger an exception.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
     * <p>If a whitelist is provided, only matching object keys will be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
     * included.  Alternately, a replacer function may be passed as the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
     * second parameter.  This function is executed on every value in the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
     * input, and its return value will be used in place of the original value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
     * This is useful to serialize specialized objects or class instances.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
     * <p>If a positive integer or non-empty string is passed as the third
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
     * parameter, the output will be formatted with carriage returns and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
     * indentation for readability.  If a String is passed (such as "\t") it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
     * will be used once for each indentation level.  If a number is passed,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
     * that number of spaces will be used.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
     * @method stringify
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
     * @param o {MIXED} any arbitrary value to convert to JSON string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
     * @param w {Array|Function} (optional) whitelist of acceptable object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
     *                  keys to include, or a replacer function to modify the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
     *                  raw value before serialization
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
     * @param ind {Number|String} (optional) indentation character or depth of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
     *                  spaces to format the output.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
     * @return {string} JSON string representation of the input
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
    stringify: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
        return _JSON.stringify.apply(_JSON, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
     * <p>Number of occurrences of a special character within a single call to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
     * stringify that should trigger promotion of that character to a dedicated
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
     * preprocess step for future calls.  This is only used in environments
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
     * that don't support native JSON, or when useNativeJSONStringify is set to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
     * false.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
     * <p>So, if set to 50 and an object is passed to stringify that includes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
     * strings containing the special character \x07 more than 50 times,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
     * subsequent calls to stringify will process object strings through a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
     * faster serialization path for \x07 before using the generic, slower,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
     * replacement process for all special characters.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
     * <p>To prime the preprocessor cache, set this value to 1, then call
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
     * <code>Y.JSON.stringify("<em>(all special characters to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
     * cache)</em>");</code>, then return this setting to a more conservative
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
     * value.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
     * <p>Special characters \ " \b \t \n \f \r are already cached.</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
     * @property charCacheThreshold
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
     * @default 100
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
     * @type {Number}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
    charCacheThreshold: 100
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
}, '@VERSION@', {"requires": ["yui-base"]});