| Index: src/debug.cc
|
| diff --git a/src/debug.cc b/src/debug.cc
|
| index 58c0e44c7997cd79b3fab0d87cf16135622b0730..2c2eae32af6129850976b3c595f72b7bafeb5ac3 100644
|
| --- a/src/debug.cc
|
| +++ b/src/debug.cc
|
| @@ -2579,6 +2579,13 @@ MaybeHandle<Object> Debug::MakeScriptCollectedEvent(int id) {
|
| }
|
|
|
|
|
| +MaybeHandle<Object> Debug::MakePromiseEvent(Handle<JSObject> event_data) {
|
| + // Create the promise event object.
|
| + Handle<Object> argv[] = { event_data };
|
| + return MakeJSObject("MakePromiseEvent", ARRAY_SIZE(argv), argv);
|
| +}
|
| +
|
| +
|
| void Debug::OnException(Handle<Object> exception, bool uncaught) {
|
| if (in_debug_scope() || ignore_events()) return;
|
|
|
| @@ -2730,6 +2737,25 @@ void Debug::OnScriptCollected(int id) {
|
| }
|
|
|
|
|
| +void Debug::OnPromiseEvent(Handle<JSObject> data) {
|
| + if (in_debug_scope() || ignore_events()) return;
|
| +
|
| + HandleScope scope(isolate_);
|
| + DebugScope debug_scope(this);
|
| + if (debug_scope.failed()) return;
|
| +
|
| + // Create the script collected state object.
|
| + Handle<Object> event_data;
|
| + // Bail out and don't call debugger if exception.
|
| + if (!MakePromiseEvent(data).ToHandle(&event_data)) return;
|
| +
|
| + // Process debug event.
|
| + ProcessDebugEvent(v8::PromiseEvent,
|
| + Handle<JSObject>::cast(event_data),
|
| + true);
|
| +}
|
| +
|
| +
|
| void Debug::ProcessDebugEvent(v8::DebugEvent event,
|
| Handle<JSObject> event_data,
|
| bool auto_continue) {
|
|
|