context: 	_fire: function(){		// summary: 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 dojo.Deferred){					cb = function(res){						self._continue(res);					}					this._pause();				}			}catch(err){				fired = 1;				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: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/8f119bb74ea42c70cdfbb29df663542fe008c9a8/Deferred.js/clean/_base/Deferred.js