Ignore:
Timestamp:
Sep 4, 2013, 5:40:15 PM (12 years ago)
Author:
[email protected]
Message:

Renamed StackIterator to StackVisitor.
https://bugs.webkit.org/show_bug.cgi?id=120706.

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Also did some minor refactoring:

  • Renamed StackIterator::iterate() to StackVisitor::visit().
  • Make StackVisitor::visit() a static method.
  • Move the instantiation of the StackVisitor instance into StackVisitor::visit() from CallFrame::iterate().
  • Removed StackIterator::resetIterator() and inline its body into the StackVisitor constructor since this is the only remaining caller of it.
  • API/JSContextRef.cpp:

(BacktraceFunctor::operator()):

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • interpreter/CallFrame.h:

(JSC::ExecState::iterate):

  • interpreter/Interpreter.cpp:

(JSC::DumpRegisterFunctor::operator()):
(JSC::unwindCallFrame):
(JSC::getStackFrameCodeType):
(JSC::GetStackTraceFunctor::operator()):
(JSC::UnwindFunctor::operator()):

  • interpreter/Interpreter.h:
  • interpreter/StackIterator.cpp: Removed.
  • interpreter/StackIterator.h: Removed.
  • interpreter/StackVisitor.cpp: Copied from Source/JavaScriptCore/interpreter/StackIterator.cpp.

(JSC::StackVisitor::StackVisitor):
(JSC::StackVisitor::gotoNextFrame):
(JSC::StackVisitor::readFrame):
(JSC::StackVisitor::readNonInlinedFrame):
(JSC::StackVisitor::readInlinedFrame):
(JSC::StackVisitor::Frame::codeType):
(JSC::StackVisitor::Frame::functionName):
(JSC::StackVisitor::Frame::sourceURL):
(JSC::StackVisitor::Frame::toString):
(JSC::StackVisitor::Frame::arguments):
(JSC::StackVisitor::Frame::computeLineAndColumn):
(JSC::StackVisitor::Frame::retrieveExpressionInfo):
(JSC::StackVisitor::Frame::setToEnd):
(JSC::StackVisitor::Frame::print):
(DebugPrintFrameFunctor::operator()):

  • interpreter/StackVisitor.h: Copied from Source/JavaScriptCore/interpreter/StackIterator.h.

(JSC::StackVisitor::visit):

  • jsc.cpp:

(FunctionJSCStackFunctor::operator()):

  • profiler/ProfileGenerator.cpp:

(JSC::AddParentForConsoleStartFunctor::operator()):

  • runtime/JSFunction.cpp:

(JSC::RetrieveArgumentsFunctor::operator()):
(JSC::RetrieveCallerFunctionFunctor::operator()):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::GlobalFuncProtoGetterFunctor::operator()):
(JSC::GlobalFuncProtoSetterFunctor::operator()):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructorGetPrototypeOfFunctor::operator()):

Source/WebCore:

No new tests.

  • ForwardingHeaders/interpreter/StackIterator.h: Removed.
  • ForwardingHeaders/interpreter/StackVisitor.h: Copied from Source/WebCore/ForwardingHeaders/interpreter/StackIterator.h.
  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::SendFunctor::operator()):

  • bindings/js/ScriptCallStackFactory.cpp:

(WebCore::CreateScriptCallStackFunctor::operator()):
(WebCore::CreateScriptCallStackForConsoleFunctor::operator()):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp

    r155075 r155081  
    6464#include "Register.h"
    6565#include "SamplingTool.h"
    66 #include "StackIterator.h"
     66#include "StackVisitor.h"
    6767#include "StrictEvalActivation.h"
    6868#include "StrongInlines.h"
     
    283283    }
    284284
    285     StackIterator::Status operator()(StackIterator& iter)
     285    StackVisitor::Status operator()(StackVisitor& visitor)
    286286    {
    287287        if (!m_hasSkippedFirstFrame) {
    288288            m_hasSkippedFirstFrame = true;
    289             return StackIterator::Continue;
     289            return StackVisitor::Continue;
    290290        }
    291291
    292292        unsigned line = 0;
    293293        unsigned unusedColumn = 0;
    294         iter->computeLineAndColumn(line, unusedColumn);
    295         dataLogF("[ReturnVPC]                | %10p | %d (line %d)\n", m_it, iter->bytecodeOffset(), line);
     294        visitor->computeLineAndColumn(line, unusedColumn);
     295        dataLogF("[ReturnVPC]                | %10p | %d (line %d)\n", m_it, visitor->bytecodeOffset(), line);
    296296        ++m_it;
    297         return StackIterator::Done;
     297        return StackVisitor::Done;
    298298    }
    299299
     
    390390}
    391391
    392 static bool unwindCallFrame(StackIterator& iter, JSValue exceptionValue)
    393 {
    394     CallFrame* callFrame = iter->callFrame();
    395     CodeBlock* codeBlock = iter->codeBlock();
     392static bool unwindCallFrame(StackVisitor& visitor, JSValue exceptionValue)
     393{
     394    CallFrame* callFrame = visitor->callFrame();
     395    CodeBlock* codeBlock = visitor->codeBlock();
    396396    CodeBlock* oldCodeBlock = codeBlock;
    397397    JSScope* scope = callFrame->scope();
     
    432432}
    433433
    434 static StackFrameCodeType getStackFrameCodeType(StackIterator iter)
    435 {
    436     switch (iter->codeType()) {
    437     case StackIterator::Frame::Eval:
     434static StackFrameCodeType getStackFrameCodeType(StackVisitor& visitor)
     435{
     436    switch (visitor->codeType()) {
     437    case StackVisitor::Frame::Eval:
    438438        return StackFrameEvalCode;
    439     case StackIterator::Frame::Function:
     439    case StackVisitor::Frame::Function:
    440440        return StackFrameFunctionCode;
    441     case StackIterator::Frame::Global:
     441    case StackVisitor::Frame::Global:
    442442        return StackFrameGlobalCode;
    443     case StackIterator::Frame::Native:
     443    case StackVisitor::Frame::Native:
    444444        ASSERT_NOT_REACHED();
    445445        return StackFrameNativeCode;
     
    507507    }
    508508
    509     StackIterator::Status operator()(StackIterator& iter)
     509    StackVisitor::Status operator()(StackVisitor& visitor)
    510510    {
    511511        VM& vm = m_vm;
    512512        if (m_remainingCapacityForFrameCapture) {
    513             if (iter->isJSFrame()) {
    514                 CodeBlock* codeBlock = iter->codeBlock();
     513            if (visitor->isJSFrame()) {
     514                CodeBlock* codeBlock = visitor->codeBlock();
    515515                StackFrame s = {
    516                     Strong<JSObject>(vm, iter->callee()),
    517                     getStackFrameCodeType(iter),
     516                    Strong<JSObject>(vm, visitor->callee()),
     517                    getStackFrameCodeType(visitor),
    518518                    Strong<ExecutableBase>(vm, codeBlock->ownerExecutable()),
    519519                    Strong<UnlinkedCodeBlock>(vm, codeBlock->unlinkedCodeBlock()),
     
    522522                    codeBlock->firstLineColumnOffset(),
    523523                    codeBlock->sourceOffset(),
    524                     iter->bytecodeOffset(),
    525                     iter->sourceURL()
     524                    visitor->bytecodeOffset(),
     525                    visitor->sourceURL()
    526526                };
    527527                m_results.append(s);
    528528            } else {
    529                 StackFrame s = { Strong<JSObject>(vm, iter->callee()), StackFrameNativeCode, Strong<ExecutableBase>(), Strong<UnlinkedCodeBlock>(), 0, 0, 0, 0, 0, String()};
     529                StackFrame s = { Strong<JSObject>(vm, visitor->callee()), StackFrameNativeCode, Strong<ExecutableBase>(), Strong<UnlinkedCodeBlock>(), 0, 0, 0, 0, 0, String()};
    530530                m_results.append(s);
    531531            }
    532532   
    533533            m_remainingCapacityForFrameCapture--;
    534             return StackIterator::Continue;
    535         }
    536         return StackIterator::Done;
     534            return StackVisitor::Continue;
     535        }
     536        return StackVisitor::Done;
    537537    }
    538538
     
    578578    }
    579579
    580     StackIterator::Status operator()(StackIterator& iter)
     580    StackVisitor::Status operator()(StackVisitor& visitor)
    581581    {
    582582        VM& vm = m_callFrame->vm();
    583         m_callFrame = iter->callFrame();
    584         m_codeBlock = iter->codeBlock();
    585         unsigned bytecodeOffset = iter->bytecodeOffset();
     583        m_callFrame = visitor->callFrame();
     584        m_codeBlock = visitor->codeBlock();
     585        unsigned bytecodeOffset = visitor->bytecodeOffset();
    586586
    587587        if (m_isTermination || !(m_handler = m_codeBlock->handlerForBytecodeOffset(bytecodeOffset))) {
    588         if (!unwindCallFrame(iter, m_exceptionValue)) {
     588        if (!unwindCallFrame(visitor, m_exceptionValue)) {
    589589            if (LegacyProfiler* profiler = vm.enabledProfiler())
    590590                profiler->exceptionUnwind(m_callFrame);
    591             return StackIterator::Done;
     591            return StackVisitor::Done;
    592592        }
    593593    } else
    594         return StackIterator::Done;
    595 
    596     return StackIterator::Continue;
     594        return StackVisitor::Done;
     595
     596    return StackVisitor::Continue;
    597597}
    598598
Note: See TracChangeset for help on using the changeset viewer.