summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authoryurys@google.com <yurys@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-13 23:09:31 +0000
committeryurys@google.com <yurys@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-13 23:09:31 +0000
commite9d2f166c90ccd612c7ba014c4066840053d5bee (patch)
treebcdfc247e6a2e96070f24f0546dd8d9d9ecd8e37 /webkit
parentbaa3280f82301f2a93712f2ed69f9d524a154053 (diff)
downloadchromium_src-e9d2f166c90ccd612c7ba014c4066840053d5bee.zip
chromium_src-e9d2f166c90ccd612c7ba014c4066840053d5bee.tar.gz
chromium_src-e9d2f166c90ccd612c7ba014c4066840053d5bee.tar.bz2
v8 uses 0-based line numbering, while in WebKit they are numbered from 1 so we need to convert between that representations.
Review URL: http://codereview.chromium.org/67104 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13627 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/glue/devtools/js/debugger_agent.js33
1 files changed, 29 insertions, 4 deletions
diff --git a/webkit/glue/devtools/js/debugger_agent.js b/webkit/glue/devtools/js/debugger_agent.js
index 84ae57e..85a61f6 100644
--- a/webkit/glue/devtools/js/debugger_agent.js
+++ b/webkit/glue/devtools/js/debugger_agent.js
@@ -82,6 +82,8 @@ devtools.DebuggerAgent.prototype.addBreakpoint = function(sourceId, line) {
return;
}
+ line = devtools.DebuggerAgent.webkitToV8LineNumber_(line);
+
var breakpointInfo = script.getBreakpointInfo(line);
if (breakpointInfo) {
return;
@@ -90,7 +92,6 @@ devtools.DebuggerAgent.prototype.addBreakpoint = function(sourceId, line) {
breakpointInfo = new devtools.BreakpointInfo(sourceId, line);
script.addBreakpointInfo(breakpointInfo);
- line += script.getLineOffset() - 1;
var cmd = new devtools.DebugCommand('setbreakpoint', {
'type': 'scriptId',
'target': sourceId,
@@ -113,6 +114,8 @@ devtools.DebuggerAgent.prototype.removeBreakpoint = function(sourceId, line) {
return;
}
+ line = devtools.DebuggerAgent.webkitToV8LineNumber_(line);
+
var breakpointInfo = script.getBreakpointInfo(line);
script.removeBreakpointInfo(breakpointInfo);
breakpointInfo.markAsRemoved();
@@ -255,10 +258,11 @@ devtools.DebuggerAgent.prototype.handleDebuggerOutput_ = function(output) {
*/
devtools.DebuggerAgent.prototype.handleBreakEvent_ = function(msg) {
var body = msg.getBody();
-
+
+ var line = devtools.DebuggerAgent.v8ToWwebkitLineNumber_(body.sourceLine);
this.currentCallFrame_ = {
'sourceID': body.script.id,
- 'line': body.sourceLine - body.script.lineOffset +1,
+ 'line': line,
'script': body.script,
'scopeChain': [],
'thisObject': {}
@@ -385,9 +389,10 @@ devtools.DebuggerAgent.formatCallFrame_ = function(stackFrame, script, msg) {
// Add variable with name 'this' to the scope.
scope['this'] = devtools.DebuggerAgent.formatObject_(thisObject, msg);
+ var line = devtools.DebuggerAgent.v8ToWwebkitLineNumber_(stackFrame.line);
return {
'sourceID': sourceId,
- 'line': stackFrame.line - script.lineOffset +1,
+ 'line': line,
'type': 'function',
'functionName': funcName, //stackFrame.text,
'caller': null,
@@ -490,6 +495,26 @@ devtools.DebuggerAgent.formatObjectReference_ = function(objectRef, msg) {
/**
+ * Converts line number from Web Inspector UI(1-based) to v8(0-based).
+ * @param {number} line Resource line number in Web Inspector UI.
+ * @return {number} The line number in v8.
+ */
+devtools.DebuggerAgent.webkitToV8LineNumber_ = function(line) {
+ return line - 1;
+};
+
+
+/**
+ * Converts line number from v8(0-based) to Web Inspector UI(1-based).
+ * @param {number} line Resource line number in v8.
+ * @return {number} The line number in Web Inspector.
+ */
+devtools.DebuggerAgent.v8ToWwebkitLineNumber_ = function(line) {
+ return line + 1;
+};
+
+
+/**
* @param {number} scriptId Id of the script.
* @param {number} lineOffset First line 0-based offset in the containing
* document.