Unreviewed, rolling out r115388.
http://trac.webkit.org/changeset/115388
https://bugs.webkit.org/show_bug.cgi?id=85011

This caused many weird performance problems, and needs to be
landed in pieces.

Source/JavaScriptCore:

* dfg/DFGOperations.cpp:
* heap/Heap.cpp:
(JSC::Heap::getConservativeRegisterRoots):
(JSC::Heap::markRoots):
* interpreter/CallFrame.cpp:
(JSC::CallFrame::dumpCaller):
(JSC):
* interpreter/CallFrame.h:
(JSC::ExecState::init):
(ExecState):
* interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
(JSC::Interpreter::privateExecute):
* interpreter/Interpreter.h:
(JSC::Interpreter::execute):
* interpreter/RegisterFile.cpp:
(JSC::RegisterFile::growSlowCase):
(JSC::RegisterFile::gatherConservativeRoots):
* interpreter/RegisterFile.h:
(JSC::RegisterFile::end):
(JSC::RegisterFile::size):
(JSC::RegisterFile::addressOfEnd):
(RegisterFile):
(JSC::RegisterFile::RegisterFile):
(JSC::RegisterFile::shrink):
(JSC::RegisterFile::grow):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
(JSC::jitCompileFor):
(JSC::lazyLinkFor):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::handleHostCall):
* llint/LowLevelInterpreter.asm:
* runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::arityCheckFor):

LayoutTests:

* fast/js/global-recursion-on-full-stack-expected.txt:
* fast/js/stack-trace-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/interpreter/CallFrame.h b/Source/JavaScriptCore/interpreter/CallFrame.h
index 36c0e18..4ec3de7f 100644
--- a/Source/JavaScriptCore/interpreter/CallFrame.h
+++ b/Source/JavaScriptCore/interpreter/CallFrame.h
@@ -171,7 +171,7 @@
             CallFrame* callerFrame, int argc, JSObject* callee)
         {
             ASSERT(callerFrame); // Use noCaller() rather than 0 for the outer host call frame caller.
-            ASSERT(callerFrame == noCaller() || callerFrame->removeHostCallFrameFlag()->registerFile()->commitEnd() >= this);
+            ASSERT(callerFrame == noCaller() || callerFrame->removeHostCallFrameFlag()->registerFile()->end() >= this);
 
             setCodeBlock(codeBlock);
             setScopeChain(scopeChain);
@@ -254,21 +254,14 @@
         // happening.
         CallFrame* trueCallFrameFromVMCode() { return trueCallFrame(AbstractPC()); }
 
-        Register* startOfReusableRegisterFile()
-        {
-            CallFrame* result = globalData().topCallFrame;
-            if (result == noCaller() || result == registerFile()->begin())
-                return registerFile()->begin();
-            return result->frameExtent();
-        }
-        
     private:
         static const intptr_t HostCallFrameFlag = 1;
         static const int s_thisArgumentOffset = -1 - RegisterFile::CallFrameHeaderSize;
         static const int s_firstArgumentOffset = s_thisArgumentOffset - 1;
 
+#ifndef NDEBUG
         RegisterFile* registerFile();
-
+#endif
 #if ENABLE(DFG_JIT)
         bool isInlineCallFrameSlow();
 #endif