| OLD | NEW |
| (Empty) |
| 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 #ifndef AsyncCallChain_h | |
| 6 #define AsyncCallChain_h | |
| 7 | |
| 8 #include "wtf/Deque.h" | |
| 9 #include "wtf/Forward.h" | |
| 10 #include "wtf/RefCounted.h" | |
| 11 #include "wtf/text/WTFString.h" | |
| 12 #include <v8.h> | |
| 13 | |
| 14 namespace blink { | |
| 15 | |
| 16 class AsyncCallStack final : public RefCounted<AsyncCallStack> { | |
| 17 public: | |
| 18 AsyncCallStack(const String&, v8::Local<v8::Object>); | |
| 19 ~AsyncCallStack(); | |
| 20 | |
| 21 String description() const { return m_description; } | |
| 22 v8::Local<v8::Object> callFrames(v8::Isolate* isolate) const { return v8::Lo
cal<v8::Object>::New(isolate, m_callFrames); } | |
| 23 private: | |
| 24 String m_description; | |
| 25 v8::Global<v8::Object> m_callFrames; | |
| 26 }; | |
| 27 | |
| 28 using AsyncCallStackVector = Deque<RefPtr<AsyncCallStack>, 4>; | |
| 29 | |
| 30 class AsyncCallChain final : public RefCounted<AsyncCallChain> { | |
| 31 public: | |
| 32 static PassRefPtr<AsyncCallChain> create(v8::Local<v8::Context>, PassRefPtr<
AsyncCallStack>, AsyncCallChain* prevChain, unsigned asyncCallChainMaxLength); | |
| 33 ~AsyncCallChain(); | |
| 34 const AsyncCallStackVector& callStacks() const { return m_callStacks; } | |
| 35 v8::Local<v8::Context> creationContext(v8::Isolate* isolate) const { return
m_creationContext.Get(isolate); } | |
| 36 | |
| 37 private: | |
| 38 AsyncCallChain(v8::Local<v8::Context>, PassRefPtr<AsyncCallStack>, AsyncCall
Chain* prevChain, unsigned asyncCallChainMaxLength); | |
| 39 | |
| 40 AsyncCallStackVector m_callStacks; | |
| 41 v8::Global<v8::Context> m_creationContext; | |
| 42 }; | |
| 43 | |
| 44 } // namespace blink | |
| 45 | |
| 46 | |
| 47 #endif // !defined(AsyncCallChain_h) | |
| OLD | NEW |