-
oliver@apple.com authored
Reviewed by Geoffrey Garen. Make RegExpCache a weak map https://bugs.webkit.org/show_bug.cgi?id=61554 Switch to a weak map for the regexp cache, and hide that behaviour behind RegExp::create. When a RegExp is compiled it attempts to add itself to the "strong" cache. This cache is a simple round-robin buffer as was the old strong cache. Happily this can be smaller than the old strong cache as RegExps are only added when they're compiled so it is under less pressure to evict. * bytecompiler/NodesCodegen.cpp: (JSC::RegExpNode::emitBytecode): * runtime/RegExp.cpp: (JSC::RegExp::RegExp): (JSC::RegExp::create): (JSC::RegExp::match): * runtime/RegExp.h: (JSC::RegExp::gcShouldInvalidateCode): (JSC::RegExp::hasCode): (JSC::RegExp::key): * runtime/RegExpCache.cpp: (JSC::RegExpCache::lookupOrCreate): (JSC::RegExpCache::RegExpCache): (JSC::RegExpCache::isReachableFromOpaqueRoots): (JSC::RegExpCache::finalize): * runtime/RegExpCache.h: * runtime/RegExpConstructor.cpp: (JSC::constructRegExp): * runtime/RegExpPrototype.cpp: (JSC::regExpProtoFuncCompile): * runtime/StringPrototype.cpp: (JSC::stringProtoFuncMatch): (JSC::stringProtoFuncSearch): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87445 268f45cc-cd09-0410-ab3c-d52691b4dbfc
d7523c1f