Index: src/debug-debugger.js |
diff --git a/src/debug-debugger.js b/src/debug-debugger.js |
index 0ce88328ba3b4eb7d7dc5d09da677727a06ba789..ebd7dbd4d6cf568a6d0da9ae496afac4fe030535 100644 |
--- a/src/debug-debugger.js |
+++ b/src/debug-debugger.js |
@@ -1388,63 +1388,10 @@ DebugCommandProcessor.prototype.processDebugJSONRequest = function( |
} |
} |
- if (request.command == 'continue') { |
- this.continueRequest_(request, response); |
- } else if (request.command == 'break') { |
- this.breakRequest_(request, response); |
- } else if (request.command == 'setbreakpoint') { |
- this.setBreakPointRequest_(request, response); |
- } else if (request.command == 'changebreakpoint') { |
- this.changeBreakPointRequest_(request, response); |
- } else if (request.command == 'clearbreakpoint') { |
- this.clearBreakPointRequest_(request, response); |
- } else if (request.command == 'clearbreakpointgroup') { |
- this.clearBreakPointGroupRequest_(request, response); |
- } else if (request.command == 'disconnect') { |
- this.disconnectRequest_(request, response); |
- } else if (request.command == 'setexceptionbreak') { |
- this.setExceptionBreakRequest_(request, response); |
- } else if (request.command == 'listbreakpoints') { |
- this.listBreakpointsRequest_(request, response); |
- } else if (request.command == 'backtrace') { |
- this.backtraceRequest_(request, response); |
- } else if (request.command == 'frame') { |
- this.frameRequest_(request, response); |
- } else if (request.command == 'scopes') { |
- this.scopesRequest_(request, response); |
- } else if (request.command == 'scope') { |
- this.scopeRequest_(request, response); |
- } else if (request.command == 'setVariableValue') { |
- this.setVariableValueRequest_(request, response); |
- } else if (request.command == 'evaluate') { |
- this.evaluateRequest_(request, response); |
- } else if (request.command == 'lookup') { |
- this.lookupRequest_(request, response); |
- } else if (request.command == 'references') { |
- this.referencesRequest_(request, response); |
- } else if (request.command == 'source') { |
- this.sourceRequest_(request, response); |
- } else if (request.command == 'scripts') { |
- this.scriptsRequest_(request, response); |
- } else if (request.command == 'threads') { |
- this.threadsRequest_(request, response); |
- } else if (request.command == 'suspend') { |
- this.suspendRequest_(request, response); |
- } else if (request.command == 'version') { |
- this.versionRequest_(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') { |
- this.v8FlagsRequest_(request, response); |
- |
- // GC tools: |
- } else if (request.command == 'gc') { |
- this.gcRequest_(request, response); |
- |
+ var key = request.command.toLowerCase(); |
+ var handler = DebugCommandProcessor.prototype.dispatch_[key]; |
+ if (IS_FUNCTION(handler)) { |
+ %_CallFunction(this, request, response, handler); |
} else { |
throw new Error('Unknown command "' + request.command + '" in request'); |
} |
@@ -2492,6 +2439,40 @@ DebugCommandProcessor.prototype.gcRequest_ = function(request, response) { |
}; |
+DebugCommandProcessor.prototype.dispatch_ = (function() { |
+ var proto = DebugCommandProcessor.prototype; |
+ return { |
+ "continue": proto.continueRequest_, |
+ "break" : proto.breakRequest_, |
+ "setbreakpoint" : proto.setBreakPointRequest_, |
+ "changebreakpoint": proto.changeBreakPointRequest_, |
+ "clearbreakpoint": proto.clearBreakPointRequest_, |
+ "clearbreakpointgroup": proto.clearBreakPointGroupRequest_, |
+ "disconnect": proto.disconnectRequest_, |
+ "setexceptionbreak": proto.setExceptionBreakRequest_, |
+ "listbreakpoints": proto.listBreakpointsRequest_, |
+ "backtrace": proto.backtraceRequest_, |
+ "frame": proto.frameRequest_, |
+ "scopes": proto.scopesRequest_, |
+ "scope": proto.scopeRequest_, |
+ "setvariablevalue": proto.setVariableValueRequest_, |
+ "evaluate": proto.evaluateRequest_, |
+ "lookup": proto.lookupRequest_, |
+ "references": proto.referencesRequest_, |
+ "source": proto.sourceRequest_, |
+ "scripts": proto.scriptsRequest_, |
+ "threads": proto.threadsRequest_, |
+ "suspend": proto.suspendRequest_, |
+ "version": proto.versionRequest_, |
+ "changelive": proto.changeLiveRequest_, |
+ "restartframe": proto.restartFrameRequest_, |
+ "flags": proto.debuggerFlagsRequest_, |
+ "v8flag": proto.v8FlagsRequest_, |
+ "gc": proto.gcRequest_, |
+ }; |
+})(); |
+ |
+ |
// Check whether the previously processed command caused the VM to become |
// running. |
DebugCommandProcessor.prototype.isRunning = function() { |