Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
REGRESSION (r181993): inspector-protocol/debugger/setBreakpoint-dfg-a…
…nd-modify-local.html crashes. <https://webkit.org/b/143105> Reviewed by Filip Pizlo. Source/JavaScriptCore: With r181993, the DFG and FTL may elide the storing of the scope register. As a result, on OSR exits from DFG / FTL frames where this elision has take place, we may get baseline JIT frames that may have its scope register not set. The Debugger's current implementation which relies on the scope register is not happy about this. For example, this results in a crash in the layout test inspector-protocol/debugger/setBreakpoint-dfg-and-modify-local.html. The fix is to disable inlining when the debugger is in use. Also, we add Flush nodes to ensure that the scope register value is flushed to the register in the stack frame. * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::ByteCodeParser): (JSC::DFG::ByteCodeParser::setLocal): (JSC::DFG::ByteCodeParser::flush): - Add code to flush the scope register. (JSC::DFG::ByteCodeParser::inliningCost): - Pretend that all codeBlocks are too expensive to inline if the debugger is in use, thereby disabling inlining whenever the debugger is in use. * dfg/DFGGraph.cpp: (JSC::DFG::Graph::Graph): * dfg/DFGGraph.h: (JSC::DFG::Graph::hasDebuggerEnabled): * dfg/DFGStackLayoutPhase.cpp: (JSC::DFG::StackLayoutPhase::run): - Update the DFG codeBlock's scopeRegister since it can be moved during stack layout. * ftl/FTLCompile.cpp: (JSC::FTL::mmAllocateDataSection): - Update the FTL codeBlock's scopeRegister since it can be moved during stack layout. LayoutTests: * TestExpectations: - Undid test skipped in r182072. Canonical link: https://commits.webkit.org/161267@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@182167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- Loading branch information
Showing
with
73 additions
and 3 deletions.
- +10 −0 LayoutTests/ChangeLog
- +1 −1 LayoutTests/TestExpectations
- +35 −0 Source/JavaScriptCore/ChangeLog
- +13 −0 Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
- +3 −0 Source/JavaScriptCore/dfg/DFGGraph.cpp
- +4 −1 Source/JavaScriptCore/dfg/DFGGraph.h
- +4 −1 Source/JavaScriptCore/dfg/DFGStackLayoutPhase.cpp
- +3 −0 Source/JavaScriptCore/ftl/FTLCompile.cpp
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters