OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/inspector/v8-stack-trace-impl.h" | 5 #include "src/inspector/v8-stack-trace-impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "src/inspector/v8-debugger.h" | 9 #include "src/inspector/v8-debugger.h" |
10 #include "src/inspector/wasm-translation.h" | 10 #include "src/inspector/wasm-translation.h" |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 m_description(description), | 291 m_description(description), |
292 m_frames(std::move(frames)), | 292 m_frames(std::move(frames)), |
293 m_asyncParent(asyncParent), | 293 m_asyncParent(asyncParent), |
294 m_asyncCreation(asyncCreation) { | 294 m_asyncCreation(asyncCreation) { |
295 DCHECK(m_contextGroupId); | 295 DCHECK(m_contextGroupId); |
296 } | 296 } |
297 | 297 |
298 std::unique_ptr<protocol::Runtime::StackTrace> | 298 std::unique_ptr<protocol::Runtime::StackTrace> |
299 AsyncStackTrace::buildInspectorObject(AsyncStackTrace* asyncCreation, | 299 AsyncStackTrace::buildInspectorObject(AsyncStackTrace* asyncCreation, |
300 int maxAsyncDepth) const { | 300 int maxAsyncDepth) const { |
301 return buildInspectorObjectCommon(m_frames, m_description, | 301 std::unique_ptr<protocol::Runtime::StackTrace> stackTrace = |
302 m_asyncParent.lock(), | 302 buildInspectorObjectCommon(m_frames, m_description, m_asyncParent.lock(), |
303 m_asyncCreation.lock(), maxAsyncDepth); | 303 m_asyncCreation.lock(), maxAsyncDepth); |
| 304 if (asyncCreation && !asyncCreation->isEmpty()) { |
| 305 stackTrace->setPromiseCreationFrame( |
| 306 asyncCreation->m_frames[0]->buildInspectorObject()); |
| 307 } |
| 308 return stackTrace; |
304 } | 309 } |
305 | 310 |
306 int AsyncStackTrace::contextGroupId() const { return m_contextGroupId; } | 311 int AsyncStackTrace::contextGroupId() const { return m_contextGroupId; } |
307 | 312 |
308 const String16& AsyncStackTrace::description() const { return m_description; } | 313 const String16& AsyncStackTrace::description() const { return m_description; } |
309 | 314 |
310 std::weak_ptr<AsyncStackTrace> AsyncStackTrace::parent() const { | 315 std::weak_ptr<AsyncStackTrace> AsyncStackTrace::parent() const { |
311 return m_asyncParent; | 316 return m_asyncParent; |
312 } | 317 } |
313 | 318 |
314 std::weak_ptr<AsyncStackTrace> AsyncStackTrace::creation() const { | 319 std::weak_ptr<AsyncStackTrace> AsyncStackTrace::creation() const { |
315 return m_asyncCreation; | 320 return m_asyncCreation; |
316 } | 321 } |
317 | 322 |
318 bool AsyncStackTrace::isEmpty() const { return m_frames.empty(); } | 323 bool AsyncStackTrace::isEmpty() const { return m_frames.empty(); } |
319 | 324 |
320 } // namespace v8_inspector | 325 } // namespace v8_inspector |
OLD | NEW |