diff options
author | Matt Loring <mattloring@google.com> | 2016-06-06 12:02:28 -0700 |
---|---|---|
committer | Michaƫl Zasso <targos@protonmail.com> | 2016-06-29 10:44:32 +0200 |
commit | d894648450b3000f758097d91f619c285132ea80 (patch) | |
tree | ba906a359f6c2e323a83843001e93385087dc7c2 /deps/v8/src/debug/debug.cc | |
parent | fbfe6c70e139d52db8377adbea4dfe6134a67370 (diff) | |
download | node-new-d894648450b3000f758097d91f619c285132ea80.tar.gz |
deps: revert removal of V8::PromiseEvent
The removal of the promise debug event is an API/ABI breaking change.
Ref: https://codereview.chromium.org/1833563002
Ref: https://github.com/ofrobots/node/pull/23
PR-URL: https://github.com/nodejs/node/pull/7016
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/v8/src/debug/debug.cc')
-rw-r--r-- | deps/v8/src/debug/debug.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/deps/v8/src/debug/debug.cc b/deps/v8/src/debug/debug.cc index 6e94012579..7c76742bb9 100644 --- a/deps/v8/src/debug/debug.cc +++ b/deps/v8/src/debug/debug.cc @@ -1708,6 +1708,13 @@ MaybeHandle<Object> Debug::MakeCompileEvent(Handle<Script> script, } +MaybeHandle<Object> Debug::MakePromiseEvent(Handle<JSObject> event_data) { + // Create the promise event object. + Handle<Object> argv[] = { event_data }; + return CallFunction("MakePromiseEvent", arraysize(argv), argv); +} + + MaybeHandle<Object> Debug::MakeAsyncTaskEvent(Handle<JSObject> task_event) { // Create the async task event object. Handle<Object> argv[] = { task_event }; @@ -1838,6 +1845,25 @@ void Debug::OnAfterCompile(Handle<Script> script) { } +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::OnAsyncTaskEvent(Handle<JSObject> data) { if (in_debug_scope() || ignore_events()) return; @@ -1987,6 +2013,7 @@ void Debug::NotifyMessageHandler(v8::DebugEvent event, case v8::NewFunction: case v8::BeforeCompile: case v8::CompileError: + case v8::PromiseEvent: case v8::AsyncTaskEvent: break; case v8::Exception: |