context: dojo.widget.defineWidget = function(/*String*/			widgetClass, 									/*String*/			renderer,									/*function||array*/	superclasses, 									/*function*/		init,									/*Object*/			props){	// summary: Create a widget constructor function (aka widgetClass)	// widgetClass: the location in the object hierarchy to place the new widget class constructor	// renderer: usually "html", determines when this delcaration will be used	// superclasses:	//		can be either a single function or an array of functions to be	//		mixed in as superclasses. If an array, only the first will be used	//		to set prototype inheritance.	// init: an optional constructor function. Will be called after superclasses are mixed in.	// props: a map of properties and functions to extend the class prototype with	// This meta-function does parameter juggling for backward compat and overloading	// if 4th argument is a string, we are using the old syntax	// old sig: widgetClass, superclasses, props (object), renderer (string), init (function)	if(dojo.lang.isString(arguments[3])){		dojo.widget._defineWidget(arguments[0], arguments[3], arguments[1], arguments[4], arguments[2]);	}else{		// widgetClass		var args = [ arguments[0] ], p = 3;		if(dojo.lang.isString(arguments[1])){			// renderer, superclass			args.push(arguments[1], arguments[2]);		}else{			// superclass			args.push('', arguments[1]);			p = 2;		}		if(dojo.lang.isFunction(arguments[p])){			// init (function), props (object) 			args.push(arguments[p], arguments[p+1]);		}else{			// props (object) 			args.push(null, arguments[p]);		}		dojo.widget._defineWidget.apply(this, args);	}}
meta: 4707	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/4707/50c3492c4c3c825dbd3401e134a19ed46799c456/Widget.js/buggy/www/resources/dojo-ajax/src/widget/Widget.js