| Index: src/objects.h
 | 
| diff --git a/src/objects.h b/src/objects.h
 | 
| index f6c4d19e66e485354f85a2dba7f90cbc76249011..e85e78b2f9f203fb75baae6c1cac719f03b9a118 100644
 | 
| --- a/src/objects.h
 | 
| +++ b/src/objects.h
 | 
| @@ -7937,6 +7937,17 @@ class CompilationCacheShape : public BaseShape<HashTableKey*> {
 | 
|  };
 | 
|  
 | 
|  
 | 
| +// This cache is used in two different variants. For regexp caching, it simply
 | 
| +// maps identifying info of the regexp to the cached regexp object. Scripts and
 | 
| +// eval code only gets cached after a second probe for the code object. To do
 | 
| +// so, on first "put" only a hash identifying the source is entered into the
 | 
| +// cache, mapping it to a lifetime count of the hash. On each call to Age all
 | 
| +// such lifetimes get reduced, and removed once they reach zero. If a second put
 | 
| +// is called while such a hash is live in the cache, the hash gets replaced by
 | 
| +// an actual cache entry. Age also removes stale live entries from the cache.
 | 
| +// Such entries are identified by SharedFunctionInfos pointing to either the
 | 
| +// recompilation stub, or to "old" code. This avoids memory leaks due to
 | 
| +// premature caching of scripts and eval strings that are never needed later.
 | 
|  class CompilationCacheTable: public HashTable<CompilationCacheTable,
 | 
|                                                CompilationCacheShape,
 | 
|                                                HashTableKey*> {
 | 
| @@ -7958,6 +7969,8 @@ class CompilationCacheTable: public HashTable<CompilationCacheTable,
 | 
|        Handle<CompilationCacheTable> cache, Handle<String> src,
 | 
|        JSRegExp::Flags flags, Handle<FixedArray> value);
 | 
|    void Remove(Object* value);
 | 
| +  void Age();
 | 
| +  static const int kHashGenerations = 10;
 | 
|  
 | 
|    DECLARE_CAST(CompilationCacheTable)
 | 
|  
 | 
| 
 |