• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
create(const String & description,PassRefPtrWillBeRawPtr<ScriptCallStack> callStack,PassRefPtrWillBeRawPtr<ScriptAsyncCallStack> asyncStackTrace)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 
ScriptAsyncCallStack(const String & description,PassRefPtrWillBeRawPtr<ScriptCallStack> callStack,PassRefPtrWillBeRawPtr<ScriptAsyncCallStack> asyncStackTrace)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 
buildInspectorObject() const25 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 
trace(Visitor * visitor)36 void ScriptAsyncCallStack::trace(Visitor* visitor)
37 {
38     visitor->trace(m_callStack);
39     visitor->trace(m_asyncStackTrace);
40 }
41 
42 } // namespace blink
43