summaryrefslogtreecommitdiff
path: root/deps/v8/src/debug/debug.h
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2016-05-27 16:37:42 +0200
committerMichaël Zasso <targos@protonmail.com>2016-06-29 09:04:28 +0200
commit2cc29517966de7257a2f1b34c58c77225a21e05d (patch)
tree210bd177df2f06eec16e1e22edafdbcbffe66f8a /deps/v8/src/debug/debug.h
parentbbf3838c70aaec1dd296fa75ae334fd1c7866df3 (diff)
downloadnode-new-2cc29517966de7257a2f1b34c58c77225a21e05d.tar.gz
deps: update V8 to 5.1.281.69
Pick up the latest branch-head for V8 5.1. This branch brings in improved language support and performance improvements. For full details: http://v8project.blogspot.com/2016/04/v8-release-51.html * Picks up the latest branch head for 5.1 [1] * Edit v8 gitignore to allow trace_event copy * Update V8 DEP trace_event as per deps/v8/DEPS [2] [1] https://chromium.googlesource.com/v8/v8.git/+/dc81244 [2] https://chromium.googlesource.com/chromium/src/base/trace_event/common/+/c8c8665 PR-URL: https://github.com/nodejs/node/pull/7016 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/v8/src/debug/debug.h')
-rw-r--r--deps/v8/src/debug/debug.h37
1 files changed, 23 insertions, 14 deletions
diff --git a/deps/v8/src/debug/debug.h b/deps/v8/src/debug/debug.h
index 81db9e54af..501de63181 100644
--- a/deps/v8/src/debug/debug.h
+++ b/deps/v8/src/debug/debug.h
@@ -70,10 +70,6 @@ class BreakLocation {
static BreakLocation FromFrame(Handle<DebugInfo> debug_info,
JavaScriptFrame* frame);
- static void FromCodeOffsetSameStatement(Handle<DebugInfo> debug_info,
- int offset,
- List<BreakLocation>* result_out);
-
static void AllForStatementPosition(Handle<DebugInfo> debug_info,
int statement_position,
List<BreakLocation>* result_out);
@@ -85,6 +81,9 @@ class BreakLocation {
inline bool IsReturn() const { return type_ == DEBUG_BREAK_SLOT_AT_RETURN; }
inline bool IsCall() const { return type_ == DEBUG_BREAK_SLOT_AT_CALL; }
+ inline bool IsTailCall() const {
+ return type_ == DEBUG_BREAK_SLOT_AT_TAIL_CALL;
+ }
inline bool IsDebugBreakSlot() const { return type_ >= DEBUG_BREAK_SLOT; }
inline bool IsDebuggerStatement() const {
return type_ == DEBUGGER_STATEMENT;
@@ -117,7 +116,8 @@ class BreakLocation {
DEBUGGER_STATEMENT,
DEBUG_BREAK_SLOT,
DEBUG_BREAK_SLOT_AT_CALL,
- DEBUG_BREAK_SLOT_AT_RETURN
+ DEBUG_BREAK_SLOT_AT_RETURN,
+ DEBUG_BREAK_SLOT_AT_TAIL_CALL,
};
BreakLocation(Handle<DebugInfo> debug_info, DebugBreakType type,
@@ -142,6 +142,9 @@ class BreakLocation {
protected:
explicit Iterator(Handle<DebugInfo> debug_info);
+ int ReturnPosition();
+
+ Isolate* isolate() { return debug_info_->GetIsolate(); }
Handle<DebugInfo> debug_info_;
int break_index_;
@@ -169,7 +172,7 @@ class BreakLocation {
}
private:
- static int GetModeMask(BreakLocatorType type);
+ int GetModeMask(BreakLocatorType type);
RelocInfo::Mode rmode() { return reloc_iterator_.rinfo()->rmode(); }
RelocInfo* rinfo() { return reloc_iterator_.rinfo(); }
@@ -414,7 +417,6 @@ class Debug {
void OnCompileError(Handle<Script> script);
void OnBeforeCompile(Handle<Script> script);
void OnAfterCompile(Handle<Script> script);
- void OnPromiseEvent(Handle<JSObject> data);
void OnAsyncTaskEvent(Handle<JSObject> data);
// API facing.
@@ -430,8 +432,8 @@ class Debug {
// Internal logic
bool Load();
- void Break(Arguments args, JavaScriptFrame*);
- Object* SetAfterBreakTarget(JavaScriptFrame* frame);
+ void Break(JavaScriptFrame* frame);
+ void SetAfterBreakTarget(JavaScriptFrame* frame);
// Scripts handling.
Handle<FixedArray> GetLoadedScripts();
@@ -459,9 +461,6 @@ class Debug {
void ClearStepOut();
void EnableStepIn();
- void GetStepinPositions(JavaScriptFrame* frame, StackFrame::Id frame_id,
- List<int>* results_out);
-
bool PrepareFunctionForBreakPoints(Handle<SharedFunctionInfo> shared);
// Returns whether the operation succeeded. Compilation can only be triggered
@@ -530,6 +529,11 @@ class Debug {
StackFrame::Id break_frame_id() { return thread_local_.break_frame_id_; }
int break_id() { return thread_local_.break_id_; }
+ Handle<Object> return_value() { return thread_local_.return_value_; }
+ void set_return_value(Handle<Object> value) {
+ thread_local_.return_value_ = value;
+ }
+
// Support for embedding into generated code.
Address is_active_address() {
return reinterpret_cast<Address>(&is_active_);
@@ -575,8 +579,6 @@ class Debug {
Handle<Object> promise);
MUST_USE_RESULT MaybeHandle<Object> MakeCompileEvent(
Handle<Script> script, v8::DebugEvent type);
- MUST_USE_RESULT MaybeHandle<Object> MakePromiseEvent(
- Handle<JSObject> promise_event);
MUST_USE_RESULT MaybeHandle<Object> MakeAsyncTaskEvent(
Handle<JSObject> task_event);
@@ -617,6 +619,8 @@ class Debug {
void ThreadInit();
+ void PrintBreakLocation();
+
// Global handles.
Handle<Context> debug_context_;
Handle<Object> event_listener_;
@@ -682,6 +686,10 @@ class Debug {
// Stores the way how LiveEdit has patched the stack. It is used when
// debugger returns control back to user script.
LiveEdit::FrameDropMode frame_drop_mode_;
+
+ // Value of accumulator in interpreter frames. In non-interpreter frames
+ // this value will be the hole.
+ Handle<Object> return_value_;
};
// Storage location for registers when handling debug break calls
@@ -723,6 +731,7 @@ class DebugScope BASE_EMBEDDED {
DebugScope* prev_; // Previous scope if entered recursively.
StackFrame::Id break_frame_id_; // Previous break frame id.
int break_id_; // Previous break id.
+ Handle<Object> return_value_; // Previous result.
bool failed_; // Did the debug context fail to load?
SaveContext save_; // Saves previous context.
PostponeInterruptsScope no_termination_exceptons_;