diff options
Diffstat (limited to 'includes/js/dojox/collections/Stack.js')
-rw-r--r-- | includes/js/dojox/collections/Stack.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/includes/js/dojox/collections/Stack.js b/includes/js/dojox/collections/Stack.js new file mode 100644 index 0000000..999bbef --- /dev/null +++ b/includes/js/dojox/collections/Stack.js @@ -0,0 +1,72 @@ +if(!dojo._hasResource["dojox.collections.Stack"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.collections.Stack"] = true; +dojo.provide("dojox.collections.Stack"); +dojo.require("dojox.collections._base"); + +dojox.collections.Stack=function(/* array? */arr){ + // summary + // returns an object of type dojox.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 dojox.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. + dojo.forEach(q, fn, scope); + }; + this.getIterator=function(){ + // summary + // get an iterator for this collection + return new dojox.collections.Iterator(q); // dojox.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 + }; +} + +} |