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