this.subscribe = function(	/*string */		channel, /*object, optional*/	objOrFunc, /*string, optional*/	funcName){ 
this.subscribe = function(      /*String */    channel, /*Object */    objOrFunc, /*String */    funcName){ 
	this.subscribe = function(	/*string */		channel,					/*object, optional*/	objOrFunc,					/*string, optional*/	funcName){ // return: boolean		// summary:		//		inform the server of this client's interest in channel		// channel:		//		name of the cometd channel to subscribe to		// objOrFunc:		//		an object scope for funcName or the name or reference to a		//		function to be called when messages are delivered to the		//		channel		// funcName:		//		the second half of the objOrFunc/funcName pair for identifying		//		a callback function to notifiy upon channel message delivery		if(objOrFunc){			var tname = "/cometd"+channel;			var subs=this._subscriptions[tname];			if (!subs || subs.length==0)			{				subs=[];				this._sendMessage({					channel: "/meta/subscribe",					subscription: channel				});								this._deferredSubscribes[channel] = new dojo.Deferred();				if (this._deferredUnsubscribes[channel]){					this._deferredUnsubscribes[channel].cancel();					delete this._deferredUnsubscribes[channel];				}			}						for (var i in subs){				if (subs[i].objOrFunc===objOrFunc&&(!subs[i].funcName&&!funcName||subs[i].funcName==funcName))					return;			}						var topic = dojo.subscribe(tname, objOrFunc, funcName);			subs.push( { topic: topic, objOrFunc: objOrFunc, funcName: funcName });			this._subscriptions[tname] =subs;		}		return this._deferredSubscribes[channel];	}
5168	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5168/4cd022665475a0b318d3210b38e7eaca6874c8dc/cometd.js/buggy/_cometd/cometd.js