• fpizlo@apple.com's avatar
    Resetting a put_by_id inline cache should preserve the "isDirect" bit · d13cf48b
    fpizlo@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=73375
    
    Reviewed by Gavin Barraclough.
            
    For the replace case, we can find out if it was direct by looking at the
    slow call. For the transition case, we explicitly remember if it was
    direct.
    
    * bytecode/CodeBlock.cpp:
    (JSC::printStructureStubInfo):
    * bytecode/StructureStubInfo.cpp:
    (JSC::StructureStubInfo::deref):
    (JSC::StructureStubInfo::visitWeakReferences):
    * bytecode/StructureStubInfo.h:
    (JSC::isPutByIdAccess):
    (JSC::StructureStubInfo::initPutByIdTransition):
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::parseBlock):
    * dfg/DFGRepatch.cpp:
    (JSC::DFG::tryCachePutByID):
    * jit/JIT.h:
    * jit/JITPropertyAccess.cpp:
    (JSC::JIT::resetPatchPutById):
    (JSC::JIT::isDirectPutById):
    * jit/JITPropertyAccess32_64.cpp:
    (JSC::JIT::resetPatchPutById):
    * jit/JITStubs.cpp:
    (JSC::JITThunks::tryCachePutByID):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@101457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    d13cf48b
StructureStubInfo.cpp 4.29 KB