| 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-debugger.h" | 5 #include "src/inspector/v8-debugger.h" |
| 6 | 6 |
| 7 #include "src/inspector/debugger-script.h" | 7 #include "src/inspector/debugger-script.h" |
| 8 #include "src/inspector/inspected-context.h" | 8 #include "src/inspector/inspected-context.h" |
| 9 #include "src/inspector/protocol/Protocol.h" | 9 #include "src/inspector/protocol/Protocol.h" |
| 10 #include "src/inspector/script-breakpoint.h" | 10 #include "src/inspector/script-breakpoint.h" |
| (...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 | 633 |
| 634 bool V8Debugger::IsFunctionBlackboxed(v8::Local<v8::debug::Script> script, | 634 bool V8Debugger::IsFunctionBlackboxed(v8::Local<v8::debug::Script> script, |
| 635 const v8::debug::Location& start, | 635 const v8::debug::Location& start, |
| 636 const v8::debug::Location& end) { | 636 const v8::debug::Location& end) { |
| 637 V8DebuggerAgentImpl* agent = agentForScript(m_inspector, script); | 637 V8DebuggerAgentImpl* agent = agentForScript(m_inspector, script); |
| 638 if (!agent) return false; | 638 if (!agent) return false; |
| 639 return agent->isFunctionBlackboxed(String16::fromInteger(script->Id()), start, | 639 return agent->isFunctionBlackboxed(String16::fromInteger(script->Id()), start, |
| 640 end); | 640 end); |
| 641 } | 641 } |
| 642 | 642 |
| 643 void V8Debugger::PromiseEventOccurred(v8::Local<v8::Context> context, | 643 void V8Debugger::PromiseEventOccurred(v8::debug::PromiseDebugActionType type, |
| 644 v8::debug::PromiseDebugActionType type, | |
| 645 int id, int parentId, | 644 int id, int parentId, |
| 646 bool createdByUser) { | 645 bool createdByUser) { |
| 647 // Async task events from Promises are given misaligned pointers to prevent | 646 // Async task events from Promises are given misaligned pointers to prevent |
| 648 // from overlapping with other Blink task identifiers. | 647 // from overlapping with other Blink task identifiers. |
| 649 void* task = reinterpret_cast<void*>(id * 2 + 1); | 648 void* task = reinterpret_cast<void*>(id * 2 + 1); |
| 650 void* parentTask = | 649 void* parentTask = |
| 651 parentId ? reinterpret_cast<void*>(parentId * 2 + 1) : nullptr; | 650 parentId ? reinterpret_cast<void*>(parentId * 2 + 1) : nullptr; |
| 652 switch (type) { | 651 switch (type) { |
| 653 case v8::debug::kDebugPromiseCreated: | 652 case v8::debug::kDebugPromiseCreated: |
| 654 asyncTaskCreatedForStack(task, parentTask); | 653 asyncTaskCreatedForStack(task, parentTask); |
| 655 if (createdByUser && parentTask) { | 654 if (createdByUser && parentTask) asyncTaskCandidateForStepping(task); |
| 656 v8::Context::Scope contextScope(context); | |
| 657 asyncTaskCandidateForStepping(task); | |
| 658 } | |
| 659 break; | 655 break; |
| 660 case v8::debug::kDebugEnqueueAsyncFunction: | 656 case v8::debug::kDebugEnqueueAsyncFunction: |
| 661 asyncTaskScheduledForStack("async function", task, true); | 657 asyncTaskScheduledForStack("async function", task, true); |
| 662 break; | 658 break; |
| 663 case v8::debug::kDebugEnqueuePromiseResolve: | 659 case v8::debug::kDebugEnqueuePromiseResolve: |
| 664 asyncTaskScheduledForStack("Promise.resolve", task, true); | 660 asyncTaskScheduledForStack("Promise.resolve", task, true); |
| 665 break; | 661 break; |
| 666 case v8::debug::kDebugEnqueuePromiseReject: | 662 case v8::debug::kDebugEnqueuePromiseReject: |
| 667 asyncTaskScheduledForStack("Promise.reject", task, true); | 663 asyncTaskScheduledForStack("Promise.reject", task, true); |
| 668 break; | 664 break; |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1031 | 1027 |
| 1032 return V8StackTraceImpl::capture(this, contextGroupId, stackSize); | 1028 return V8StackTraceImpl::capture(this, contextGroupId, stackSize); |
| 1033 } | 1029 } |
| 1034 | 1030 |
| 1035 int V8Debugger::currentContextGroupId() { | 1031 int V8Debugger::currentContextGroupId() { |
| 1036 if (!m_isolate->InContext()) return 0; | 1032 if (!m_isolate->InContext()) return 0; |
| 1037 return m_inspector->contextGroupId(m_isolate->GetCurrentContext()); | 1033 return m_inspector->contextGroupId(m_isolate->GetCurrentContext()); |
| 1038 } | 1034 } |
| 1039 | 1035 |
| 1040 } // namespace v8_inspector | 1036 } // namespace v8_inspector |
| OLD | NEW |