Skip to content
  • oliver@apple.com's avatar
    fourthTier: each DFG node that relies on other nodes to do their type checks... · 83d2d02a
    oliver@apple.com authored
    fourthTier: each DFG node that relies on other nodes to do their type checks should be able to tell you if those type checks happened
    https://bugs.webkit.org/show_bug.cgi?id=118866
    
    Reviewed by Sam Weinig.
    
    Adds a safeToExecute() method that takes a node and an abstract state and tells you
    if the node will run without crashing under that state.
    
    * JavaScriptCore.xcodeproj/project.pbxproj:
    * bytecode/CodeBlock.cpp:
    (JSC::CodeBlock::CodeBlock):
    * dfg/DFGCFAPhase.cpp:
    (CFAPhase):
    (JSC::DFG::CFAPhase::CFAPhase):
    (JSC::DFG::CFAPhase::run):
    (JSC::DFG::CFAPhase::performBlockCFA):
    (JSC::DFG::CFAPhase::performForwardCFA):
    * dfg/DFGSafeToExecute.h: Added.
    (DFG):
    (SafeToExecuteEdge):
    (JSC::DFG::SafeToExecuteEdge::SafeToExecuteEdge):
    (JSC::DFG::SafeToExecuteEdge::operator()):
    (JSC::DFG::SafeToExecuteEdge::result):
    (JSC::DFG::safeToExecute):
    * dfg/DFGStructureAbstractValue.h:
    (JSC::DFG::StructureAbstractValue::isValidOffset):
    (StructureAbstractValue):
    * runtime/Options.h:
    (JSC):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    83d2d02a