StackFrame::column() returning bogus value
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 Apr 2013 01:34:07 +0000 (01:34 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 Apr 2013 01:34:07 +0000 (01:34 +0000)
https://bugs.webkit.org/show_bug.cgi?id=114840

Reviewed by Gavin Barraclough.

Source/JavaScriptCore:

Don't add one part of the expression offset to the other part of the expression.
Make StackFrame::toString() include the column info.

* interpreter/Interpreter.cpp:
(JSC::StackFrame::expressionInfo):
(JSC::StackFrame::toString):

LayoutTests:

Update test result

* fast/js/stack-trace-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@148720 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/js/stack-trace-expected.txt
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/interpreter/Interpreter.cpp

index dfb3b25..2d98e9a 100644 (file)
@@ -1,3 +1,14 @@
+2013-04-18  Oliver Hunt  <oliver@apple.com>
+
+        StackFrame::column() returning bogus value
+        https://bugs.webkit.org/show_bug.cgi?id=114840
+
+        Reviewed by Gavin Barraclough.
+
+        Update test result
+
+        * fast/js/stack-trace-expected.txt:
+
 2013-04-18  Mark Hahnenberg  <mhahnenberg@apple.com>
 
         Crash beneath JSC::JIT::privateCompileSlowCases @ stephenrdonaldson.com
index 7bfeec3..91c0625 100644 (file)
@@ -4,427 +4,390 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
 
 
 --> Stack Trace:
-    0   normalInner at stack-trace.js:31
-    1   normalOuter at stack-trace.js:30
-    2   global code at stack-trace.js:36
+    0   normalInner at stack-trace.js:31:46
+    1   normalOuter at stack-trace.js:30:36
+    2   global code at stack-trace.js:36:17
 
 --> Stack Trace:
-    0   inner at stack-trace.js:28
+    0   inner at stack-trace.js:28:68
     1    at eval code
     2   eval at [native code]
-    3   evaler at stack-trace.js:29
-    4   global code at stack-trace.js:39
+    3   evaler at stack-trace.js:29:28
+    4   global code at stack-trace.js:39:12
 
 --> Stack Trace:
-    0   inner at stack-trace.js:28
-    1   outer at stack-trace.js:27
+    0   inner at stack-trace.js:28:68
+    1   outer at stack-trace.js:27:33
     2    at eval code
     3   eval at [native code]
-    4   evaler at stack-trace.js:29
-    5   global code at stack-trace.js:40
+    4   evaler at stack-trace.js:29:28
+    5   global code at stack-trace.js:40:12
 
 --> Stack Trace:
-    0   inner at stack-trace.js:28
-    1   global code at stack-trace.js:43
+    0   inner at stack-trace.js:28:68
+    1   global code at stack-trace.js:43:22
 
 --> Stack Trace:
-    0   inner at stack-trace.js:28
-    1   outer at stack-trace.js:27
-    2   global code at stack-trace.js:44
+    0   inner at stack-trace.js:28:68
+    1   outer at stack-trace.js:27:33
+    2   global code at stack-trace.js:44:22
 
 --> Stack Trace:
     0   appendChild at [native code]
-    1   hostThrower at stack-trace.js:25
-    2   global code at stack-trace.js:47
+    1   hostThrower at stack-trace.js:25:59
+    2   global code at stack-trace.js:47:17
 
 --> Stack Trace:
-    0   htmlInner at stack-trace.html:10
-    1   scripterInner at stack-trace.js:32
-    2   global code at stack-trace.js:49
+    0   htmlInner at stack-trace.html:10:55
+    1   scripterInner at stack-trace.js:32:36
+    2   global code at stack-trace.js:49:19
 
 --> Stack Trace:
-    0   htmlInner at stack-trace.html:10
-    1   htmlOuter at stack-trace.html:11
-    2   scripterOuter at stack-trace.js:33
-    3   global code at stack-trace.js:50
+    0   htmlInner at stack-trace.html:10:55
+    1   htmlOuter at stack-trace.html:11:32
+    2   scripterOuter at stack-trace.js:33:36
+    3   global code at stack-trace.js:50:19
 
 --> Stack Trace:
-    0   selfRecursive1 at stack-trace.js:52
-    1   selfRecursive1 at stack-trace.js:52
-    2   selfRecursive1 at stack-trace.js:52
-    3   selfRecursive1 at stack-trace.js:52
-    4   selfRecursive1 at stack-trace.js:52
-    5   selfRecursive1 at stack-trace.js:52
-    6   selfRecursive1 at stack-trace.js:52
-    7   selfRecursive1 at stack-trace.js:52
-    8   selfRecursive1 at stack-trace.js:52
-    9   selfRecursive1 at stack-trace.js:52
-    10   selfRecursive1 at stack-trace.js:52
-    11   selfRecursive1 at stack-trace.js:52
-    12   selfRecursive1 at stack-trace.js:52
-    13   selfRecursive1 at stack-trace.js:52
-    14   selfRecursive1 at stack-trace.js:52
-    15   selfRecursive1 at stack-trace.js:52
-    16   selfRecursive1 at stack-trace.js:52
-    17   selfRecursive1 at stack-trace.js:52
-    18   selfRecursive1 at stack-trace.js:52
-    19   selfRecursive1 at stack-trace.js:52
-    20   selfRecursive1 at stack-trace.js:52
-    21   selfRecursive1 at stack-trace.js:52
-    22   selfRecursive1 at stack-trace.js:52
-    23   selfRecursive1 at stack-trace.js:52
-    24   selfRecursive1 at stack-trace.js:52
-    25   selfRecursive1 at stack-trace.js:52
-    26   selfRecursive1 at stack-trace.js:52
-    27   selfRecursive1 at stack-trace.js:52
-    28   selfRecursive1 at stack-trace.js:52
-    29   selfRecursive1 at stack-trace.js:52
-    30   selfRecursive1 at stack-trace.js:52
-    31   selfRecursive1 at stack-trace.js:52
-    32   selfRecursive1 at stack-trace.js:52
-    33   selfRecursive1 at stack-trace.js:52
-    34   selfRecursive1 at stack-trace.js:52
-    35   selfRecursive1 at stack-trace.js:52
-    36   selfRecursive1 at stack-trace.js:52
-    37   selfRecursive1 at stack-trace.js:52
-    38   selfRecursive1 at stack-trace.js:52
-    39   selfRecursive1 at stack-trace.js:52
-    40   selfRecursive1 at stack-trace.js:52
-    41   selfRecursive1 at stack-trace.js:52
-    42   selfRecursive1 at stack-trace.js:52
-    43   selfRecursive1 at stack-trace.js:52
-    44   selfRecursive1 at stack-trace.js:52
-    45   selfRecursive1 at stack-trace.js:52
-    46   selfRecursive1 at stack-trace.js:52
-    47   selfRecursive1 at stack-trace.js:52
-    48   selfRecursive1 at stack-trace.js:52
-    49   selfRecursive1 at stack-trace.js:52
-    50   selfRecursive1 at stack-trace.js:52
-    51   selfRecursive1 at stack-trace.js:52
-    52   selfRecursive1 at stack-trace.js:52
-    53   selfRecursive1 at stack-trace.js:52
-    54   selfRecursive1 at stack-trace.js:52
-    55   selfRecursive1 at stack-trace.js:52
-    56   selfRecursive1 at stack-trace.js:52
-    57   selfRecursive1 at stack-trace.js:52
-    58   selfRecursive1 at stack-trace.js:52
-    59   selfRecursive1 at stack-trace.js:52
-    60   selfRecursive1 at stack-trace.js:52
-    61   selfRecursive1 at stack-trace.js:52
-    62   selfRecursive1 at stack-trace.js:52
-    63   selfRecursive1 at stack-trace.js:52
-    64   selfRecursive1 at stack-trace.js:52
-    65   selfRecursive1 at stack-trace.js:52
-    66   selfRecursive1 at stack-trace.js:52
-    67   selfRecursive1 at stack-trace.js:52
-    68   selfRecursive1 at stack-trace.js:52
-    69   selfRecursive1 at stack-trace.js:52
-    70   selfRecursive1 at stack-trace.js:52
-    71   selfRecursive1 at stack-trace.js:52
-    72   selfRecursive1 at stack-trace.js:52
-    73   selfRecursive1 at stack-trace.js:52
-    74   selfRecursive1 at stack-trace.js:52
-    75   selfRecursive1 at stack-trace.js:52
-    76   selfRecursive1 at stack-trace.js:52
-    77   selfRecursive1 at stack-trace.js:52
-    78   selfRecursive1 at stack-trace.js:52
-    79   selfRecursive1 at stack-trace.js:52
-    80   selfRecursive1 at stack-trace.js:52
-    81   selfRecursive1 at stack-trace.js:52
-    82   selfRecursive1 at stack-trace.js:52
-    83   selfRecursive1 at stack-trace.js:52
-    84   selfRecursive1 at stack-trace.js:52
-    85   selfRecursive1 at stack-trace.js:52
-    86   selfRecursive1 at stack-trace.js:52
-    87   selfRecursive1 at stack-trace.js:52
-    88   selfRecursive1 at stack-trace.js:52
-    89   selfRecursive1 at stack-trace.js:52
-    90   selfRecursive1 at stack-trace.js:52
-    91   selfRecursive1 at stack-trace.js:52
-    92   selfRecursive1 at stack-trace.js:52
-    93   selfRecursive1 at stack-trace.js:52
-    94   selfRecursive1 at stack-trace.js:52
-    95   selfRecursive1 at stack-trace.js:52
-    96   selfRecursive1 at stack-trace.js:52
-    97   selfRecursive1 at stack-trace.js:52
-    98   selfRecursive1 at stack-trace.js:52
-    99   selfRecursive1 at stack-trace.js:52
+    0   selfRecursive1 at stack-trace.js:52:42
+    1   selfRecursive1 at stack-trace.js:52:42
+    2   selfRecursive1 at stack-trace.js:52:42
+    3   selfRecursive1 at stack-trace.js:52:42
+    4   selfRecursive1 at stack-trace.js:52:42
+    5   selfRecursive1 at stack-trace.js:52:42
+    6   selfRecursive1 at stack-trace.js:52:42
+    7   selfRecursive1 at stack-trace.js:52:42
+    8   selfRecursive1 at stack-trace.js:52:42
+    9   selfRecursive1 at stack-trace.js:52:42
+    10   selfRecursive1 at stack-trace.js:52:42
+    11   selfRecursive1 at stack-trace.js:52:42
+    12   selfRecursive1 at stack-trace.js:52:42
+    13   selfRecursive1 at stack-trace.js:52:42
+    14   selfRecursive1 at stack-trace.js:52:42
+    15   selfRecursive1 at stack-trace.js:52:42
+    16   selfRecursive1 at stack-trace.js:52:42
+    17   selfRecursive1 at stack-trace.js:52:42
+    18   selfRecursive1 at stack-trace.js:52:42
+    19   selfRecursive1 at stack-trace.js:52:42
+    20   selfRecursive1 at stack-trace.js:52:42
+    21   selfRecursive1 at stack-trace.js:52:42
+    22   selfRecursive1 at stack-trace.js:52:42
+    23   selfRecursive1 at stack-trace.js:52:42
+    24   selfRecursive1 at stack-trace.js:52:42
+    25   selfRecursive1 at stack-trace.js:52:42
+    26   selfRecursive1 at stack-trace.js:52:42
+    27   selfRecursive1 at stack-trace.js:52:42
+    28   selfRecursive1 at stack-trace.js:52:42
+    29   selfRecursive1 at stack-trace.js:52:42
+    30   selfRecursive1 at stack-trace.js:52:42
+    31   selfRecursive1 at stack-trace.js:52:42
+    32   selfRecursive1 at stack-trace.js:52:42
+    33   selfRecursive1 at stack-trace.js:52:42
+    34   selfRecursive1 at stack-trace.js:52:42
+    35   selfRecursive1 at stack-trace.js:52:42
+    36   selfRecursive1 at stack-trace.js:52:42
+    37   selfRecursive1 at stack-trace.js:52:42
+    38   selfRecursive1 at stack-trace.js:52:42
+    39   selfRecursive1 at stack-trace.js:52:42
+    40   selfRecursive1 at stack-trace.js:52:42
+    41   selfRecursive1 at stack-trace.js:52:42
+    42   selfRecursive1 at stack-trace.js:52:42
+    43   selfRecursive1 at stack-trace.js:52:42
+    44   selfRecursive1 at stack-trace.js:52:42
+    45   selfRecursive1 at stack-trace.js:52:42
+    46   selfRecursive1 at stack-trace.js:52:42
+    47   selfRecursive1 at stack-trace.js:52:42
+    48   selfRecursive1 at stack-trace.js:52:42
+    49   selfRecursive1 at stack-trace.js:52:42
+    50   selfRecursive1 at stack-trace.js:52:42
+    51   selfRecursive1 at stack-trace.js:52:42
+    52   selfRecursive1 at stack-trace.js:52:42
+    53   selfRecursive1 at stack-trace.js:52:42
+    54   selfRecursive1 at stack-trace.js:52:42
+    55   selfRecursive1 at stack-trace.js:52:42
+    56   selfRecursive1 at stack-trace.js:52:42
+    57   selfRecursive1 at stack-trace.js:52:42
+    58   selfRecursive1 at stack-trace.js:52:42
+    59   selfRecursive1 at stack-trace.js:52:42
+    60   selfRecursive1 at stack-trace.js:52:42
+    61   selfRecursive1 at stack-trace.js:52:42
+    62   selfRecursive1 at stack-trace.js:52:42
+    63   selfRecursive1 at stack-trace.js:52:42
+    64   selfRecursive1 at stack-trace.js:52:42
+    65   selfRecursive1 at stack-trace.js:52:42
+    66   selfRecursive1 at stack-trace.js:52:42
+    67   selfRecursive1 at stack-trace.js:52:42
+    68   selfRecursive1 at stack-trace.js:52:42
+    69   selfRecursive1 at stack-trace.js:52:42
+    70   selfRecursive1 at stack-trace.js:52:42
+    71   selfRecursive1 at stack-trace.js:52:42
+    72   selfRecursive1 at stack-trace.js:52:42
+    73   selfRecursive1 at stack-trace.js:52:42
+    74   selfRecursive1 at stack-trace.js:52:42
+    75   selfRecursive1 at stack-trace.js:52:42
+    76   selfRecursive1 at stack-trace.js:52:42
+    77   selfRecursive1 at stack-trace.js:52:42
+    78   selfRecursive1 at stack-trace.js:52:42
+    79   selfRecursive1 at stack-trace.js:52:42
+    80   selfRecursive1 at stack-trace.js:52:42
+    81   selfRecursive1 at stack-trace.js:52:42
+    82   selfRecursive1 at stack-trace.js:52:42
+    83   selfRecursive1 at stack-trace.js:52:42
+    84   selfRecursive1 at stack-trace.js:52:42
+    85   selfRecursive1 at stack-trace.js:52:42
+    86   selfRecursive1 at stack-trace.js:52:42
+    87   selfRecursive1 at stack-trace.js:52:42
+    88   selfRecursive1 at stack-trace.js:52:42
+    89   selfRecursive1 at stack-trace.js:52:42
+    90   selfRecursive1 at stack-trace.js:52:42
+    91   selfRecursive1 at stack-trace.js:52:42
+    92   selfRecursive1 at stack-trace.js:52:42
+    93   selfRecursive1 at stack-trace.js:52:42
+    94   selfRecursive1 at stack-trace.js:52:42
+    95   selfRecursive1 at stack-trace.js:52:42
+    96   selfRecursive1 at stack-trace.js:52:42
+    97   selfRecursive1 at stack-trace.js:52:42
+    98   selfRecursive1 at stack-trace.js:52:42
+    99   selfRecursive1 at stack-trace.js:52:42
 
 --> Stack Trace:
-    0   selfRecursive2 at stack-trace.js:62
-    1   selfRecursive2 at stack-trace.js:62
-    2   selfRecursive2 at stack-trace.js:62
-    3   selfRecursive2 at stack-trace.js:62
-    4   selfRecursive2 at stack-trace.js:62
-    5   selfRecursive2 at stack-trace.js:62
-    6   selfRecursive2 at stack-trace.js:62
-    7   selfRecursive2 at stack-trace.js:62
-    8   selfRecursive2 at stack-trace.js:62
-    9   selfRecursive2 at stack-trace.js:62
-    10   selfRecursive2 at stack-trace.js:62
-    11   selfRecursive2 at stack-trace.js:62
-    12   selfRecursive2 at stack-trace.js:62
-    13   selfRecursive2 at stack-trace.js:62
-    14   selfRecursive2 at stack-trace.js:62
-    15   selfRecursive2 at stack-trace.js:62
-    16   selfRecursive2 at stack-trace.js:62
-    17   selfRecursive2 at stack-trace.js:62
-    18   selfRecursive2 at stack-trace.js:62
-    19   selfRecursive2 at stack-trace.js:62
-    20   selfRecursive2 at stack-trace.js:62
-    21   selfRecursive2 at stack-trace.js:62
-    22   selfRecursive2 at stack-trace.js:62
-    23   selfRecursive2 at stack-trace.js:62
-    24   selfRecursive2 at stack-trace.js:62
-    25   selfRecursive2 at stack-trace.js:62
-    26   selfRecursive2 at stack-trace.js:62
-    27   selfRecursive2 at stack-trace.js:62
-    28   selfRecursive2 at stack-trace.js:62
-    29   selfRecursive2 at stack-trace.js:62
-    30   selfRecursive2 at stack-trace.js:62
-    31   selfRecursive2 at stack-trace.js:62
-    32   selfRecursive2 at stack-trace.js:62
-    33   selfRecursive2 at stack-trace.js:62
-    34   selfRecursive2 at stack-trace.js:62
-    35   selfRecursive2 at stack-trace.js:62
-    36   selfRecursive2 at stack-trace.js:62
-    37   selfRecursive2 at stack-trace.js:62
-    38   selfRecursive2 at stack-trace.js:62
-    39   selfRecursive2 at stack-trace.js:62
-    40   selfRecursive2 at stack-trace.js:62
-    41   selfRecursive2 at stack-trace.js:62
-    42   selfRecursive2 at stack-trace.js:62
-    43   selfRecursive2 at stack-trace.js:62
-    44   selfRecursive2 at stack-trace.js:62
-    45   selfRecursive2 at stack-trace.js:62
-    46   selfRecursive2 at stack-trace.js:62
-    47   selfRecursive2 at stack-trace.js:62
-    48   selfRecursive2 at stack-trace.js:62
-    49   selfRecursive2 at stack-trace.js:62
-    50   selfRecursive2 at stack-trace.js:62
-    51   selfRecursive2 at stack-trace.js:62
-    52   selfRecursive2 at stack-trace.js:62
-    53   selfRecursive2 at stack-trace.js:62
-    54   selfRecursive2 at stack-trace.js:62
-    55   selfRecursive2 at stack-trace.js:62
-    56   selfRecursive2 at stack-trace.js:62
-    57   selfRecursive2 at stack-trace.js:62
-    58   selfRecursive2 at stack-trace.js:62
-    59   selfRecursive2 at stack-trace.js:62
-    60   selfRecursive2 at stack-trace.js:62
-    61   selfRecursive2 at stack-trace.js:62
-    62   selfRecursive2 at stack-trace.js:62
-    63   selfRecursive2 at stack-trace.js:62
-    64   selfRecursive2 at stack-trace.js:62
-    65   selfRecursive2 at stack-trace.js:62
-    66   selfRecursive2 at stack-trace.js:62
-    67   selfRecursive2 at stack-trace.js:62
-    68   selfRecursive2 at stack-trace.js:62
-    69   selfRecursive2 at stack-trace.js:62
-    70   selfRecursive2 at stack-trace.js:62
-    71   selfRecursive2 at stack-trace.js:62
-    72   selfRecursive2 at stack-trace.js:62
-    73   selfRecursive2 at stack-trace.js:62
-    74   selfRecursive2 at stack-trace.js:62
-    75   selfRecursive2 at stack-trace.js:62
-    76   selfRecursive2 at stack-trace.js:62
-    77   selfRecursive2 at stack-trace.js:62
-    78   selfRecursive2 at stack-trace.js:62
-    79   selfRecursive2 at stack-trace.js:62
-    80   selfRecursive2 at stack-trace.js:62
-    81   selfRecursive2 at stack-trace.js:62
-    82   selfRecursive2 at stack-trace.js:62
-    83   selfRecursive2 at stack-trace.js:62
-    84   selfRecursive2 at stack-trace.js:62
-    85   selfRecursive2 at stack-trace.js:62
-    86   selfRecursive2 at stack-trace.js:62
-    87   selfRecursive2 at stack-trace.js:62
-    88   selfRecursive2 at stack-trace.js:62
-    89   selfRecursive2 at stack-trace.js:62
-    90   selfRecursive2 at stack-trace.js:62
-    91   selfRecursive2 at stack-trace.js:62
-    92   selfRecursive2 at stack-trace.js:62
-    93   selfRecursive2 at stack-trace.js:62
-    94   selfRecursive2 at stack-trace.js:62
-    95   selfRecursive2 at stack-trace.js:62
-    96   selfRecursive2 at stack-trace.js:62
-    97   selfRecursive2 at stack-trace.js:62
-    98   selfRecursive2 at stack-trace.js:62
-    99   selfRecursive2 at stack-trace.js:62
+    0   selfRecursive2 at stack-trace.js:62:26
+    1   selfRecursive2 at stack-trace.js:62:26
+    2   selfRecursive2 at stack-trace.js:62:26
+    3   selfRecursive2 at stack-trace.js:62:26
+    4   selfRecursive2 at stack-trace.js:62:26
+    5   selfRecursive2 at stack-trace.js:62:26
+    6   selfRecursive2 at stack-trace.js:62:26
+    7   selfRecursive2 at stack-trace.js:62:26
+    8   selfRecursive2 at stack-trace.js:62:26
+    9   selfRecursive2 at stack-trace.js:62:26
+    10   selfRecursive2 at stack-trace.js:62:26
+    11   selfRecursive2 at stack-trace.js:62:26
+    12   selfRecursive2 at stack-trace.js:62:26
+    13   selfRecursive2 at stack-trace.js:62:26
+    14   selfRecursive2 at stack-trace.js:62:26
+    15   selfRecursive2 at stack-trace.js:62:26
+    16   selfRecursive2 at stack-trace.js:62:26
+    17   selfRecursive2 at stack-trace.js:62:26
+    18   selfRecursive2 at stack-trace.js:62:26
+    19   selfRecursive2 at stack-trace.js:62:26
+    20   selfRecursive2 at stack-trace.js:62:26
+    21   selfRecursive2 at stack-trace.js:62:26
+    22   selfRecursive2 at stack-trace.js:62:26
+    23   selfRecursive2 at stack-trace.js:62:26
+    24   selfRecursive2 at stack-trace.js:62:26
+    25   selfRecursive2 at stack-trace.js:62:26
+    26   selfRecursive2 at stack-trace.js:62:26
+    27   selfRecursive2 at stack-trace.js:62:26
+    28   selfRecursive2 at stack-trace.js:62:26
+    29   selfRecursive2 at stack-trace.js:62:26
+    30   selfRecursive2 at stack-trace.js:62:26
+    31   selfRecursive2 at stack-trace.js:62:26
+    32   selfRecursive2 at stack-trace.js:62:26
+    33   selfRecursive2 at stack-trace.js:62:26
+    34   selfRecursive2 at stack-trace.js:62:26
+    35   selfRecursive2 at stack-trace.js:62:26
+    36   selfRecursive2 at stack-trace.js:62:26
+    37   selfRecursive2 at stack-trace.js:62:26
+    38   selfRecursive2 at stack-trace.js:62:26
+    39   selfRecursive2 at stack-trace.js:62:26
+    40   selfRecursive2 at stack-trace.js:62:26
+    41   selfRecursive2 at stack-trace.js:62:26
+    42   selfRecursive2 at stack-trace.js:62:26
+    43   selfRecursive2 at stack-trace.js:62:26
+    44   selfRecursive2 at stack-trace.js:62:26
+    45   selfRecursive2 at stack-trace.js:62:26
+    46   selfRecursive2 at stack-trace.js:62:26
+    47   selfRecursive2 at stack-trace.js:62:26
+    48   selfRecursive2 at stack-trace.js:62:26
+    49   selfRecursive2 at stack-trace.js:62:26
+    50   selfRecursive2 at stack-trace.js:62:26
+    51   selfRecursive2 at stack-trace.js:62:26
+    52   selfRecursive2 at stack-trace.js:62:26
+    53   selfRecursive2 at stack-trace.js:62:26
+    54   selfRecursive2 at stack-trace.js:62:26
+    55   selfRecursive2 at stack-trace.js:62:26
+    56   selfRecursive2 at stack-trace.js:62:26
+    57   selfRecursive2 at stack-trace.js:62:26
+    58   selfRecursive2 at stack-trace.js:62:26
+    59   selfRecursive2 at stack-trace.js:62:26
+    60   selfRecursive2 at stack-trace.js:62:26
+    61   selfRecursive2 at stack-trace.js:62:26
+    62   selfRecursive2 at stack-trace.js:62:26
+    63   selfRecursive2 at stack-trace.js:62:26
+    64   selfRecursive2 at stack-trace.js:62:26
+    65   selfRecursive2 at stack-trace.js:62:26
+    66   selfRecursive2 at stack-trace.js:62:26
+    67   selfRecursive2 at stack-trace.js:62:26
+    68   selfRecursive2 at stack-trace.js:62:26
+    69   selfRecursive2 at stack-trace.js:62:26
+    70   selfRecursive2 at stack-trace.js:62:26
+    71   selfRecursive2 at stack-trace.js:62:26
+    72   selfRecursive2 at stack-trace.js:62:26
+    73   selfRecursive2 at stack-trace.js:62:26
+    74   selfRecursive2 at stack-trace.js:62:26
+    75   selfRecursive2 at stack-trace.js:62:26
+    76   selfRecursive2 at stack-trace.js:62:26
+    77   selfRecursive2 at stack-trace.js:62:26
+    78   selfRecursive2 at stack-trace.js:62:26
+    79   selfRecursive2 at stack-trace.js:62:26
+    80   selfRecursive2 at stack-trace.js:62:26
+    81   selfRecursive2 at stack-trace.js:62:26
+    82   selfRecursive2 at stack-trace.js:62:26
+    83   selfRecursive2 at stack-trace.js:62:26
+    84   selfRecursive2 at stack-trace.js:62:26
+    85   selfRecursive2 at stack-trace.js:62:26
+    86   selfRecursive2 at stack-trace.js:62:26
+    87   selfRecursive2 at stack-trace.js:62:26
+    88   selfRecursive2 at stack-trace.js:62:26
+    89   selfRecursive2 at stack-trace.js:62:26
+    90   selfRecursive2 at stack-trace.js:62:26
+    91   selfRecursive2 at stack-trace.js:62:26
+    92   selfRecursive2 at stack-trace.js:62:26
+    93   selfRecursive2 at stack-trace.js:62:26
+    94   selfRecursive2 at stack-trace.js:62:26
+    95   selfRecursive2 at stack-trace.js:62:26
+    96   selfRecursive2 at stack-trace.js:62:26
+    97   selfRecursive2 at stack-trace.js:62:26
+    98   selfRecursive2 at stack-trace.js:62:26
+    99   selfRecursive2 at stack-trace.js:62:26
 
 --> Stack Trace:
     0   eval at [native code]
-    1   selfRecursive3 at stack-trace.js:69
+    1   selfRecursive3 at stack-trace.js:69:8
     2    at eval code
     3   eval at [native code]
-    4   selfRecursive3 at stack-trace.js:69
+    4   selfRecursive3 at stack-trace.js:69:8
     5    at eval code
     6   eval at [native code]
-    7   selfRecursive3 at stack-trace.js:69
+    7   selfRecursive3 at stack-trace.js:69:8
     8    at eval code
     9   eval at [native code]
-    10   selfRecursive3 at stack-trace.js:69
+    10   selfRecursive3 at stack-trace.js:69:8
     11    at eval code
     12   eval at [native code]
-    13   selfRecursive3 at stack-trace.js:69
+    13   selfRecursive3 at stack-trace.js:69:8
     14    at eval code
     15   eval at [native code]
-    16   selfRecursive3 at stack-trace.js:69
+    16   selfRecursive3 at stack-trace.js:69:8
     17    at eval code
     18   eval at [native code]
-    19   selfRecursive3 at stack-trace.js:69
+    19   selfRecursive3 at stack-trace.js:69:8
     20    at eval code
     21   eval at [native code]
-    22   selfRecursive3 at stack-trace.js:69
+    22   selfRecursive3 at stack-trace.js:69:8
     23    at eval code
     24   eval at [native code]
-    25   selfRecursive3 at stack-trace.js:69
+    25   selfRecursive3 at stack-trace.js:69:8
     26    at eval code
     27   eval at [native code]
-    28   selfRecursive3 at stack-trace.js:69
+    28   selfRecursive3 at stack-trace.js:69:8
     29    at eval code
     30   eval at [native code]
-    31   selfRecursive3 at stack-trace.js:69
+    31   selfRecursive3 at stack-trace.js:69:8
     32    at eval code
     33   eval at [native code]
-    34   selfRecursive3 at stack-trace.js:69
+    34   selfRecursive3 at stack-trace.js:69:8
     35    at eval code
     36   eval at [native code]
-    37   selfRecursive3 at stack-trace.js:69
+    37   selfRecursive3 at stack-trace.js:69:8
     38    at eval code
     39   eval at [native code]
-    40   selfRecursive3 at stack-trace.js:69
+    40   selfRecursive3 at stack-trace.js:69:8
     41    at eval code
     42   eval at [native code]
-    43   selfRecursive3 at stack-trace.js:69
+    43   selfRecursive3 at stack-trace.js:69:8
     44    at eval code
     45   eval at [native code]
-    46   selfRecursive3 at stack-trace.js:69
+    46   selfRecursive3 at stack-trace.js:69:8
     47    at eval code
     48   eval at [native code]
-    49   selfRecursive3 at stack-trace.js:69
+    49   selfRecursive3 at stack-trace.js:69:8
     50    at eval code
     51   eval at [native code]
-    52   selfRecursive3 at stack-trace.js:69
+    52   selfRecursive3 at stack-trace.js:69:8
     53    at eval code
     54   eval at [native code]
-    55   selfRecursive3 at stack-trace.js:69
+    55   selfRecursive3 at stack-trace.js:69:8
     56    at eval code
     57   eval at [native code]
-    58   selfRecursive3 at stack-trace.js:69
+    58   selfRecursive3 at stack-trace.js:69:8
     59    at eval code
     60   eval at [native code]
-    61   selfRecursive3 at stack-trace.js:69
-    62    at eval code
-    63   eval at [native code]
-    64   selfRecursive3 at stack-trace.js:69
-    65    at eval code
-    66   eval at [native code]
-    67   selfRecursive3 at stack-trace.js:69
-    68    at eval code
-    69   eval at [native code]
-    70   selfRecursive3 at stack-trace.js:69
-    71    at eval code
-    72   eval at [native code]
-    73   selfRecursive3 at stack-trace.js:69
-    74    at eval code
-    75   eval at [native code]
-    76   selfRecursive3 at stack-trace.js:69
-    77    at eval code
-    78   eval at [native code]
-    79   selfRecursive3 at stack-trace.js:69
-    80    at eval code
-    81   eval at [native code]
-    82   selfRecursive3 at stack-trace.js:69
-    83    at eval code
-    84   eval at [native code]
-    85   selfRecursive3 at stack-trace.js:69
-    86    at eval code
-    87   eval at [native code]
-    88   selfRecursive3 at stack-trace.js:69
-    89    at eval code
-    90   eval at [native code]
-    91   selfRecursive3 at stack-trace.js:69
-    92    at eval code
-    93   eval at [native code]
-    94   selfRecursive3 at stack-trace.js:69
-    95    at eval code
-    96   eval at [native code]
-    97   selfRecursive3 at stack-trace.js:69
-    98    at eval code
-    99   eval at [native code]
+    61   selfRecursive3 at stack-trace.js:69:8
+    62   global code at stack-trace.js:72:20
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77
-    1   valueOf at stack-trace.js:84
-    2   getter1 at stack-trace.js:87
-    3   nonInlineable at stack-trace.js:113
-    4   inlineable at stack-trace.js:121
-    5   yetAnotherInlinedCall at stack-trace.js:126
-    6   makeInlinableCall at stack-trace.js:131
-    7   g at stack-trace.js:140
+    0   throwError at stack-trace.js:77:12
+    1   valueOf at stack-trace.js:84:26
+    2   getter1 at stack-trace.js:87:18
+    3   nonInlineable at stack-trace.js:113:16
+    4   inlineable at stack-trace.js:121:26
+    5   yetAnotherInlinedCall at stack-trace.js:126:16
+    6   makeInlinableCall at stack-trace.js:131:33
+    7   g at stack-trace.js:140:33
     8   map at [native code]
-    9   global code at stack-trace.js:143
+    9   global code at stack-trace.js:143:15
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77
-    1   getter2 at stack-trace.js:93
-    2   nonInlineable at stack-trace.js:115
-    3   inlineable at stack-trace.js:121
-    4   yetAnotherInlinedCall at stack-trace.js:126
-    5   makeInlinableCall at stack-trace.js:131
-    6   g at stack-trace.js:140
+    0   throwError at stack-trace.js:77:12
+    1   getter2 at stack-trace.js:93:31
+    2   nonInlineable at stack-trace.js:115:16
+    3   inlineable at stack-trace.js:121:26
+    4   yetAnotherInlinedCall at stack-trace.js:126:16
+    5   makeInlinableCall at stack-trace.js:131:33
+    6   g at stack-trace.js:140:33
     7   map at [native code]
-    8   global code at stack-trace.js:143
+    8   global code at stack-trace.js:143:15
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77
-    1   getter3 at stack-trace.js:105
-    2   nonInlineable at stack-trace.js:117
-    3   inlineable at stack-trace.js:121
-    4   yetAnotherInlinedCall at stack-trace.js:126
-    5   makeInlinableCall at stack-trace.js:131
-    6   g at stack-trace.js:140
+    0   throwError at stack-trace.js:77:12
+    1   getter3 at stack-trace.js:105:21
+    2   nonInlineable at stack-trace.js:117:16
+    3   inlineable at stack-trace.js:121:26
+    4   yetAnotherInlinedCall at stack-trace.js:126:16
+    5   makeInlinableCall at stack-trace.js:131:33
+    6   g at stack-trace.js:140:33
     7   map at [native code]
-    8   global code at stack-trace.js:143
+    8   global code at stack-trace.js:143:15
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77
-    1   valueOf at stack-trace.js:101
-    2   getter3 at stack-trace.js:107
-    3   nonInlineable at stack-trace.js:117
-    4   inlineable at stack-trace.js:121
-    5   yetAnotherInlinedCall at stack-trace.js:126
-    6   makeInlinableCall at stack-trace.js:131
-    7   g at stack-trace.js:140
+    0   throwError at stack-trace.js:77:12
+    1   valueOf at stack-trace.js:101:26
+    2   getter3 at stack-trace.js:107:21
+    3   nonInlineable at stack-trace.js:117:16
+    4   inlineable at stack-trace.js:121:26
+    5   yetAnotherInlinedCall at stack-trace.js:126:16
+    6   makeInlinableCall at stack-trace.js:131:33
+    7   g at stack-trace.js:140:33
     8   map at [native code]
-    9   global code at stack-trace.js:143
+    9   global code at stack-trace.js:143:15
 
 --> Stack Trace:
-    0   h at stack-trace.js:151
+    0   h at stack-trace.js:151:16
     1   map at [native code]
-    2   mapTest at stack-trace.js:158
-    3   mapTestDriver at stack-trace.js:164
-    4   global code at stack-trace.js:169
+    2   mapTest at stack-trace.js:158:9
+    3   mapTestDriver at stack-trace.js:164:15
+    4   global code at stack-trace.js:169:17
 
 --> Stack Trace:
     0   map at [native code]
-    1   h at stack-trace.js:153
+    1   h at stack-trace.js:153:20
     2   map at [native code]
-    3   mapTest at stack-trace.js:158
-    4   mapTestDriver at stack-trace.js:164
-    5   global code at stack-trace.js:175
+    3   mapTest at stack-trace.js:158:9
+    4   mapTestDriver at stack-trace.js:164:15
+    5   global code at stack-trace.js:175:17
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77
-    1   dfgFunction at stack-trace.js:184
+    0   throwError at stack-trace.js:77:12
+    1   dfgFunction at stack-trace.js:184:18
     2   map at [native code]
-    3   global code at stack-trace.js:193
+    3   global code at stack-trace.js:193:17
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77
-    1   dfgFunction at stack-trace.js:184
-    2   f at stack-trace.js:202
-    3   global code at stack-trace.js:208
+    0   throwError at stack-trace.js:77:12
+    1   dfgFunction at stack-trace.js:184:18
+    2   f at stack-trace.js:202:9
+    3   global code at stack-trace.js:208:5
 
 
index 860a3b0..c89db68 100644 (file)
@@ -1,3 +1,17 @@
+2013-04-18  Oliver Hunt  <oliver@apple.com>
+
+        StackFrame::column() returning bogus value
+        https://bugs.webkit.org/show_bug.cgi?id=114840
+
+        Reviewed by Gavin Barraclough.
+
+        Don't add one part of the expression offset to the other part of the expression.
+        Make StackFrame::toString() include the column info.
+
+        * interpreter/Interpreter.cpp:
+        (JSC::StackFrame::expressionInfo):
+        (JSC::StackFrame::toString):
+
 2013-04-18  Mark Hahnenberg  <mhahnenberg@apple.com>
 
         Crash beneath JSC::JIT::privateCompileSlowCases @ stephenrdonaldson.com
index 6425bf3..df38973 100644 (file)
@@ -698,7 +698,7 @@ unsigned StackFrame::column()
 void StackFrame::expressionInfo(int& divot, int& startOffset, int& endOffset)
 {
     codeBlock->expressionRangeForBytecodeOffset(bytecodeOffset, divot, startOffset, endOffset);
-    divot += startOffset;
+    divot += characterOffset;
 }
 
 String StackFrame::toString(CallFrame* callFrame)
@@ -714,6 +714,8 @@ String StackFrame::toString(CallFrame* callFrame)
         if (codeType != StackFrameNativeCode) {
             traceBuild.append(':');
             traceBuild.appendNumber(line());
+            traceBuild.append(':');
+            traceBuild.appendNumber(column());
         }
     }
     return traceBuild.toString().impl();