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

Unified Diff: src/d8.js

Issue 27330: Unify the handling of the event and response JSON in developer shell debugger... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 10 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/d8.cc ('k') | src/d8-debug.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/d8.js
===================================================================
--- src/d8.js (revision 1398)
+++ src/d8.js (working copy)
@@ -102,85 +102,98 @@
var trace_compile = false; // Tracing all compile events?
-function DebugEventToText(event) {
+// Process a debugger JSON message into a display text and a running status.
+// This function returns an object with properties "text" and "running" holding
+// this information.
+function DebugMessageDetails(message) {
// Convert the JSON string to an object.
- var response = new ProtocolPackage(event);
+ var response = new ProtocolPackage(message);
- // Build the text.
+ if (response.type() == 'event') {
+ return DebugEventDetails(response);
+ } else {
+ return DebugResponseDetails(response);
+ }
+}
+
+function DebugEventDetails(response) {
+ details = {text:'', running:false}
+
+ // Get the running state.
+ details.running = response.running();
+
var body = response.body();
- var details = '';
+ var result = '';
switch (response.event()) {
case 'break':
if (body.breakpoints) {
- details += 'breakpoint';
+ result += 'breakpoint';
if (body.breakpoints.length > 1) {
- details += 's';
+ result += 's';
}
- details += ' #';
+ result += ' #';
for (var i = 0; i < body.breakpoints.length; i++) {
if (i > 0) {
- details += ', #';
+ result += ', #';
}
- details += body.breakpoints[i];
+ result += body.breakpoints[i];
}
} else {
- details += 'break';
+ result += 'break';
}
- details += ' in ';
- details += body.invocationText;
- details += ', ';
- details += SourceInfo(body);
- details += '\n';
- details += SourceUnderline(body.sourceLineText, body.sourceColumn);
+ result += ' in ';
+ result += body.invocationText;
+ result += ', ';
+ result += SourceInfo(body);
+ result += '\n';
+ result += SourceUnderline(body.sourceLineText, body.sourceColumn);
Debug.State.currentSourceLine = body.sourceLine;
Debug.State.currentFrame = 0;
- return details;
+ details.text = result;
+ break;
case 'exception':
if (body.uncaught) {
- details += 'Uncaught: ';
+ result += 'Uncaught: ';
} else {
- details += 'Exception: ';
+ result += 'Exception: ';
}
- details += '"';
- details += body.exception.text;
- details += '"';
+ result += '"';
+ result += body.exception.text;
+ result += '"';
if (body.sourceLine >= 0) {
- details += ', ';
- details += SourceInfo(body);
- details += '\n';
- details += SourceUnderline(body.sourceLineText, body.sourceColumn);
+ result += ', ';
+ result += SourceInfo(body);
+ result += '\n';
+ result += SourceUnderline(body.sourceLineText, body.sourceColumn);
Debug.State.currentSourceLine = body.sourceLine;
Debug.State.currentFrame = 0;
} else {
- details += ' (empty stack)';
+ result += ' (empty stack)';
Debug.State.currentSourceLine = -1;
Debug.State.currentFrame = kNoFrame;
}
- return details;
+ details.text = result;
+ break;
- case 'exception':
- if (trace_compile) {
- details = 'Source ' + body.script.name + ' compiled:\n'
- } else {
- return '';
- }
-
case 'afterCompile':
if (trace_compile) {
- details = 'Source ' + event.script().name() + ' compiled:\n'
+ result = 'Source ' + body.script.name + ' compiled:\n'
var source = body.script.source;
if (!(source[source.length - 1] == '\n')) {
- details += source;
+ result += source;
} else {
- details += source.substring(0, source.length - 1);
+ result += source.substring(0, source.length - 1);
}
- return details;
- } else {
- return '';
}
+ details.text = result;
+ break;
+
+ default:
+ details.text = 'Unknown debug event ' + response.event();
}
- return 'Unknown debug event ' + response.event();
+
+ return details;
};
@@ -749,13 +762,10 @@
// Convert a JSON response to text for display in a text based debugger.
-function DebugResponseDetails(json_response) {
+function DebugResponseDetails(response) {
details = {text:'', running:false}
try {
- // Convert the JSON string to an object.
- var response = new ProtocolPackage(json_response);
-
if (!response.success()) {
details.text = response.message();
return details;
« no previous file with comments | « src/d8.cc ('k') | src/d8-debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698