rem: _fire: function () { /***  Used internally to exhaust the callback sequence when a result is available.  ***/ var chain = this.chain; var fired = this.fired; var res = this.results[fired]; var self = this; var cb = null; while (chain.length > 0 && this.paused == 0) {  var pair = chain.shift(); var f = pair[fired]; if (f == null) { continue; } try { res = f(res); fired = ((res instanceof Error) ? 1 : 0); if (res instanceof MochiKit.Async.Deferred) { cb = function (res) { self._continue(res); } this._pause(); } } catch (err) { fired = 1; if (!(err instanceof Error)) { err = new MochiKit.Async.GenericError(err); } res = err; } } this.fired = fired; this.results[fired] = res; if (cb && this.paused) {   res.addBoth(cb); } } 
add: },_fire:function(){ var _278=this.chain; var _279=this.fired; var res=this.results[_279]; var self=this; var cb=null; while(_278.length>0&&this.paused==0){ var pair=_278.shift(); var f=pair[_279]; if(f==null){ continue; } try{ res=f(res); _279=((res instanceof Error)?1:0); if(res instanceof MochiKit.Async.Deferred){ cb=function(res){ self._continue(res); }; this._pause(); } } catch(err){ _279=1; if(!(err instanceof Error)){ err=new MochiKit.Async.GenericError(err); } res=err; } } this.fired=_279; this.results[_279]=res; if(cb&&this.paused){ res.addBoth(cb); } }}; 
context:     _fire: function () {        /***        Used internally to exhaust the callback sequence when a result        is available.        ***/        var chain = this.chain;        var fired = this.fired;        var res = this.results[fired];        var self = this;        var cb = null;        while (chain.length > 0 && this.paused == 0) {            // Array            var pair = chain.shift();            var f = pair[fired];            if (f == null) {                continue;            }            try {                res = f(res);                fired = ((res instanceof Error) ? 1 : 0);                if (res instanceof MochiKit.Async.Deferred) {                    cb = function (res) {                        self._continue(res);                    }                    this._pause();                }            } catch (err) {                fired = 1;                if (!(err instanceof Error)) {                    err = new MochiKit.Async.GenericError(err);                }                res = err;            }        }        this.fired = fired;        this.results[fired] = res;        if (cb && this.paused) {            // this is for "tail recursion" in case the dependent deferred            // is already fired            res.addBoth(cb);        }    }
meta: 8607	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8607/ad067b3f5d648d6df90ec6fb2b79f0027612a307/MochiKit.js/buggy/trunk/lib/MochiKit.js