Chromium Code Reviews| Index: src/debug-debugger.js |
| diff --git a/src/debug-debugger.js b/src/debug-debugger.js |
| index 91838e8ad0a81d71fdcd7e874379e11f3d4472fb..7c9860b5f91e0355fdc9646e6bb50832219b753c 100644 |
| --- a/src/debug-debugger.js |
| +++ b/src/debug-debugger.js |
| @@ -1449,6 +1449,8 @@ DebugCommandProcessor.prototype.processDebugJSONRequest = function( |
| this.profileRequest_(request, response); |
| } else if (request.command == 'changelive') { |
| this.changeLiveRequest_(request, response); |
| + } else if (request.command == 'restartframe') { |
| + this.restartFrameRequest_(request, response); |
| } else if (request.command == 'flags') { |
| this.debuggerFlagsRequest_(request, response); |
| } else if (request.command == 'v8flags') { |
| @@ -2358,9 +2360,6 @@ DebugCommandProcessor.prototype.profileRequest_ = function(request, response) { |
| DebugCommandProcessor.prototype.changeLiveRequest_ = function( |
| request, response) { |
| - if (!Debug.LiveEdit) { |
| - return response.failed('LiveEdit feature is not supported'); |
| - } |
| if (!request.arguments) { |
| return response.failed('Missing arguments'); |
| } |
| @@ -2398,6 +2397,37 @@ DebugCommandProcessor.prototype.changeLiveRequest_ = function( |
| }; |
| +DebugCommandProcessor.prototype.restartFrameRequest_ = function( |
| + request, response) { |
| + if (!request.arguments) { |
| + return response.failed('Missing arguments'); |
| + } |
| + var frame = request.arguments.frame; |
| + |
| + // No frames no evaluate in frame. |
|
Yang
2012/06/14 09:09:28
"to evaluate"?
Peter Rybin
2012/06/14 22:08:03
Done.
|
| + if (this.exec_state_.frameCount() == 0) { |
| + return response.failed('No frames'); |
| + } |
| + |
| + var frame_mirror; |
| + // Check whether a frame was specified. |
| + if (!IS_UNDEFINED(frame)) { |
| + var frame_number = %ToNumber(frame); |
| + if (frame_number < 0 || frame_number >= this.exec_state_.frameCount()) { |
| + return response.failed('Invalid frame "' + frame + '"'); |
| + } |
| + // Restart specified frame. |
| + frame_mirror = this.exec_state_.frame(frame_number); |
| + } else { |
| + // Restart selected frame. |
| + frame_mirror = this.exec_state_.frame(); |
| + } |
| + |
| + var result_description = Debug.LiveEdit.RestartFrame(frame_mirror); |
| + response.body = {result: result_description}; |
| +}; |
| + |
| + |
| DebugCommandProcessor.prototype.debuggerFlagsRequest_ = function(request, |
| response) { |
| // Check for legal request. |