var scope = (this.object ? dojox.wire.ml._getValue(this.object) : dj_global); 
var scope = (this.object ? dojox.wire.ml._getValue(this.object) : dojo.global); 
	_run: function(){		//	summary:		//		Invoke a method or publish a topic		//	description:		//		If 'topic' is specified, the topic is published with arguments		//		specified to 'parameters'.		//		If 'method' and 'object' are specified, the method is invoked		//		with arguments specified to 'parameters' and set the return		//		value to a property specified to 'result'.		//		'object', 'parameters' and 'result' can specify properties of		//		a widget or an DOM element with the dotted notation.		//		If 'parameters' are omitted, the arguments to this method are		//		passed as is.		if(this.topic){			var args = this._getParameters(arguments);			try{				dojo.publish(this.topic, args);				this.onComplete();			}catch(e){				this.onError(e);			}		}else if(this.method){			var scope = (this.object ? dojox.wire.ml._getValue(this.object) : dj_global);			if(!scope){				return; //undefined			}			var args = this._getParameters(arguments);			var func = scope[this.method];			if(!func){				func = scope.callMethod;				if(!func){					return; //undefined				}				args = [this.method, args];			}			try{				var connected = false;				if(scope.getFeatures){					var features = scope.getFeatures();					if((this.method == "fetch" && features["dojo.data.api.Read"]) ||						(this.method == "save" && features["dojo.data.api.Write"])){						var arg = args[0];						if(!arg.onComplete){							arg.onComplete = function(){};						}						//dojo.connect(arg, "onComplete", this, "onComplete");						this.connect(arg, "onComplete", "onComplete");                        if(!arg.onError){							arg.onError = function(){};						}						//dojo.connect(arg, "onError", this, "onError");						this.connect(arg, "onError", "onError");                        connected = true;					}				}				var r = func.apply(scope, args);				if(!connected){					if(r && (r instanceof dojo.Deferred)){						var self = this;						r.addCallbacks(							function(result){self.onComplete(result);},							function(error){self.onError(error);}						);					}else{						this.onComplete(r);					}				}			}catch(e){				this.onError(e);			}		}	},
5168	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5168/c270a8925d5a9958195b302ecdff1966132b1409/Invocation.js/buggy/wire/ml/Invocation.js