ExitSiteData saying m_takesSlowPath shouldn't mean early returning takesSlowPath() since for the non-LLInt case we later set m_couldTakeSlowPath, which is more precise
https://bugs.webkit.org/show_bug.cgi?id=140980
Reviewed by Oliver Hunt.
* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFor):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@179241 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp b/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp
index ecc7233..b971a60 100644
--- a/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp
+++ b/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp
@@ -86,12 +86,13 @@
UNUSED_PARAM(map);
#if ENABLE(DFG_JIT)
ExitSiteData exitSiteData = computeExitSiteData(locker, profiledBlock, bytecodeIndex);
- if (exitSiteData.m_takesSlowPath)
- return takesSlowPath();
CallLinkInfo* callLinkInfo = map.get(CodeOrigin(bytecodeIndex));
- if (!callLinkInfo)
+ if (!callLinkInfo) {
+ if (exitSiteData.m_takesSlowPath)
+ return takesSlowPath();
return computeFromLLInt(locker, profiledBlock, bytecodeIndex);
+ }
return computeFor(locker, profiledBlock, *callLinkInfo, exitSiteData);
#else