| Index: src/inspector/v8-debugger.cc
|
| diff --git a/src/inspector/v8-debugger.cc b/src/inspector/v8-debugger.cc
|
| index 7db9bb4823d54601230e826a7e3501c00b6346e4..4aaf5592c7bc03824b9994a84b7475feaa1fcc46 100644
|
| --- a/src/inspector/v8-debugger.cc
|
| +++ b/src/inspector/v8-debugger.cc
|
| @@ -486,7 +486,7 @@ void V8Debugger::handleProgramBreak(v8::Local<v8::Context> pausedContext,
|
| v8::Local<v8::Object> executionState,
|
| v8::Local<v8::Value> exception,
|
| v8::Local<v8::Array> hitBreakpointNumbers,
|
| - bool isPromiseRejection) {
|
| + bool isPromiseRejection, bool isUncaught) {
|
| // Don't allow nested breaks.
|
| if (m_runningNestedMessageLoop) return;
|
|
|
| @@ -509,7 +509,7 @@ void V8Debugger::handleProgramBreak(v8::Local<v8::Context> pausedContext,
|
| m_pausedContext = pausedContext;
|
| m_executionState = executionState;
|
| V8DebuggerAgentImpl::SkipPauseRequest result = agent->didPause(
|
| - pausedContext, exception, breakpointIds, isPromiseRejection);
|
| + pausedContext, exception, breakpointIds, isPromiseRejection, isUncaught);
|
| if (result == V8DebuggerAgentImpl::RequestNoSkip) {
|
| m_runningNestedMessageLoop = true;
|
| int groupId = getGroupId(pausedContext);
|
| @@ -595,14 +595,19 @@ void V8Debugger::handleV8DebugEvent(
|
| wrapUnique(new V8DebuggerScript(m_isolate, script, inLiveEditScope)),
|
| event == v8::AfterCompile);
|
| } else if (event == v8::Exception) {
|
| + v8::Local<v8::Context> context = debuggerContext();
|
| v8::Local<v8::Object> eventData = eventDetails.GetEventData();
|
| v8::Local<v8::Value> exception =
|
| callInternalGetterFunction(eventData, "exception");
|
| v8::Local<v8::Value> promise =
|
| callInternalGetterFunction(eventData, "promise");
|
| bool isPromiseRejection = !promise.IsEmpty() && promise->IsObject();
|
| + v8::Local<v8::Value> uncaught =
|
| + callInternalGetterFunction(eventData, "uncaught");
|
| + bool isUncaught = uncaught->BooleanValue(context).FromJust();
|
| handleProgramBreak(eventContext, eventDetails.GetExecutionState(),
|
| - exception, v8::Local<v8::Array>(), isPromiseRejection);
|
| + exception, v8::Local<v8::Array>(), isPromiseRejection,
|
| + isUncaught);
|
| } else if (event == v8::Break) {
|
| v8::Local<v8::Value> argv[] = {eventDetails.GetEventData()};
|
| v8::Local<v8::Value> hitBreakpoints =
|
|
|