Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(318)

Unified Diff: src/debug.cc

Issue 6756029: Clean up runtime functions. (Closed)
Patch Set: Removed the underscore Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/debug.h ('k') | src/ic.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/debug.cc
diff --git a/src/debug.cc b/src/debug.cc
index 87afe34f44b67dc9b9142482873230bd79de45cf..c0a500786253285b47b99335135bfb8137d5de87 100644
--- a/src/debug.cc
+++ b/src/debug.cc
@@ -914,24 +914,20 @@ void Debug::Iterate(ObjectVisitor* v) {
}
-// This remains a static method so that generated code can call it.
-Object* Debug::Break(RUNTIME_CALLING_CONVENTION) {
- RUNTIME_GET_ISOLATE;
-
- Debug* debug = isolate->debug();
- Heap* heap = isolate->heap();
- HandleScope scope;
+Object* Debug::Break(Arguments args) {
+ Heap* heap = isolate_->heap();
+ HandleScope scope(isolate_);
ASSERT(args.length() == 0);
- debug->thread_local_.frame_drop_mode_ = FRAMES_UNTOUCHED;
+ thread_local_.frame_drop_mode_ = FRAMES_UNTOUCHED;
// Get the top-most JavaScript frame.
JavaScriptFrameIterator it;
JavaScriptFrame* frame = it.frame();
// Just continue if breaks are disabled or debugger cannot be loaded.
- if (debug->disable_break() || !debug->Load()) {
- debug->SetAfterBreakTarget(frame);
+ if (disable_break() || !Load()) {
+ SetAfterBreakTarget(frame);
return heap->undefined_value();
}
@@ -942,7 +938,7 @@ Object* Debug::Break(RUNTIME_CALLING_CONVENTION) {
}
// Postpone interrupt during breakpoint processing.
- PostponeInterruptsScope postpone(isolate);
+ PostponeInterruptsScope postpone(isolate_);
// Get the debug info (create it if it does not exist).
Handle<SharedFunctionInfo> shared =
@@ -955,10 +951,10 @@ Object* Debug::Break(RUNTIME_CALLING_CONVENTION) {
break_location_iterator.FindBreakLocationFromAddress(frame->pc());
// Check whether step next reached a new statement.
- if (!debug->StepNextContinue(&break_location_iterator, frame)) {
+ if (!StepNextContinue(&break_location_iterator, frame)) {
// Decrease steps left if performing multiple steps.
- if (debug->thread_local_.step_count_ > 0) {
- debug->thread_local_.step_count_--;
+ if (thread_local_.step_count_ > 0) {
+ thread_local_.step_count_--;
}
}
@@ -968,56 +964,55 @@ Object* Debug::Break(RUNTIME_CALLING_CONVENTION) {
if (break_location_iterator.HasBreakPoint()) {
Handle<Object> break_point_objects =
Handle<Object>(break_location_iterator.BreakPointObjects());
- break_points_hit = debug->CheckBreakPoints(break_point_objects);
+ break_points_hit = CheckBreakPoints(break_point_objects);
}
// If step out is active skip everything until the frame where we need to step
// out to is reached, unless real breakpoint is hit.
- if (debug->StepOutActive() && frame->fp() != debug->step_out_fp() &&
+ if (StepOutActive() && frame->fp() != step_out_fp() &&
break_points_hit->IsUndefined() ) {
// Step count should always be 0 for StepOut.
- ASSERT(debug->thread_local_.step_count_ == 0);
+ ASSERT(thread_local_.step_count_ == 0);
} else if (!break_points_hit->IsUndefined() ||
- (debug->thread_local_.last_step_action_ != StepNone &&
- debug->thread_local_.step_count_ == 0)) {
+ (thread_local_.last_step_action_ != StepNone &&
+ thread_local_.step_count_ == 0)) {
// Notify debugger if a real break point is triggered or if performing
// single stepping with no more steps to perform. Otherwise do another step.
// Clear all current stepping setup.
- debug->ClearStepping();
+ ClearStepping();
// Notify the debug event listeners.
- isolate->debugger()->OnDebugBreak(break_points_hit, false);
- } else if (debug->thread_local_.last_step_action_ != StepNone) {
+ isolate_->debugger()->OnDebugBreak(break_points_hit, false);
+ } else if (thread_local_.last_step_action_ != StepNone) {
// Hold on to last step action as it is cleared by the call to
// ClearStepping.
- StepAction step_action = debug->thread_local_.last_step_action_;
- int step_count = debug->thread_local_.step_count_;
+ StepAction step_action = thread_local_.last_step_action_;
+ int step_count = thread_local_.step_count_;
// Clear all current stepping setup.
- debug->ClearStepping();
+ ClearStepping();
// Set up for the remaining steps.
- debug->PrepareStep(step_action, step_count);
+ PrepareStep(step_action, step_count);
}
- if (debug->thread_local_.frame_drop_mode_ == FRAMES_UNTOUCHED) {
- debug->SetAfterBreakTarget(frame);
- } else if (debug->thread_local_.frame_drop_mode_ ==
+ if (thread_local_.frame_drop_mode_ == FRAMES_UNTOUCHED) {
+ SetAfterBreakTarget(frame);
+ } else if (thread_local_.frame_drop_mode_ ==
FRAME_DROPPED_IN_IC_CALL) {
// We must have been calling IC stub. Do not go there anymore.
- Code* plain_return =
- Isolate::Current()->builtins()->builtin(
- Builtins::kPlainReturn_LiveEdit);
- debug->thread_local_.after_break_target_ = plain_return->entry();
- } else if (debug->thread_local_.frame_drop_mode_ ==
+ Code* plain_return = isolate_->builtins()->builtin(
+ Builtins::kPlainReturn_LiveEdit);
+ thread_local_.after_break_target_ = plain_return->entry();
+ } else if (thread_local_.frame_drop_mode_ ==
FRAME_DROPPED_IN_DEBUG_SLOT_CALL) {
// Debug break slot stub does not return normally, instead it manually
// cleans the stack and jumps. We should patch the jump address.
- Code* plain_return = Isolate::Current()->builtins()->builtin(
+ Code* plain_return = isolate_->builtins()->builtin(
Builtins::kFrameDropper_LiveEdit);
- debug->thread_local_.after_break_target_ = plain_return->entry();
- } else if (debug->thread_local_.frame_drop_mode_ ==
+ thread_local_.after_break_target_ = plain_return->entry();
+ } else if (thread_local_.frame_drop_mode_ ==
FRAME_DROPPED_IN_DIRECT_CALL) {
// Nothing to do, after_break_target is not used here.
} else {
@@ -1028,6 +1023,11 @@ Object* Debug::Break(RUNTIME_CALLING_CONVENTION) {
}
+RUNTIME_FUNCTION(Object*, Debug_Break) {
+ return isolate->debug()->Break(args);
+}
+
+
// Check the break point objects for whether one or more are actually
// triggered. This function returns a JSArray with the break point objects
// which is triggered.
« no previous file with comments | « src/debug.h ('k') | src/ic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698