Changeset 160221 in webkit


Ignore:
Timestamp:
Dec 6, 2013 6:54:06 AM (10 years ago)
Author:
msaboff@apple.com
Message:

REGRESSION(r160213): Crash in js/dom/JSON-parse.html
https://bugs.webkit.org/show_bug.cgi?id=125335

Reviewed by Mark Lam.

Changed _llint_op_catch to materialize the VM via the scope chain instead of
the CodeBlock. CallFrames always have a scope chain, but may have a null CodeBlock.

  • llint/LowLevelInterpreter32_64.asm:

(_llint_op_catch):

  • llint/LowLevelInterpreter64.asm:

(_llint_op_catch):

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r160213 r160221  
     12013-12-05  Michael Saboff  <msaboff@apple.com>
     2
     3        REGRESSION(r160213): Crash in js/dom/JSON-parse.html
     4        https://bugs.webkit.org/show_bug.cgi?id=125335
     5
     6        Reviewed by Mark Lam.
     7
     8        Changed _llint_op_catch to materialize the VM via the scope chain instead of
     9        the CodeBlock.  CallFrames always have a scope chain, but may have a null CodeBlock.
     10
     11        * llint/LowLevelInterpreter32_64.asm:
     12        (_llint_op_catch):
     13        * llint/LowLevelInterpreter64.asm:
     14        (_llint_op_catch):
     15
    1162013-12-05  Michael Saboff  <msaboff@apple.com>
    217
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm

    r160213 r160221  
    19831983    # The throwing code must have known that we were throwing to the interpreter,
    19841984    # and have set VM::targetInterpreterPCForThrow.
    1985     loadp CodeBlock[cfr], t3
    1986     loadp CodeBlock::m_vm[t3], t3
     1985    loadp ScopeChain[cfr], t3
     1986    andp MarkedBlockMask, t3
     1987    loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
    19871988    loadp VM::callFrameForThrow[t3], cfr
    19881989    loadi VM::targetInterpreterPCForThrow[t3], PC
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm

    r160213 r160221  
    17861786    # The throwing code must have known that we were throwing to the interpreter,
    17871787    # and have set VM::targetInterpreterPCForThrow.
    1788     loadp CodeBlock[cfr], t3
    1789     loadp CodeBlock::m_vm[t3], t3
     1788    loadp ScopeChain[cfr], t3
     1789    andp MarkedBlockMask, t3
     1790    loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3
    17901791    loadp VM::callFrameForThrow[t3], cfr
    17911792    loadp CodeBlock[cfr], PB
Note: See TracChangeset for help on using the changeset viewer.