Merge V8 5.8.283.32
Test: Build V8 for arm, arm64, x86, x86_64, mips, mips64 and
set a PAC script from the UI on bullhead
Change-Id: I7cc773b5daca34d869e768a1deebae3876f2dfac
diff --git a/src/inspector/v8-debugger-agent-impl.h b/src/inspector/v8-debugger-agent-impl.h
index e5285f4..41a18a8 100644
--- a/src/inspector/v8-debugger-agent-impl.h
+++ b/src/inspector/v8-debugger-agent-impl.h
@@ -8,6 +8,7 @@
#include <vector>
#include "src/base/macros.h"
+#include "src/debug/interface-types.h"
#include "src/inspector/java-script-call-frame.h"
#include "src/inspector/protocol/Debugger.h"
#include "src/inspector/protocol/Forward.h"
@@ -29,14 +30,6 @@
class V8DebuggerAgentImpl : public protocol::Debugger::Backend {
public:
- enum SkipPauseRequest {
- RequestNoSkip,
- RequestContinue,
- RequestStepInto,
- RequestStepOut,
- RequestStepFrame
- };
-
enum BreakpointSource {
UserBreakpointSource,
DebugCommandBreakpointSource,
@@ -100,7 +93,7 @@
const String16& callFrameId, const String16& expression,
Maybe<String16> objectGroup, Maybe<bool> includeCommandLineAPI,
Maybe<bool> silent, Maybe<bool> returnByValue,
- Maybe<bool> generatePreview,
+ Maybe<bool> generatePreview, Maybe<bool> throwOnSideEffect,
std::unique_ptr<protocol::Runtime::RemoteObject>* result,
Maybe<protocol::Runtime::ExceptionDetails>*) override;
Response setVariableValue(
@@ -134,23 +127,25 @@
void reset();
// Interface for V8InspectorImpl
- SkipPauseRequest didPause(v8::Local<v8::Context>,
- v8::Local<v8::Value> exception,
- const std::vector<String16>& hitBreakpoints,
- bool isPromiseRejection, bool isUncaught);
+ void didPause(int contextId, v8::Local<v8::Value> exception,
+ const std::vector<String16>& hitBreakpoints,
+ bool isPromiseRejection, bool isUncaught, bool isOOMBreak);
void didContinue();
void didParseSource(std::unique_ptr<V8DebuggerScript>, bool success);
void willExecuteScript(int scriptId);
void didExecuteScript();
+ bool isFunctionBlackboxed(const String16& scriptId,
+ const v8::debug::Location& start,
+ const v8::debug::Location& end);
+
+ bool skipAllPauses() const { return m_skipAllPauses; }
+
v8::Isolate* isolate() { return m_isolate; }
private:
void enableImpl();
- SkipPauseRequest shouldSkipExceptionPause(JavaScriptCallFrame* topCallFrame);
- SkipPauseRequest shouldSkipStepPause(JavaScriptCallFrame* topCallFrame);
-
void schedulePauseOnNextStatementIfSteppingInto();
Response currentCallFrames(
@@ -162,19 +157,17 @@
void setPauseOnExceptionsImpl(int);
std::unique_ptr<protocol::Debugger::Location> resolveBreakpoint(
- const String16& breakpointId, const String16& scriptId,
- const ScriptBreakpoint&, BreakpointSource);
+ const String16& breakpointId, const ScriptBreakpoint&, BreakpointSource);
void removeBreakpointImpl(const String16& breakpointId);
void clearBreakDetails();
- bool isCurrentCallStackEmptyOrBlackboxed();
- bool isTopPausedCallFrameBlackboxed();
- bool isCallFrameWithUnknownScriptOrBlackboxed(JavaScriptCallFrame*);
-
void internalSetAsyncCallStackDepth(int);
void increaseCachedSkipStackGeneration();
Response setBlackboxPattern(const String16& pattern);
+ void resetBlackboxedStateCache();
+
+ bool isPaused() const;
using ScriptsMap =
protocol::HashMap<String16, std::unique_ptr<V8DebuggerScript>>;
@@ -193,24 +186,26 @@
protocol::DictionaryValue* m_state;
protocol::Debugger::Frontend m_frontend;
v8::Isolate* m_isolate;
- v8::Global<v8::Context> m_pausedContext;
JavaScriptCallFrames m_pausedCallFrames;
ScriptsMap m_scripts;
BreakpointIdToDebuggerBreakpointIdsMap m_breakpointIdToDebuggerBreakpointIds;
DebugServerBreakpointToBreakpointIdAndSourceMap m_serverBreakpoints;
String16 m_continueToLocationBreakpointId;
- String16 m_breakReason;
- std::unique_ptr<protocol::DictionaryValue> m_breakAuxData;
- DebuggerStep m_scheduledDebuggerStep;
- bool m_skipNextDebuggerStepOut;
- bool m_javaScriptPauseScheduled;
- bool m_steppingFromFramework;
- bool m_pausingOnNativeEvent;
- int m_skippedStepFrameCount;
+ using BreakReason =
+ std::pair<String16, std::unique_ptr<protocol::DictionaryValue>>;
+ std::vector<BreakReason> m_breakReason;
+
+ void pushBreakDetails(
+ const String16& breakReason,
+ std::unique_ptr<protocol::DictionaryValue> breakAuxData);
+ void popBreakDetails();
+
+ DebuggerStep m_scheduledDebuggerStep;
+ bool m_javaScriptPauseScheduled;
+
int m_recursionLevelForStepOut;
- int m_recursionLevelForStepFrame;
- bool m_skipAllPauses;
+ bool m_skipAllPauses = false;
std::unique_ptr<V8Regex> m_blackboxPattern;
protocol::HashMap<String16, std::vector<std::pair<int, int>>>