this.count=q.length; this.clear=function(){ q=[]; this.count=q.length; }; this.clone=function(){ return new dojo.collections.Stack(q); }; this.contains=function(o){ for(var i=0;i<q.length;i++){ if(q[i]==o){ return true; } } return false; }; this.copyTo=function(arr,i){ arr.splice(i,0,q); }; this.forEach=function(fn,_7b6){ var s=_7b6||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(){ return new dojo.collections.Iterator(q); }; this.peek=function(){ return q[(q.length-1)]; }; this.pop=function(){ var r=q.pop(); this.count=q.length; return r; }; this.push=function(o){ this.count=q.push(o); }; this.toArray=function(){ return [].concat(q); }; }; 
dojo.collections.Stack=function(/* array? */arr){  //  summary  //  returns an object of type dojo.collections.Stack  var q=[];  if (arr) q=q.concat(arr);  this.count=q.length;  this.clear=function(){    //  summary    //  Clear the internal array and reset the count    q=[];    this.count=q.length;  };  this.clone=function(){    //  summary    //  Create and return a clone of this Stack    return new dojo.collections.Stack(q);  };  this.contains=function(/* object */o){    //  summary    //  check to see if the stack contains object o    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 stack into array arr at index i    arr.splice(i,0,q);  };  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 for this collection    return new dojo.collections.Iterator(q);  //  dojo.collections.Iterator  };  this.peek=function(){    //  summary    //  Return the next item without altering the stack itself.    return q[(q.length-1)]; //  object  };  this.pop=function(){    //  summary    //  pop and return the next item on the stack    var r=q.pop();    this.count=q.length;    return r; //  object  };  this.push=function(/* object */ o){    //  summary    //  Push object o onto the stack    this.count=q.push(o);  };  this.toArray=function(){    //  summary    //  create and return an array based on the internal collection    return [].concat(q);  //  array  };}
6315	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6315/90939f35f46f873d9b1f5c5f818ecf012711dc71/dojo.js/buggy/src/main/resources/org/apache/struts2/static/dojo/dojo.js