rem: if(tif.startTime + (tif.timeout) < now){ 
add: if(dfd.startTime + (dfd.ioArgs.args.timeout||0) < now){ 
context: 	var _watchInFlight = function(){		//summary: 		//		internal method that checks each inflight XMLHttpRequest to see		//		if it has completed or if the timeout situation applies.		var now = (new Date()).getTime();		// make sure sync calls stay thread safe, if this callback is called		// during a sync call and this results in another sync call before the		// first sync call ends the browser hangs		if(!dojo._blockAsync){			dojo.forEach(_inFlight, function(tif, arrIdx){				try{					if(!tif || tif.d.canceled || !tif.xhr.readyState){						_inFlight.splice(arrIdx, 1); return;					}					if(4 == tif.xhr.readyState){						_inFlight.splice(arrIdx, 1); // clean refs						if(dojo._isDocumentOk(tif.xhr)){							tif.d.callback(tif.xhr);						}else{							console.debug("xhr error in:", tif.xhr);							console.debug("http response code:", tif.xhr.status);							tif.d.errback(tif.xhr);						}					}else if(tif.startTime){						//did we timeout?						if(tif.startTime + (tif.timeout) < now){							//Stop the request.							tif.d.cancel();							_inFlight.splice(arrIdx, 1); // clean refs							console.debug("xhr error in:", tif.xhr);							console.debug("timeout exceeded!");							tif.d.errback(new Error("timeout exceeded"));						}					}				}catch(e){					// FIXME: make sure we errback!					console.debug(e);					tif.d.errback(new Error("_watchInFlightError!"));				}			});		}		if(!_inFlight.length){			clearInterval(_inFlightIntvl);			_inFlightIntvl = null;			return;		}	}
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/1efca4a0c4339d77cd81880fa11173ff5ef42f29/xhr.js/clean/_base/xhr.js