Skip to content
  • antti@apple.com's avatar
    Cache function offsets to speed up javascript parsing · 40e8c6f8
    antti@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=52622
            
    Reviewed by Oliver Hunt.
    
    Use cache to save function offsets and some other info.
    This avoids quite a bit of work when reparsing the source.
    
    Source/JavaScriptCore: 
    
    * parser/ASTBuilder.h:
    * parser/JSParser.cpp:
    (JSC::JSParser::CachedFunctionInfo::CachedFunctionInfo):
    (JSC::JSParser::CachedFunctionInfo::approximateByteSize):
    (JSC::JSParser::CachedFunctionInfo::closeBraceToken):
    (JSC::JSParser::Scope::copyCapturedVariablesToVector):
    (JSC::JSParser::Scope::saveFunctionInfo):
    (JSC::JSParser::Scope::restoreFunctionInfo):
    (JSC::JSParser::findCachedFunctionInfo):
    (JSC::JSParser::JSParser):
    (JSC::JSParser::parseProgram):
    (JSC::JSParser::parseFunctionInfo):
    * parser/Lexer.h:
    (JSC::Lexer::setOffset):
    (JSC::Lexer::setLineNumber):
    (JSC::Lexer::sourceProvider):
    * parser/SourceProvider.h:
    (JSC::SourceProviderCache::SourceProviderCache):
    (JSC::SourceProviderCache::~SourceProviderCache):
    (JSC::SourceProviderCache::byteSize):
    (JSC::SourceProviderCache::add):
    (JSC::SourceProviderCache::get):
    (JSC::SourceProvider::SourceProvider):
    (JSC::SourceProvider::~SourceProvider):
    (JSC::SourceProvider::cache):
    (JSC::SourceProvider::notifyCacheSizeChanged):
    (JSC::SourceProvider::cacheSizeChanged):
    * parser/SyntaxChecker.h:
    
    Source/WebCore: 
    
    * bindings/js/CachedScriptSourceProvider.h:
    (WebCore::CachedScriptSourceProvider::cache):
    (WebCore::CachedScriptSourceProvider::cacheSizeChanged):
    (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
    * bindings/js/ScriptSourceProvider.h:
    (WebCore::ScriptSourceProvider::ScriptSourceProvider):
    * loader/cache/CachedScript.cpp:
    (WebCore::CachedScript::destroyDecodedData):
    (WebCore::CachedScript::sourceProviderCache):
    (WebCore::CachedScript::sourceProviderCacheSizeChanged):
    * loader/cache/CachedScript.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    40e8c6f8