Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/debug/debug.h" | 5 #include "src/debug/debug.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "src/api.h" | 9 #include "src/api.h" |
| 10 #include "src/arguments.h" | 10 #include "src/arguments.h" |
| (...skipping 1640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1651 | 1651 |
| 1652 MaybeHandle<Object> Debug::MakeCompileEvent(Handle<Script> script, | 1652 MaybeHandle<Object> Debug::MakeCompileEvent(Handle<Script> script, |
| 1653 v8::DebugEvent type) { | 1653 v8::DebugEvent type) { |
| 1654 // Create the compile event object. | 1654 // Create the compile event object. |
| 1655 Handle<Object> script_wrapper = Script::GetWrapper(script); | 1655 Handle<Object> script_wrapper = Script::GetWrapper(script); |
| 1656 Handle<Object> argv[] = { script_wrapper, | 1656 Handle<Object> argv[] = { script_wrapper, |
| 1657 isolate_->factory()->NewNumberFromInt(type) }; | 1657 isolate_->factory()->NewNumberFromInt(type) }; |
| 1658 return CallFunction("MakeCompileEvent", arraysize(argv), argv); | 1658 return CallFunction("MakeCompileEvent", arraysize(argv), argv); |
| 1659 } | 1659 } |
| 1660 | 1660 |
| 1661 | 1661 MaybeHandle<Object> Debug::MakeAsyncTaskEvent(Handle<Object> type, |
| 1662 MaybeHandle<Object> Debug::MakeAsyncTaskEvent(Handle<JSObject> task_event) { | 1662 Handle<Object> id, |
| 1663 Handle<Object> name) { | |
| 1663 // Create the async task event object. | 1664 // Create the async task event object. |
| 1664 Handle<Object> argv[] = { task_event }; | 1665 Handle<Object> argv[] = {type, id, name}; |
| 1665 return CallFunction("MakeAsyncTaskEvent", arraysize(argv), argv); | 1666 return CallFunction("MakeAsyncTaskEvent", arraysize(argv), argv); |
| 1666 } | 1667 } |
| 1667 | 1668 |
| 1668 | 1669 |
| 1669 void Debug::OnThrow(Handle<Object> exception) { | 1670 void Debug::OnThrow(Handle<Object> exception) { |
| 1670 if (in_debug_scope() || ignore_events()) return; | 1671 if (in_debug_scope() || ignore_events()) return; |
| 1671 PrepareStepOnThrow(); | 1672 PrepareStepOnThrow(); |
| 1672 // Temporarily clear any scheduled_exception to allow evaluating | 1673 // Temporarily clear any scheduled_exception to allow evaluating |
| 1673 // JavaScript from the debug event handler. | 1674 // JavaScript from the debug event handler. |
| 1674 HandleScope scope(isolate_); | 1675 HandleScope scope(isolate_); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1774 void Debug::OnBeforeCompile(Handle<Script> script) { | 1775 void Debug::OnBeforeCompile(Handle<Script> script) { |
| 1775 ProcessCompileEvent(v8::BeforeCompile, script); | 1776 ProcessCompileEvent(v8::BeforeCompile, script); |
| 1776 } | 1777 } |
| 1777 | 1778 |
| 1778 | 1779 |
| 1779 // Handle debugger actions when a new script is compiled. | 1780 // Handle debugger actions when a new script is compiled. |
| 1780 void Debug::OnAfterCompile(Handle<Script> script) { | 1781 void Debug::OnAfterCompile(Handle<Script> script) { |
| 1781 ProcessCompileEvent(v8::AfterCompile, script); | 1782 ProcessCompileEvent(v8::AfterCompile, script); |
| 1782 } | 1783 } |
| 1783 | 1784 |
| 1784 | 1785 void Debug::OnAsyncTaskEvent(Handle<Object> type, Handle<Object> id, |
| 1785 void Debug::OnAsyncTaskEvent(Handle<JSObject> data) { | 1786 Handle<Object> name) { |
|
adamk
2016/10/13 15:59:10
And then you can add a DCHECK(id->IsNumber()) here
gsathya
2016/10/13 21:27:30
Done.
| |
| 1786 if (in_debug_scope() || ignore_events()) return; | 1787 if (in_debug_scope() || ignore_events()) return; |
| 1787 | 1788 |
| 1788 HandleScope scope(isolate_); | 1789 HandleScope scope(isolate_); |
| 1789 DebugScope debug_scope(this); | 1790 DebugScope debug_scope(this); |
| 1790 if (debug_scope.failed()) return; | 1791 if (debug_scope.failed()) return; |
| 1791 | 1792 |
| 1792 // Create the script collected state object. | 1793 // Create the script collected state object. |
| 1793 Handle<Object> event_data; | 1794 Handle<Object> event_data; |
| 1794 // Bail out and don't call debugger if exception. | 1795 // Bail out and don't call debugger if exception. |
| 1795 if (!MakeAsyncTaskEvent(data).ToHandle(&event_data)) return; | 1796 if (!MakeAsyncTaskEvent(type, id, name).ToHandle(&event_data)) return; |
| 1796 | 1797 |
| 1797 // Process debug event. | 1798 // Process debug event. |
| 1798 ProcessDebugEvent(v8::AsyncTaskEvent, | 1799 ProcessDebugEvent(v8::AsyncTaskEvent, |
| 1799 Handle<JSObject>::cast(event_data), | 1800 Handle<JSObject>::cast(event_data), |
| 1800 true); | 1801 true); |
| 1801 } | 1802 } |
| 1802 | 1803 |
| 1803 | 1804 |
| 1804 void Debug::ProcessDebugEvent(v8::DebugEvent event, | 1805 void Debug::ProcessDebugEvent(v8::DebugEvent event, |
| 1805 Handle<JSObject> event_data, | 1806 Handle<JSObject> event_data, |
| (...skipping 752 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2558 } | 2559 } |
| 2559 | 2560 |
| 2560 | 2561 |
| 2561 void LockingCommandMessageQueue::Clear() { | 2562 void LockingCommandMessageQueue::Clear() { |
| 2562 base::LockGuard<base::Mutex> lock_guard(&mutex_); | 2563 base::LockGuard<base::Mutex> lock_guard(&mutex_); |
| 2563 queue_.Clear(); | 2564 queue_.Clear(); |
| 2564 } | 2565 } |
| 2565 | 2566 |
| 2566 } // namespace internal | 2567 } // namespace internal |
| 2567 } // namespace v8 | 2568 } // namespace v8 |
| OLD | NEW |