~ubuntu-branches/ubuntu/utopic/moodle/utopic

« back to all changes in this revision

Viewing changes to lib/yuilib/3.13.0/cache-base/cache-base-coverage.js

  • Committer: Package Import Robot
  • Author(s): Thijs Kinkhorst
  • Date: 2014-05-12 16:10:38 UTC
  • mfrom: (36.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20140512161038-puyqf65k4e0s8ytz
Tags: 2.6.3-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
YUI 3.13.0 (build 508226d)
 
3
Copyright 2013 Yahoo! Inc. All rights reserved.
 
4
Licensed under the BSD License.
 
5
http://yuilibrary.com/license/
 
6
*/
 
7
 
 
8
if (typeof __coverage__ === 'undefined') { __coverage__ = {}; }
 
9
if (!__coverage__['build/cache-base/cache-base.js']) {
 
10
   __coverage__['build/cache-base/cache-base.js'] = {"path":"build/cache-base/cache-base.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0},"b":{"1":[0,0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0,0,0,0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0,0],"22":[0,0],"23":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":22},"end":{"line":1,"column":41}}},"2":{"name":"(anonymous_2)","line":25,"loc":{"start":{"line":25,"column":8},"end":{"line":25,"column":19}}},"3":{"name":"(anonymous_3)","line":95,"loc":{"start":{"line":95,"column":23},"end":{"line":95,"column":35}}},"4":{"name":"(anonymous_4)","line":140,"loc":{"start":{"line":140,"column":17},"end":{"line":140,"column":34}}},"5":{"name":"(anonymous_5)","line":188,"loc":{"start":{"line":188,"column":16},"end":{"line":188,"column":27}}},"6":{"name":"(anonymous_6)","line":204,"loc":{"start":{"line":204,"column":13},"end":{"line":204,"column":29}}},"7":{"name":"(anonymous_7)","line":227,"loc":{"start":{"line":227,"column":14},"end":{"line":227,"column":25}}},"8":{"name":"(anonymous_8)","line":237,"loc":{"start":{"line":237,"column":17},"end":{"line":237,"column":28}}},"9":{"name":"(anonymous_9)","line":252,"loc":{"start":{"line":252,"column":15},"end":{"line":252,"column":27}}},"10":{"name":"(anonymous_10)","line":283,"loc":{"start":{"line":283,"column":17},"end":{"line":283,"column":29}}},"11":{"name":"(anonymous_11)","line":315,"loc":{"start":{"line":315,"column":14},"end":{"line":315,"column":39}}},"12":{"name":"(anonymous_12)","line":330,"loc":{"start":{"line":330,"column":15},"end":{"line":330,"column":33}}},"13":{"name":"(anonymous_13)","line":364,"loc":{"start":{"line":364,"column":9},"end":{"line":364,"column":37}}},"14":{"name":"(anonymous_14)","line":385,"loc":{"start":{"line":385,"column":11},"end":{"line":385,"column":29}}},"15":{"name":"(anonymous_15)","line":397,"loc":{"start":{"line":397,"column":14},"end":{"line":397,"column":32}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":432,"column":37}},"2":{"start":{"line":16,"column":0},"end":{"line":27,"column":2}},"3":{"start":{"line":26,"column":4},"end":{"line":26,"column":56}},"4":{"start":{"line":34,"column":0},"end":{"line":110,"column":3}},"5":{"start":{"line":96,"column":16},"end":{"line":96,"column":74}},"6":{"start":{"line":112,"column":0},"end":{"line":427,"column":3}},"7":{"start":{"line":151,"column":8},"end":{"line":151,"column":57}},"8":{"start":{"line":159,"column":8},"end":{"line":159,"column":61}},"9":{"start":{"line":180,"column":8},"end":{"line":180,"column":27}},"10":{"start":{"line":189,"column":8},"end":{"line":189,"column":27}},"11":{"start":{"line":206,"column":8},"end":{"line":206,"column":36}},"12":{"start":{"line":207,"column":8},"end":{"line":217,"column":9}},"13":{"start":{"line":208,"column":12},"end":{"line":212,"column":13}},"14":{"start":{"line":209,"column":16},"end":{"line":211,"column":17}},"15":{"start":{"line":210,"column":20},"end":{"line":210,"column":36}},"16":{"start":{"line":215,"column":12},"end":{"line":215,"column":22}},"17":{"start":{"line":216,"column":12},"end":{"line":216,"column":31}},"18":{"start":{"line":218,"column":8},"end":{"line":218,"column":21}},"19":{"start":{"line":228,"column":8},"end":{"line":228,"column":36}},"20":{"start":{"line":238,"column":8},"end":{"line":238,"column":29}},"21":{"start":{"line":253,"column":8},"end":{"line":256,"column":16}},"22":{"start":{"line":259,"column":8},"end":{"line":264,"column":9}},"23":{"start":{"line":260,"column":12},"end":{"line":260,"column":50}},"24":{"start":{"line":261,"column":12},"end":{"line":263,"column":13}},"25":{"start":{"line":262,"column":16},"end":{"line":262,"column":39}},"26":{"start":{"line":268,"column":8},"end":{"line":270,"column":9}},"27":{"start":{"line":269,"column":12},"end":{"line":269,"column":28}},"28":{"start":{"line":273,"column":8},"end":{"line":273,"column":40}},"29":{"start":{"line":284,"column":8},"end":{"line":286,"column":16}},"30":{"start":{"line":289,"column":8},"end":{"line":300,"column":9}},"31":{"start":{"line":290,"column":12},"end":{"line":290,"column":50}},"32":{"start":{"line":292,"column":12},"end":{"line":295,"column":13}},"33":{"start":{"line":293,"column":16},"end":{"line":293,"column":38}},"34":{"start":{"line":299,"column":12},"end":{"line":299,"column":31}},"35":{"start":{"line":316,"column":8},"end":{"line":318,"column":9}},"36":{"start":{"line":317,"column":12},"end":{"line":317,"column":47}},"37":{"start":{"line":319,"column":8},"end":{"line":319,"column":21}},"38":{"start":{"line":332,"column":8},"end":{"line":334,"column":25}},"39":{"start":{"line":336,"column":8},"end":{"line":344,"column":9}},"40":{"start":{"line":338,"column":12},"end":{"line":343,"column":13}},"41":{"start":{"line":340,"column":16},"end":{"line":342,"column":17}},"42":{"start":{"line":341,"column":20},"end":{"line":341,"column":29}},"43":{"start":{"line":346,"column":8},"end":{"line":346,"column":20}},"44":{"start":{"line":365,"column":8},"end":{"line":365,"column":42}},"45":{"start":{"line":366,"column":8},"end":{"line":377,"column":9}},"46":{"start":{"line":368,"column":12},"end":{"line":374,"column":16}},"47":{"start":{"line":386,"column":8},"end":{"line":386,"column":82}},"48":{"start":{"line":399,"column":8},"end":{"line":402,"column":16}},"49":{"start":{"line":404,"column":8},"end":{"line":424,"column":9}},"50":{"start":{"line":405,"column":12},"end":{"line":405,"column":53}},"51":{"start":{"line":407,"column":12},"end":{"line":407,"column":42}},"52":{"start":{"line":409,"column":12},"end":{"line":423,"column":13}},"53":{"start":{"line":410,"column":16},"end":{"line":410,"column":37}},"54":{"start":{"line":412,"column":16},"end":{"line":412,"column":54}},"55":{"start":{"line":415,"column":16},"end":{"line":420,"column":17}},"56":{"start":{"line":417,"column":20},"end":{"line":417,"column":42}},"57":{"start":{"line":419,"column":20},"end":{"line":419,"column":52}},"58":{"start":{"line":422,"column":16},"end":{"line":422,"column":29}},"59":{"start":{"line":425,"column":8},"end":{"line":425,"column":20}},"60":{"start":{"line":429,"column":0},"end":{"line":429,"column":16}}},"branchMap":{"1":{"line":96,"type":"binary-expr","locations":[{"start":{"line":96,"column":23},"end":{"line":96,"column":39}},{"start":{"line":96,"column":44},"end":{"line":96,"column":62}},{"start":{"line":96,"column":66},"end":{"line":96,"column":72}}]},"2":{"line":207,"type":"if","locations":[{"start":{"line":207,"column":8},"end":{"line":207,"column":8}},{"start":{"line":207,"column":8},"end":{"line":207,"column":8}}]},"3":{"line":208,"type":"if","locations":[{"start":{"line":208,"column":12},"end":{"line":208,"column":12}},{"start":{"line":208,"column":12},"end":{"line":208,"column":12}}]},"4":{"line":259,"type":"if","locations":[{"start":{"line":259,"column":8},"end":{"line":259,"column":8}},{"start":{"line":259,"column":8},"end":{"line":259,"column":8}}]},"5":{"line":261,"type":"if","locations":[{"start":{"line":261,"column":12},"end":{"line":261,"column":12}},{"start":{"line":261,"column":12},"end":{"line":261,"column":12}}]},"6":{"line":268,"type":"binary-expr","locations":[{"start":{"line":268,"column":15},"end":{"line":268,"column":18}},{"start":{"line":268,"column":22},"end":{"line":268,"column":43}}]},"7":{"line":289,"type":"if","locations":[{"start":{"line":289,"column":8},"end":{"line":289,"column":8}},{"start":{"line":289,"column":8},"end":{"line":289,"column":8}}]},"8":{"line":289,"type":"binary-expr","locations":[{"start":{"line":289,"column":11},"end":{"line":289,"column":18}},{"start":{"line":289,"column":22},"end":{"line":289,"column":51}}]},"9":{"line":292,"type":"if","locations":[{"start":{"line":292,"column":12},"end":{"line":292,"column":12}},{"start":{"line":292,"column":12},"end":{"line":292,"column":12}}]},"10":{"line":316,"type":"if","locations":[{"start":{"line":316,"column":8},"end":{"line":316,"column":8}},{"start":{"line":316,"column":8},"end":{"line":316,"column":8}}]},"11":{"line":316,"type":"binary-expr","locations":[{"start":{"line":316,"column":11},"end":{"line":316,"column":25}},{"start":{"line":316,"column":29},"end":{"line":316,"column":55}}]},"12":{"line":336,"type":"if","locations":[{"start":{"line":336,"column":8},"end":{"line":336,"column":8}},{"start":{"line":336,"column":8},"end":{"line":336,"column":8}}]},"13":{"line":336,"type":"binary-expr","locations":[{"start":{"line":336,"column":12},"end":{"line":336,"column":36}},{"start":{"line":336,"column":41},"end":{"line":336,"column":60}}]},"14":{"line":340,"type":"if","locations":[{"start":{"line":340,"column":16},"end":{"line":340,"column":16}},{"start":{"line":340,"column":16},"end":{"line":340,"column":16}}]},"15":{"line":366,"type":"if","locations":[{"start":{"line":366,"column":8},"end":{"line":366,"column":8}},{"start":{"line":366,"column":8},"end":{"line":366,"column":8}}]},"16":{"line":366,"type":"binary-expr","locations":[{"start":{"line":366,"column":11},"end":{"line":366,"column":34}},{"start":{"line":366,"column":40},"end":{"line":366,"column":64}},{"start":{"line":366,"column":69},"end":{"line":366,"column":88}},{"start":{"line":367,"column":17},"end":{"line":367,"column":38}},{"start":{"line":367,"column":42},"end":{"line":367,"column":62}},{"start":{"line":367,"column":66},"end":{"line":367,"column":91}}]},"17":{"line":372,"type":"cond-expr","locations":[{"start":{"line":372,"column":43},"end":{"line":372,"column":50}},{"start":{"line":373,"column":13},"end":{"line":373,"column":82}}]},"18":{"line":373,"type":"cond-expr","locations":[{"start":{"line":373,"column":23},"end":{"line":373,"column":75}},{"start":{"line":373,"column":78},"end":{"line":373,"column":82}}]},"19":{"line":386,"type":"cond-expr","locations":[{"start":{"line":386,"column":63},"end":{"line":386,"column":70}},{"start":{"line":386,"column":73},"end":{"line":386,"column":77}}]},"20":{"line":404,"type":"if","locations":[{"start":{"line":404,"column":8},"end":{"line":404,"column":8}},{"start":{"line":404,"column":8},"end":{"line":404,"column":8}}]},"21":{"line":404,"type":"binary-expr","locations":[{"start":{"line":404,"column":12},"end":{"line":404,"column":22}},{"start":{"line":404,"column":29},"end":{"line":404,"column":53}},{"start":{"line":404,"column":59},"end":{"line":404,"column":78}}]},"22":{"line":409,"type":"if","locations":[{"start":{"line":409,"column":12},"end":{"line":409,"column":12}},{"start":{"line":409,"column":12},"end":{"line":409,"column":12}}]},"23":{"line":415,"type":"if","locations":[{"start":{"line":415,"column":16},"end":{"line":415,"column":16}},{"start":{"line":415,"column":16},"end":{"line":415,"column":16}}]}},"code":["(function () { YUI.add('cache-base', function (Y, NAME) {","","/**"," * The Cache utility provides a common configurable interface for components to"," * cache and retrieve data from a local JavaScript struct."," *"," * @module cache"," * @main"," */","","/**"," * Provides the base class for the YUI Cache utility."," *"," * @submodule cache-base"," */","var LANG = Y.Lang,","    isDate = Y.Lang.isDate,","","/**"," * Base class for the YUI Cache utility."," * @class Cache"," * @extends Base"," * @constructor"," */","Cache = function() {","    Cache.superclass.constructor.apply(this, arguments);","};","","    /////////////////////////////////////////////////////////////////////////////","    //","    // Cache static properties","    //","    /////////////////////////////////////////////////////////////////////////////","Y.mix(Cache, {","    /**","     * Class name.","     *","     * @property NAME","     * @type String","     * @static","     * @final","     * @value \"cache\"","     */","    NAME: \"cache\",","","","    ATTRS: {","        /////////////////////////////////////////////////////////////////////////////","        //","        // Cache Attributes","        //","        /////////////////////////////////////////////////////////////////////////////","","        /**","        * @attribute max","        * @description Maximum number of entries the Cache can hold.","        * Set to 0 to turn off caching.","        * @type Number","        * @default 0","        */","        max: {","            value: 0,","            setter: \"_setMax\"","        },","","        /**","        * @attribute size","        * @description Number of entries currently cached.","        * @type Number","        */","        size: {","            readOnly: true,","            getter: \"_getSize\"","        },","","        /**","        * @attribute uniqueKeys","        * @description Validate uniqueness of stored keys. Default is false and","        * is more performant.","        * @type Boolean","        */","        uniqueKeys: {","            value: false","        },","","        /**","        * @attribute expires","        * @description Absolute Date when data expires or","        * relative number of milliseconds. Zero disables expiration.","        * @type Date | Number","        * @default 0","        */","        expires: {","            value: 0,","            validator: function(v) {","                return Y.Lang.isDate(v) || (Y.Lang.isNumber(v) && v >= 0);","            }","        },","","        /**","         * @attribute entries","         * @description Cached entries.","         * @type Array","         */","        entries: {","            readOnly: true,","            getter: \"_getEntries\"","        }","    }","});","","Y.extend(Cache, Y.Base, {","    /////////////////////////////////////////////////////////////////////////////","    //","    // Cache private properties","    //","    /////////////////////////////////////////////////////////////////////////////","","    /**","     * Array of request/response objects indexed chronologically.","     *","     * @property _entries","     * @type Object[]","     * @private","     */","    _entries: null,","","    /////////////////////////////////////////////////////////////////////////////","    //","    // Cache private methods","    //","    /////////////////////////////////////////////////////////////////////////////","","    /**","    * @method initializer","    * @description Internal init() handler.","    * @param config {Object} Config object.","    * @private","    */","    initializer: function(config) {","","        /**","        * @event add","        * @description Fired when an entry is added.","        * @param e {Event.Facade} Event Facade with the following properties:","         * <dl>","         * <dt>entry (Object)</dt> <dd>The cached entry.</dd>","         * </dl>","        * @preventable _defAddFn","        */","        this.publish(\"add\", {defaultFn: this._defAddFn});","","        /**","        * @event flush","        * @description Fired when the cache is flushed.","        * @param e {Event.Facade} Event Facade object.","        * @preventable _defFlushFn","        */","        this.publish(\"flush\", {defaultFn: this._defFlushFn});","","        /**","        * @event request","        * @description Fired when an entry is requested from the cache.","        * @param e {Event.Facade} Event Facade with the following properties:","        * <dl>","        * <dt>request (Object)</dt> <dd>The request object.</dd>","        * </dl>","        */","","        /**","        * @event retrieve","        * @description Fired when an entry is retrieved from the cache.","        * @param e {Event.Facade} Event Facade with the following properties:","        * <dl>","        * <dt>entry (Object)</dt> <dd>The retrieved entry.</dd>","        * </dl>","        */","","        // Initialize internal values","        this._entries = [];","    },","","    /**","    * @method destructor","    * @description Internal destroy() handler.","    * @private","    */","    destructor: function() {","        this._entries = [];","    },","","    /////////////////////////////////////////////////////////////////////////////","    //","    // Cache protected methods","    //","    /////////////////////////////////////////////////////////////////////////////","","    /**","     * Sets max.","     *","     * @method _setMax","     * @protected","     */","    _setMax: function(value) {","        // If the cache is full, make room by removing stalest element (index=0)","        var entries = this._entries;","        if(value > 0) {","            if(entries) {","                while(entries.length > value) {","                    entries.shift();","                }","            }","        }","        else {","            value = 0;","            this._entries = [];","        }","        return value;","    },","","    /**","     * Gets size.","     *","     * @method _getSize","     * @protected","     */","    _getSize: function() {","        return this._entries.length;","    },","","    /**","     * Gets all entries.","     *","     * @method _getEntries","     * @protected","     */","    _getEntries: function() {","        return this._entries;","    },","","","    /**","     * Adds entry to cache.","     *","     * @method _defAddFn","     * @param e {Event.Facade} Event Facade with the following properties:","     * <dl>","     * <dt>entry (Object)</dt> <dd>The cached entry.</dd>","     * </dl>","     * @protected","     */","    _defAddFn: function(e) {","        var entries = this._entries,","            entry   = e.entry,","            max     = this.get(\"max\"),","            pos;","","        // If uniqueKeys is true and item exists with this key, then remove it.","        if (this.get(\"uniqueKeys\")) {","            pos = this._position(e.entry.request);","            if (LANG.isValue(pos)) {","                entries.splice(pos, 1);","            }","        }","","        // If the cache at or over capacity, make room by removing stalest","        // element(s) starting at index-0.","        while (max && entries.length >= max) {","            entries.shift();","        }","","        // Add entry to cache in the newest position, at the end of the array","        entries[entries.length] = entry;","    },","","    /**","     * Flushes cache.","     *","     * @method _defFlushFn","     * @param e {Event.Facade} Event Facade object.","     * @protected","     */","    _defFlushFn: function(e) {","        var entries = this._entries,","            details = e.details[0],","            pos;","","        //passed an item, flush only that","        if(details && LANG.isValue(details.request)) {","            pos = this._position(details.request);","","            if(LANG.isValue(pos)) {","                entries.splice(pos,1);","","            }","        }","        //no item, flush everything","        else {","            this._entries = [];","        }","    },","","    /**","     * Default overridable method compares current request with given cache entry.","     * Returns true if current request matches the cached request, otherwise","     * false. Implementers should override this method to customize the","     * cache-matching algorithm.","     *","     * @method _isMatch","     * @param request {Object} Request object.","     * @param entry {Object} Cached entry.","     * @return {Boolean} True if current request matches given cached request, false otherwise.","     * @protected","     */","    _isMatch: function(request, entry) {","        if(!entry.expires || new Date() < entry.expires) {","            return (request === entry.request);","        }","        return false;","    },","","    /**","     * Returns position of a request in the entries array, otherwise null.","     *","     * @method _position","     * @param request {Object} Request object.","     * @return {Number} Array position if found, null otherwise.","     * @protected","     */","    _position: function(request) {","        // If cache is enabled...","        var entries = this._entries,","            length = entries.length,","            i = length-1;","","        if((this.get(\"max\") === null) || this.get(\"max\") > 0) {","            // Loop through each cached entry starting from the newest","            for(; i >= 0; i--) {","                // Execute matching function","                if(this._isMatch(request, entries[i])) {","                    return i;","                }","            }","        }","","        return null;","    },","","    /////////////////////////////////////////////////////////////////////////////","    //","    // Cache public methods","    //","    /////////////////////////////////////////////////////////////////////////////","","    /**","     * Adds a new entry to the cache of the format","     * {request:request, response:response, cached:cached, expires:expires}.","     * If cache is full, evicts the stalest entry before adding the new one.","     *","     * @method add","     * @param request {Object} Request value.","     * @param response {Object} Response value.","     */","    add: function(request, response) {","        var expires = this.get(\"expires\");","        if(this.get(\"initialized\") && ((this.get(\"max\") === null) || this.get(\"max\") > 0) &&","                (LANG.isValue(request) || LANG.isNull(request) || LANG.isUndefined(request))) {","            this.fire(\"add\", {entry: {","                request:request,","                response:response,","                cached: new Date(),","                expires: isDate(expires) ? expires :","            (expires ? new Date(new Date().getTime() + this.get(\"expires\")) : null)","            }});","        }","        else {","        }","    },","","    /**","     * Flushes cache.","     *","     * @method flush","     */","    flush: function(request) {","        this.fire(\"flush\", { request: (LANG.isValue(request) ? request : null) });","    },","","    /**","     * Retrieves cached object for given request, if available, and refreshes","     * entry in the cache. Returns null if there is no cache match.","     *","     * @method retrieve","     * @param request {Object} Request object.","     * @return {Object} Cached object with the properties request and response, or null.","     */","    retrieve: function(request) {","        // If cache is enabled...","        var entries = this._entries,","            length = entries.length,","            entry = null,","            pos;","","        if((length > 0) && ((this.get(\"max\") === null) || (this.get(\"max\") > 0))) {","            this.fire(\"request\", {request: request});","","            pos = this._position(request);","","            if(LANG.isValue(pos)) {","                entry = entries[pos];","","                this.fire(\"retrieve\", {entry: entry});","","                // Refresh the position of the cache hit","                if(pos < length-1) {","                    // Remove element from its original location","                    entries.splice(pos,1);","                    // Add as newest","                    entries[entries.length] = entry;","                }","","                return entry;","            }","        }","        return null;","    }","});","","Y.Cache = Cache;","","","}, '3.13.0', {\"requires\": [\"base\"]});","","}());"]};
 
11
}
 
12
var __cov_Nlyu24ixdzDWbApcHrmrSQ = __coverage__['build/cache-base/cache-base.js'];
 
13
__cov_Nlyu24ixdzDWbApcHrmrSQ.s['1']++;YUI.add('cache-base',function(Y,NAME){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['1']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['2']++;var LANG=Y.Lang,isDate=Y.Lang.isDate,Cache=function(){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['2']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['3']++;Cache.superclass.constructor.apply(this,arguments);};__cov_Nlyu24ixdzDWbApcHrmrSQ.s['4']++;Y.mix(Cache,{NAME:'cache',ATTRS:{max:{value:0,setter:'_setMax'},size:{readOnly:true,getter:'_getSize'},uniqueKeys:{value:false},expires:{value:0,validator:function(v){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['3']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['5']++;return(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['1'][0]++,Y.Lang.isDate(v))||(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['1'][1]++,Y.Lang.isNumber(v))&&(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['1'][2]++,v>=0);}},entries:{readOnly:true,getter:'_getEntries'}}});__cov_Nlyu24ixdzDWbApcHrmrSQ.s['6']++;Y.extend(Cache,Y.Base,{_entries:null,initializer:function(config){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['4']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['7']++;this.publish('add',{defaultFn:this._defAddFn});__cov_Nlyu24ixdzDWbApcHrmrSQ.s['8']++;this.publish('flush',{defaultFn:this._defFlushFn});__cov_Nlyu24ixdzDWbApcHrmrSQ.s['9']++;this._entries=[];},destructor:function(){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['5']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['10']++;this._entries=[];},_setMax:function(value){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['6']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['11']++;var entries=this._entries;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['12']++;if(value>0){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['2'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['13']++;if(entries){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['3'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['14']++;while(entries.length>value){__cov_Nlyu24ixdzDWbApcHrmrSQ.s['15']++;entries.shift();}}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['3'][1]++;}}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['2'][1]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['16']++;value=0;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['17']++;this._entries=[];}__cov_Nlyu24ixdzDWbApcHrmrSQ.s['18']++;return value;},_getSize:function(){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['7']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['19']++;return this._entries.length;},_getEntries:function(){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['8']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['20']++;return this._entries;},_defAddFn:function(e){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['9']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['21']++;var entries=this._entries,entry=e.entry,max=this.get('max'),pos;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['22']++;if(this.get('uniqueKeys')){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['4'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['23']++;pos=this._position(e.entry.request);__cov_Nlyu24ixdzDWbApcHrmrSQ.s['24']++;if(LANG.isValue(pos)){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['5'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['25']++;entries.splice(pos,1);}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['5'][1]++;}}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['4'][1]++;}__cov_Nlyu24ixdzDWbApcHrmrSQ.s['26']++;while((__cov_Nlyu24ixdzDWbApcHrmrSQ.b['6'][0]++,max)&&(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['6'][1]++,entries.length>=max)){__cov_Nlyu24ixdzDWbApcHrmrSQ.s['27']++;entries.shift();}__cov_Nlyu24ixdzDWbApcHrmrSQ.s['28']++;entries[entries.length]=entry;},_defFlushFn:function(e){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['10']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['29']++;var entries=this._entries,details=e.details[0],pos;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['30']++;if((__cov_Nlyu24ixdzDWbApcHrmrSQ.b['8'][0]++,details)&&(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['8'][1]++,LANG.isValue(details.request))){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['7'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['31']++;pos=this._position(details.request);__cov_Nlyu24ixdzDWbApcHrmrSQ.s['32']++;if(LANG.isValue(pos)){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['9'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['33']++;entries.splice(pos,1);}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['9'][1]++;}}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['7'][1]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['34']++;this._entries=[];}},_isMatch:function(request,entry){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['11']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['35']++;if((__cov_Nlyu24ixdzDWbApcHrmrSQ.b['11'][0]++,!entry.expires)||(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['11'][1]++,new Date()<entry.expires)){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['10'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['36']++;return request===entry.request;}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['10'][1]++;}__cov_Nlyu24ixdzDWbApcHrmrSQ.s['37']++;return false;},_position:function(request){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['12']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['38']++;var entries=this._entries,length=entries.length,i=length-1;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['39']++;if((__cov_Nlyu24ixdzDWbApcHrmrSQ.b['13'][0]++,this.get('max')===null)||(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['13'][1]++,this.get('max')>0)){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['12'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['40']++;for(;i>=0;i--){__cov_Nlyu24ixdzDWbApcHrmrSQ.s['41']++;if(this._isMatch(request,entries[i])){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['14'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['42']++;return i;}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['14'][1]++;}}}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['12'][1]++;}__cov_Nlyu24ixdzDWbApcHrmrSQ.s['43']++;return null;},add:function(request,response){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['13']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['44']++;var expires=this.get('expires');__cov_Nlyu24ixdzDWbApcHrmrSQ.s['45']++;if((__cov_Nlyu24ixdzDWbApcHrmrSQ.b['16'][0]++,this.get('initialized'))&&((__cov_Nlyu24ixdzDWbApcHrmrSQ.b['16'][1]++,this.get('max')===null)||(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['16'][2]++,this.get('max')>0))&&((__cov_Nlyu24ixdzDWbApcHrmrSQ.b['16'][3]++,LANG.isValue(request))||(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['16'][4]++,LANG.isNull(request))||(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['16'][5]++,LANG.isUndefined(request)))){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['15'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['46']++;this.fire('add',{entry:{request:request,response:response,cached:new Date(),expires:isDate(expires)?(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['17'][0]++,expires):(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['17'][1]++,expires?(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['18'][0]++,new Date(new Date().getTime()+this.get('expires'))):(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['18'][1]++,null))}});}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['15'][1]++;}},flush:function(request){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['14']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['47']++;this.fire('flush',{request:LANG.isValue(request)?(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['19'][0]++,request):(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['19'][1]++,null)});},retrieve:function(request){__cov_Nlyu24ixdzDWbApcHrmrSQ.f['15']++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['48']++;var entries=this._entries,length=entries.length,entry=null,pos;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['49']++;if((__cov_Nlyu24ixdzDWbApcHrmrSQ.b['21'][0]++,length>0)&&((__cov_Nlyu24ixdzDWbApcHrmrSQ.b['21'][1]++,this.get('max')===null)||(__cov_Nlyu24ixdzDWbApcHrmrSQ.b['21'][2]++,this.get('max')>0))){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['20'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['50']++;this.fire('request',{request:request});__cov_Nlyu24ixdzDWbApcHrmrSQ.s['51']++;pos=this._position(request);__cov_Nlyu24ixdzDWbApcHrmrSQ.s['52']++;if(LANG.isValue(pos)){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['22'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['53']++;entry=entries[pos];__cov_Nlyu24ixdzDWbApcHrmrSQ.s['54']++;this.fire('retrieve',{entry:entry});__cov_Nlyu24ixdzDWbApcHrmrSQ.s['55']++;if(pos<length-1){__cov_Nlyu24ixdzDWbApcHrmrSQ.b['23'][0]++;__cov_Nlyu24ixdzDWbApcHrmrSQ.s['56']++;entries.splice(pos,1);__cov_Nlyu24ixdzDWbApcHrmrSQ.s['57']++;entries[entries.length]=entry;}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['23'][1]++;}__cov_Nlyu24ixdzDWbApcHrmrSQ.s['58']++;return entry;}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['22'][1]++;}}else{__cov_Nlyu24ixdzDWbApcHrmrSQ.b['20'][1]++;}__cov_Nlyu24ixdzDWbApcHrmrSQ.s['59']++;return null;}});__cov_Nlyu24ixdzDWbApcHrmrSQ.s['60']++;Y.Cache=Cache;},'3.13.0',{'requires':['base']});