AvlTree.h 

34060 
BitArray.h 
namespace js 
2865 
Bitmap.cpp 

3131 
Bitmap.h 

5605 
Fifo.h 

5206 
FixedLengthVector.h 

2720 
IdValuePair.h 
namespace js 
1006 
InlineTable.h 

17015 
LifoAlloc.cpp 
static 
12686 
LifoAlloc.h 

40238 
Nestable.h 
(Concrete*) > bool 
1779 
OrderedHashTable.h 
Define two collection templates, js::OrderedHashMap and js::OrderedHashSet.
They are like js::HashMap and js::HashSet except that:
 Iterating over an Ordered hash table visits the entries in the order in
which they were inserted. This means that unlike a HashMap, the behavior
of an OrderedHashMap is deterministic (as long as the HashPolicy methods
are effectfree and consistent); the hashing is a pure performance
optimization.
 Range objects over Ordered tables remain valid even when entries are
added or removed or the table is resized. (However in the case of
removing entries, note the warning on class Range below.)
 The API is a little different, so it's not a dropin replacement.
In particular, the hash policy is a little different.
Also, the Ordered templates lack the Ptr and AddPtr types.
Hash policies
See the comment about "Hash policy" in HashTable.h for general features that
hash policy classes must provide. Hash policies for OrderedHashMaps and Sets
differ in that the hash() method takes an extra argument:
static js::HashNumber hash(Lookup, const HashCodeScrambler&);
They must additionally provide a distinguished "empty" key value and the
following static member functions:
bool isEmpty(const Key&);
void makeEmpty(Key*);

32196 
PriorityQueue.h 
Class which represents a heap based priority queue using a vector.
Inserting elements and removing the highest priority one are both O(log n).
Template parameters are the same as for Vector, with the addition that P
must have a static priority(const T&) method which returns higher numbers
for higher priority elements.

2998 
Sort.h 
Helper function for MergeSort. 
3949 
TraceableFifo.h 

3511 