From aa6b9a502582534a9853bab5b32a8103380809cd Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Mon, 13 Nov 2017 03:00:16 +1100 Subject: [PATCH] Fix crash when emitting unhandled error on native EventEmitter --- atom/common/api/event_emitter_caller.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/atom/common/api/event_emitter_caller.cc b/atom/common/api/event_emitter_caller.cc index 50d586680d50..1f6b5e81b58d 100644 --- a/atom/common/api/event_emitter_caller.cc +++ b/atom/common/api/event_emitter_caller.cc @@ -20,8 +20,12 @@ v8::Local CallMethodWithArgs(v8::Isolate* isolate, v8::MicrotasksScope::kRunMicrotasks); // Use node::MakeCallback to call the callback, and it will also run pending // tasks in Node.js. - return node::MakeCallback(isolate, obj, method, args->size(), &args->front(), - {0, 0}).ToLocalChecked(); + v8::MaybeLocal ret = node::MakeCallback(isolate, obj, method, args->size(), &args->front(), + {0, 0}); + if (ret.IsEmpty()) { + return v8::Boolean::New(isolate, false); + } + return ret.ToLocalChecked(); } } // namespace internal