Ignore:
Timestamp:
Nov 30, 2011, 12:44:12 AM (14 years ago)
Author:
[email protected]
Message:

Resetting a put_by_id inline cache should preserve the "isDirect" bit
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):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp

    r101217 r101457  
    17981798                }
    17991799                   
    1800                 case access_put_by_id_transition: {
     1800                case access_put_by_id_transition_normal:
     1801                case access_put_by_id_transition_direct: {
    18011802                    Structure* previousStructure = stubInfo.u.putByIdTransition.previousStructure.get();
    18021803                    Structure* newStructure = stubInfo.u.putByIdTransition.structure.get();
Note: See TracChangeset for help on using the changeset viewer.