The source code

    /**
     * @ignore
     *  cookie
     * @author lifesinger@gmail.com
     */
    KISSY.add('cookie', function (S) {

        var doc = S.Env.host.document,
            MILLISECONDS_OF_DAY = 24 * 60 * 60 * 1000,
            encode = encodeURIComponent,
            decode = S.urlDecode;

        function isNotEmptyString(val) {
            return (typeof val == 'string') && val !== '';
        }

        /**
         * Provide Cookie utilities.
         * @class KISSY.Cookie
         * @singleton
         */
        return S.Cookie = {

            /**
             * Returns the cookie value for given name
             * @return {String} name The name of the cookie to retrieve
             */
            get: function (name) {
                var ret, m;

                if (isNotEmptyString(name)) {
                    if ((m = String(doc.cookie).match(
                        new RegExp('(?:^| )' + name + '(?:(?:=([^;]*))|;|$)')))) {
                        ret = m[1] ? decode(m[1]) : '';
                    }
                }
                return ret;
            },

            /**
             * Set a cookie with a given name and value
             * @param {String} name The name of the cookie to set
             * @param {String} val The value to set for cookie
             * @param {Number|Date} expires
             * if Number specified how many days this cookie will expire
             * @param {String} domain set cookie's domain
             * @param {String} path set cookie's path
             * @param {Boolean} secure whether this cookie can only be sent to server on https
             */
            set: function (name, val, expires, domain, path, secure) {
                var text = String(encode(val)), date = expires;

                // 从当前时间开始，多少天后过期
                if (typeof date === 'number') {
                    date = new Date();
                    date.setTime(date.getTime() + expires * MILLISECONDS_OF_DAY);
                }
                // expiration date
                if (date instanceof Date) {
                    text += '; expires=' + date.toUTCString();
                }

                // domain
                if (isNotEmptyString(domain)) {
                    text += '; domain=' + domain;
                }

                // path
                if (isNotEmptyString(path)) {
                    text += '; path=' + path;
                }

                // secure
                if (secure) {
                    text += '; secure';
                }

                doc.cookie = name + '=' + text;
            },

            /**
             * Remove a cookie from the machine by setting its expiration date to sometime in the past
             * @param {String} name The name of the cookie to remove.
             * @param {String} domain The cookie's domain
             * @param {String} path The cookie's path
             * @param {String} secure The cookie's secure option
             */
            remove: function (name, domain, path, secure) {
                this.set(name, '', -1, domain, path, secure);
            }
        };

    });

    /*
     2012.02.14 yiminghe@gmail.com
     - jsdoc added

     2010.04
     - get 方法要考虑 ie 下，
     值为空的 cookie 为 'test3; test3=3; test3tt=2; test1=t1test3; test3', 没有等于号。
     除了正则获取，还可以 split 字符串的方式来获取。
     - api 设计上，原本想借鉴 jQuery 的简明风格：S.cookie(name, ...), 但考虑到可扩展性，目前
     独立成静态工具类的方式更优。
     */