var s=scope||dj_global; 
var s=scope||dojo.global; 
dojox.collections.Queue=function(/* array? */arr){	//	summary	//	return an object of type dojox.collections.Queue	var q=[];	if (arr){		q=q.concat(arr);	}	this.count=q.length;	this.clear=function(){		//	summary		//	clears the internal collection		q=[];		this.count=q.length;	};	this.clone=function(){		//	summary		//	creates a new Queue based on this one		return new dojox.collections.Queue(q);	//	dojox.collections.Queue	};	this.contains=function(/* object */ o){		//	summary		//	Check to see if the passed object is an element in this queue		for(var i=0; i<q.length; i++){			if (q[i]==o){				return true;	//	bool			}		}		return false;	//	bool	};	this.copyTo=function(/* array */ arr, /* int */ i){		//	summary		//	Copy the contents of this queue into the passed array at index i.		arr.splice(i,0,q);	};	this.dequeue=function(){		//	summary		//	shift the first element off the queue and return it		var r=q.shift();		this.count=q.length;		return r;	//	object	};	this.enqueue=function(/* object */ o){		//	summary		//	put the passed object at the end of the queue		this.count=q.push(o);	};	this.forEach=function(/* function */ fn, /* object? */ scope){		//	summary		//	functional iterator, following the mozilla spec.		var s=scope||dj_global;		if(Array.forEach){			Array.forEach(q, fn, s);		}else{			for(var i=0; i<q.length; i++){				fn.call(s, q[i], i, q);			}		}	};	this.getIterator=function(){		//	summary		//	get an Iterator based on this queue.		return new dojox.collections.Iterator(q);	//	dojox.collections.Iterator	};	this.peek=function(){		//	summary		//	get the next element in the queue without altering the queue.		return q[0];	};	this.toArray=function(){		//	summary		//	return an array based on the internal array of the queue.		return [].concat(q);	};};
5168	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5168/c270a8925d5a9958195b302ecdff1966132b1409/Queue.js/buggy/collections/Queue.js