Home | History | Annotate | Download | only in inspector
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "config.h"
      6 #include "core/inspector/ScriptAsyncCallStack.h"
      7 
      8 namespace blink {
      9 
     10 DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(ScriptAsyncCallStack);
     11 
     12 PassRefPtrWillBeRawPtr<ScriptAsyncCallStack> ScriptAsyncCallStack::create(const String& description, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack, PassRefPtrWillBeRawPtr<ScriptAsyncCallStack> asyncStackTrace)
     13 {
     14     return adoptRefWillBeNoop(new ScriptAsyncCallStack(description, callStack, asyncStackTrace));
     15 }
     16 
     17 ScriptAsyncCallStack::ScriptAsyncCallStack(const String& description, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack, PassRefPtrWillBeRawPtr<ScriptAsyncCallStack> asyncStackTrace)
     18     : m_description(description)
     19     , m_callStack(callStack)
     20     , m_asyncStackTrace(asyncStackTrace)
     21 {
     22     ASSERT(m_callStack);
     23 }
     24 
     25 PassRefPtr<TypeBuilder::Console::AsyncStackTrace> ScriptAsyncCallStack::buildInspectorObject() const
     26 {
     27     RefPtr<TypeBuilder::Console::AsyncStackTrace> result = TypeBuilder::Console::AsyncStackTrace::create()
     28         .setCallFrames(m_callStack->buildInspectorArray())
     29         .release();
     30     result->setDescription(m_description);
     31     if (m_asyncStackTrace)
     32         result->setAsyncStackTrace(m_asyncStackTrace->buildInspectorObject());
     33     return result.release();
     34 }
     35 
     36 void ScriptAsyncCallStack::trace(Visitor* visitor)
     37 {
     38     visitor->trace(m_callStack);
     39     visitor->trace(m_asyncStackTrace);
     40 }
     41 
     42 } // namespace blink
     43