Title: [163829] trunk/LayoutTests
Revision
163829
Author
mark....@apple.com
Date
2014-02-10 15:55:19 -0800 (Mon, 10 Feb 2014)

Log Message

REGRESSION(r163660-r163664): js/dom/stack-trace.html fails.
<https://webkit.org/b/128544>

Reviewed by Alexey Proskuryakov.

The failing test is fragile. The test intends to test a recursion pattern
i.e. the top of the stack trace should show a repeated cycle of certain
function calls. However, the test makes a faulty assumption about which
function in that recursion pattern will be the one that overflows the
stack.

The fix is to make the test check for repetition of that recursion pattern
instead of making a specific assumption as to which function within that
recursion pattern will overflow the stack.

* TestExpectations: reverted skipped test.
* js/dom/script-tests/stack-trace.js:
(stackTraceLineFor):
- refactored this code to generated the stack trace line out of printStack.
(printStack):
- updated to use stackTraceLineFor.
(dumpPattern):
- utility function to dump the recursion pattern being matched.
(matchesPatternAtLine):
(matchPattern):
(checkStackForPattern):
- utility functions for testing if the stack trace matches the expected
  recursion pattern. The pattern is an array of stack trace lines that
  we should see repeated in the stack trace starting from the top.

  The top line of the stack trace may match any line in the pattern.
  Thereafter, subsequent lines much patch lines in the pattern starting
  with the line after the first match. When we run out of pattern lines,
  we'll go back to the first pattern line and continue the matching test
  until we run out of stack trace lines to match.

  If any mismatch is found, the test fails.

* js/dom/stack-trace-expected.txt:
- updates baseline for expected results.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (163828 => 163829)


--- trunk/LayoutTests/ChangeLog	2014-02-10 23:48:24 UTC (rev 163828)
+++ trunk/LayoutTests/ChangeLog	2014-02-10 23:55:19 UTC (rev 163829)
@@ -1,3 +1,46 @@
+2014-02-10  Mark Lam  <mark....@apple.com>
+
+        REGRESSION(r163660-r163664): js/dom/stack-trace.html fails.
+        <https://webkit.org/b/128544>
+
+        Reviewed by Alexey Proskuryakov.
+
+        The failing test is fragile. The test intends to test a recursion pattern
+        i.e. the top of the stack trace should show a repeated cycle of certain
+        function calls. However, the test makes a faulty assumption about which
+        function in that recursion pattern will be the one that overflows the
+        stack.
+
+        The fix is to make the test check for repetition of that recursion pattern
+        instead of making a specific assumption as to which function within that
+        recursion pattern will overflow the stack.
+
+        * TestExpectations: reverted skipped test.
+        * js/dom/script-tests/stack-trace.js:
+        (stackTraceLineFor):
+        - refactored this code to generated the stack trace line out of printStack.
+        (printStack):
+        - updated to use stackTraceLineFor.
+        (dumpPattern):
+        - utility function to dump the recursion pattern being matched.
+        (matchesPatternAtLine):
+        (matchPattern):
+        (checkStackForPattern):
+        - utility functions for testing if the stack trace matches the expected
+          recursion pattern. The pattern is an array of stack trace lines that
+          we should see repeated in the stack trace starting from the top.
+
+          The top line of the stack trace may match any line in the pattern.
+          Thereafter, subsequent lines much patch lines in the pattern starting
+          with the line after the first match. When we run out of pattern lines,
+          we'll go back to the first pattern line and continue the matching test
+          until we run out of stack trace lines to match.
+
+          If any mismatch is found, the test fails.
+
+        * js/dom/stack-trace-expected.txt:
+        - updates baseline for expected results.
+
 2014-02-10  Alexey Proskuryakov  <a...@apple.com>
 
         svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html frequently asserts

Modified: trunk/LayoutTests/TestExpectations (163828 => 163829)


--- trunk/LayoutTests/TestExpectations	2014-02-10 23:48:24 UTC (rev 163828)
+++ trunk/LayoutTests/TestExpectations	2014-02-10 23:55:19 UTC (rev 163829)
@@ -100,5 +100,3 @@
 webkit.org/b/127697 fast/writing-mode/ruby-text-logical-left.html [ Skip ]
 
 webkit.org/b/128537 fast/workers/dedicated-worker-lifecycle.html [ Skip ]
-
-webkit.org/b/128544 js/dom/stack-trace.html [ Pass Failure ]

Modified: trunk/LayoutTests/js/dom/script-tests/stack-trace.js (163828 => 163829)


--- trunk/LayoutTests/js/dom/script-tests/stack-trace.js	2014-02-10 23:48:24 UTC (rev 163828)
+++ trunk/LayoutTests/js/dom/script-tests/stack-trace.js	2014-02-10 23:55:19 UTC (rev 163829)
@@ -7,21 +7,74 @@
 'This test checks stack trace corectness in special cases.'
 );
 
+function stackTraceLineFor(stackTrace, frameIndex) {
+    var i = frameIndex;
+    var indexOfAt = stackTrace[i].indexOf('@')
+    var indexOfLastSlash = stackTrace[i].lastIndexOf('/');
+    if (indexOfLastSlash == -1)
+        indexOfLastSlash = indexOfAt
+    var functionName = stackTrace[i].substring(0, indexOfAt);
+    var fileName = stackTrace[i].substring(indexOfLastSlash + 1);
+    return functionName + " at " + fileName;
+}
+
 function printStack(stackTrace) {
     debug("--> Stack Trace:")
     stackTrace = stackTrace.split("\n");
     var length = Math.min(stackTrace.length, 100);
-    for (var i = 0; i < length; i++) {
-        var indexOfAt = stackTrace[i].indexOf('@')
-        var indexOfLastSlash = stackTrace[i].lastIndexOf('/');
-        if (indexOfLastSlash == -1)
-            indexOfLastSlash = indexOfAt
-        var functionName = stackTrace[i].substring(0, indexOfAt);
-        var fileName = stackTrace[i].substring(indexOfLastSlash + 1);
-        debug("    " + i + "   " + functionName + " at " + fileName);
+    for (var i = 0; i < length; i++)
+        debug("    " + i + "   " + stackTraceLineFor(stackTrace, i));
+    debug('');
+}
+
+function dumpPattern(pattern) {
+    for (var i = 0; i < pattern.length; i++)
+        debug("    " + i + "   " + pattern[i]);
+}
+
+function matchesPatternAtLine(pattern, patternIndex, traceLine) {
+    var patternLine = pattern[patternIndex];
+    return traceLine.slice(0, patternLine.length) == patternLine;
+}
+
+function matchPattern(pattern, traceLine) {
+    for (var i = 0; i < pattern.length; i++) {
+        if (matchesPatternAtLine(pattern, i, traceLine))
+            return i;
     }
+    return -1;
+}
+
+function checkStackForPattern(stackTrace, pattern) {
+    stackTrace = stackTrace.split("\n");
+    var length = Math.min(stackTrace.length, 100);
+
+    // Get the match in the pattern for the first line:
+    var firstStackTraceLine = stackTraceLineFor(stackTrace, 0);
+    var patternIndex = matchPattern(pattern, firstStackTraceLine);
+    if (patternIndex < 0) {
+        debug("--> Stack Trace FAILED to match pattern:")
+        dumpPattern(pattern);
+        debug('');
+        return;
+    }
+
+    for (var i = 1; i < length; i++) {
+        patternIndex = ++patternIndex % pattern.length;
+        var traceLine = stackTraceLineFor(stackTrace, i);
+        if (!matchesPatternAtLine(pattern, patternIndex, traceLine)) {
+            debug("--> Stack Trace FAILED to match pattern:")
+            dumpPattern(pattern);
+            debug('');
+            return;
+        }
+    }
+
+    debug("--> Stack Trace matches pattern:")
+    dumpPattern(pattern);
     debug('');
 }
+
 function hostThrower() { Element.prototype.appendChild.call({ }, [{ }]);  }
 function callbacker(f) { [0].map(f); }
 function outer(errorName) { inner(errorName); }
@@ -69,7 +122,16 @@
     eval("selfRecursive3()");
 }
 
-try { selfRecursive3(); } catch (e) { printStack(e.stack) }                   // selfRecursive3 -> eval -> selfRecursive3 -> eval ...
+try {
+    selfRecursive3();
+} catch (e) {
+    var pattern = [
+        " at eval code",
+        "eval at [native code]",
+        "selfRecursive3 at stack-trace.js"
+    ];
+    checkStackForPattern(e.stack, pattern);
+}
 
 var callCount = 0;
 

Modified: trunk/LayoutTests/js/dom/stack-trace-expected.txt (163828 => 163829)


--- trunk/LayoutTests/js/dom/stack-trace-expected.txt	2014-02-10 23:48:24 UTC (rev 163828)
+++ trunk/LayoutTests/js/dom/stack-trace-expected.txt	2014-02-10 23:55:19 UTC (rev 163829)
@@ -4,461 +4,364 @@
 
 
 --> Stack Trace:
-    0   normalInner at stack-trace.js:31:47
-    1   normalOuter at stack-trace.js:30:37
-    2   global code at stack-trace.js:36:18
+    0   normalInner at stack-trace.js:84:47
+    1   normalOuter at stack-trace.js:83:37
+    2   global code at stack-trace.js:89:18
 
 --> Stack Trace:
-    0   inner at stack-trace.js:28:44
+    0   inner at stack-trace.js:81:44
     1    at eval code
     2   eval at [native code]
-    3   evaler at stack-trace.js:29:29
-    4   global code at stack-trace.js:39:13
+    3   evaler at stack-trace.js:82:29
+    4   global code at stack-trace.js:92:13
 
 --> Stack Trace:
-    0   inner at stack-trace.js:28:44
-    1   outer at stack-trace.js:27:34
+    0   inner at stack-trace.js:81:44
+    1   outer at stack-trace.js:80:34
     2    at eval code
     3   eval at [native code]
-    4   evaler at stack-trace.js:29:29
-    5   global code at stack-trace.js:40:13
+    4   evaler at stack-trace.js:82:29
+    5   global code at stack-trace.js:93:13
 
 --> Stack Trace:
-    0   inner at stack-trace.js:28:44
-    1   global code at stack-trace.js:43:23
+    0   inner at stack-trace.js:81:44
+    1   global code at stack-trace.js:96:23
 
 --> Stack Trace:
-    0   inner at stack-trace.js:28:44
-    1   outer at stack-trace.js:27:34
-    2   global code at stack-trace.js:44:23
+    0   inner at stack-trace.js:81:44
+    1   outer at stack-trace.js:80:34
+    2   global code at stack-trace.js:97:23
 
 --> Stack Trace:
     0   appendChild at [native code]
-    1   hostThrower at stack-trace.js:25:60
-    2   global code at stack-trace.js:47:18
+    1   hostThrower at stack-trace.js:78:60
+    2   global code at stack-trace.js:100:18
 
 --> Stack Trace:
     0   htmlInner at stack-trace.html:10:51
-    1   scripterInner at stack-trace.js:32:37
-    2   global code at stack-trace.js:49:20
+    1   scripterInner at stack-trace.js:85:37
+    2   global code at stack-trace.js:102:20
 
 --> Stack Trace:
     0   htmlInner at stack-trace.html:10:51
     1   htmlOuter at stack-trace.html:11:45
-    2   scripterOuter at stack-trace.js:33:37
-    3   global code at stack-trace.js:50:20
+    2   scripterOuter at stack-trace.js:86:37
+    3   global code at stack-trace.js:103:20
 
 --> Stack Trace:
-    0   selfRecursive1 at stack-trace.js:52:43
-    1   selfRecursive1 at stack-trace.js:52:43
-    2   selfRecursive1 at stack-trace.js:52:43
-    3   selfRecursive1 at stack-trace.js:52:43
-    4   selfRecursive1 at stack-trace.js:52:43
-    5   selfRecursive1 at stack-trace.js:52:43
-    6   selfRecursive1 at stack-trace.js:52:43
-    7   selfRecursive1 at stack-trace.js:52:43
-    8   selfRecursive1 at stack-trace.js:52:43
-    9   selfRecursive1 at stack-trace.js:52:43
-    10   selfRecursive1 at stack-trace.js:52:43
-    11   selfRecursive1 at stack-trace.js:52:43
-    12   selfRecursive1 at stack-trace.js:52:43
-    13   selfRecursive1 at stack-trace.js:52:43
-    14   selfRecursive1 at stack-trace.js:52:43
-    15   selfRecursive1 at stack-trace.js:52:43
-    16   selfRecursive1 at stack-trace.js:52:43
-    17   selfRecursive1 at stack-trace.js:52:43
-    18   selfRecursive1 at stack-trace.js:52:43
-    19   selfRecursive1 at stack-trace.js:52:43
-    20   selfRecursive1 at stack-trace.js:52:43
-    21   selfRecursive1 at stack-trace.js:52:43
-    22   selfRecursive1 at stack-trace.js:52:43
-    23   selfRecursive1 at stack-trace.js:52:43
-    24   selfRecursive1 at stack-trace.js:52:43
-    25   selfRecursive1 at stack-trace.js:52:43
-    26   selfRecursive1 at stack-trace.js:52:43
-    27   selfRecursive1 at stack-trace.js:52:43
-    28   selfRecursive1 at stack-trace.js:52:43
-    29   selfRecursive1 at stack-trace.js:52:43
-    30   selfRecursive1 at stack-trace.js:52:43
-    31   selfRecursive1 at stack-trace.js:52:43
-    32   selfRecursive1 at stack-trace.js:52:43
-    33   selfRecursive1 at stack-trace.js:52:43
-    34   selfRecursive1 at stack-trace.js:52:43
-    35   selfRecursive1 at stack-trace.js:52:43
-    36   selfRecursive1 at stack-trace.js:52:43
-    37   selfRecursive1 at stack-trace.js:52:43
-    38   selfRecursive1 at stack-trace.js:52:43
-    39   selfRecursive1 at stack-trace.js:52:43
-    40   selfRecursive1 at stack-trace.js:52:43
-    41   selfRecursive1 at stack-trace.js:52:43
-    42   selfRecursive1 at stack-trace.js:52:43
-    43   selfRecursive1 at stack-trace.js:52:43
-    44   selfRecursive1 at stack-trace.js:52:43
-    45   selfRecursive1 at stack-trace.js:52:43
-    46   selfRecursive1 at stack-trace.js:52:43
-    47   selfRecursive1 at stack-trace.js:52:43
-    48   selfRecursive1 at stack-trace.js:52:43
-    49   selfRecursive1 at stack-trace.js:52:43
-    50   selfRecursive1 at stack-trace.js:52:43
-    51   selfRecursive1 at stack-trace.js:52:43
-    52   selfRecursive1 at stack-trace.js:52:43
-    53   selfRecursive1 at stack-trace.js:52:43
-    54   selfRecursive1 at stack-trace.js:52:43
-    55   selfRecursive1 at stack-trace.js:52:43
-    56   selfRecursive1 at stack-trace.js:52:43
-    57   selfRecursive1 at stack-trace.js:52:43
-    58   selfRecursive1 at stack-trace.js:52:43
-    59   selfRecursive1 at stack-trace.js:52:43
-    60   selfRecursive1 at stack-trace.js:52:43
-    61   selfRecursive1 at stack-trace.js:52:43
-    62   selfRecursive1 at stack-trace.js:52:43
-    63   selfRecursive1 at stack-trace.js:52:43
-    64   selfRecursive1 at stack-trace.js:52:43
-    65   selfRecursive1 at stack-trace.js:52:43
-    66   selfRecursive1 at stack-trace.js:52:43
-    67   selfRecursive1 at stack-trace.js:52:43
-    68   selfRecursive1 at stack-trace.js:52:43
-    69   selfRecursive1 at stack-trace.js:52:43
-    70   selfRecursive1 at stack-trace.js:52:43
-    71   selfRecursive1 at stack-trace.js:52:43
-    72   selfRecursive1 at stack-trace.js:52:43
-    73   selfRecursive1 at stack-trace.js:52:43
-    74   selfRecursive1 at stack-trace.js:52:43
-    75   selfRecursive1 at stack-trace.js:52:43
-    76   selfRecursive1 at stack-trace.js:52:43
-    77   selfRecursive1 at stack-trace.js:52:43
-    78   selfRecursive1 at stack-trace.js:52:43
-    79   selfRecursive1 at stack-trace.js:52:43
-    80   selfRecursive1 at stack-trace.js:52:43
-    81   selfRecursive1 at stack-trace.js:52:43
-    82   selfRecursive1 at stack-trace.js:52:43
-    83   selfRecursive1 at stack-trace.js:52:43
-    84   selfRecursive1 at stack-trace.js:52:43
-    85   selfRecursive1 at stack-trace.js:52:43
-    86   selfRecursive1 at stack-trace.js:52:43
-    87   selfRecursive1 at stack-trace.js:52:43
-    88   selfRecursive1 at stack-trace.js:52:43
-    89   selfRecursive1 at stack-trace.js:52:43
-    90   selfRecursive1 at stack-trace.js:52:43
-    91   selfRecursive1 at stack-trace.js:52:43
-    92   selfRecursive1 at stack-trace.js:52:43
-    93   selfRecursive1 at stack-trace.js:52:43
-    94   selfRecursive1 at stack-trace.js:52:43
-    95   selfRecursive1 at stack-trace.js:52:43
-    96   selfRecursive1 at stack-trace.js:52:43
-    97   selfRecursive1 at stack-trace.js:52:43
-    98   selfRecursive1 at stack-trace.js:52:43
-    99   selfRecursive1 at stack-trace.js:52:43
+    0   selfRecursive1 at stack-trace.js:105:43
+    1   selfRecursive1 at stack-trace.js:105:43
+    2   selfRecursive1 at stack-trace.js:105:43
+    3   selfRecursive1 at stack-trace.js:105:43
+    4   selfRecursive1 at stack-trace.js:105:43
+    5   selfRecursive1 at stack-trace.js:105:43
+    6   selfRecursive1 at stack-trace.js:105:43
+    7   selfRecursive1 at stack-trace.js:105:43
+    8   selfRecursive1 at stack-trace.js:105:43
+    9   selfRecursive1 at stack-trace.js:105:43
+    10   selfRecursive1 at stack-trace.js:105:43
+    11   selfRecursive1 at stack-trace.js:105:43
+    12   selfRecursive1 at stack-trace.js:105:43
+    13   selfRecursive1 at stack-trace.js:105:43
+    14   selfRecursive1 at stack-trace.js:105:43
+    15   selfRecursive1 at stack-trace.js:105:43
+    16   selfRecursive1 at stack-trace.js:105:43
+    17   selfRecursive1 at stack-trace.js:105:43
+    18   selfRecursive1 at stack-trace.js:105:43
+    19   selfRecursive1 at stack-trace.js:105:43
+    20   selfRecursive1 at stack-trace.js:105:43
+    21   selfRecursive1 at stack-trace.js:105:43
+    22   selfRecursive1 at stack-trace.js:105:43
+    23   selfRecursive1 at stack-trace.js:105:43
+    24   selfRecursive1 at stack-trace.js:105:43
+    25   selfRecursive1 at stack-trace.js:105:43
+    26   selfRecursive1 at stack-trace.js:105:43
+    27   selfRecursive1 at stack-trace.js:105:43
+    28   selfRecursive1 at stack-trace.js:105:43
+    29   selfRecursive1 at stack-trace.js:105:43
+    30   selfRecursive1 at stack-trace.js:105:43
+    31   selfRecursive1 at stack-trace.js:105:43
+    32   selfRecursive1 at stack-trace.js:105:43
+    33   selfRecursive1 at stack-trace.js:105:43
+    34   selfRecursive1 at stack-trace.js:105:43
+    35   selfRecursive1 at stack-trace.js:105:43
+    36   selfRecursive1 at stack-trace.js:105:43
+    37   selfRecursive1 at stack-trace.js:105:43
+    38   selfRecursive1 at stack-trace.js:105:43
+    39   selfRecursive1 at stack-trace.js:105:43
+    40   selfRecursive1 at stack-trace.js:105:43
+    41   selfRecursive1 at stack-trace.js:105:43
+    42   selfRecursive1 at stack-trace.js:105:43
+    43   selfRecursive1 at stack-trace.js:105:43
+    44   selfRecursive1 at stack-trace.js:105:43
+    45   selfRecursive1 at stack-trace.js:105:43
+    46   selfRecursive1 at stack-trace.js:105:43
+    47   selfRecursive1 at stack-trace.js:105:43
+    48   selfRecursive1 at stack-trace.js:105:43
+    49   selfRecursive1 at stack-trace.js:105:43
+    50   selfRecursive1 at stack-trace.js:105:43
+    51   selfRecursive1 at stack-trace.js:105:43
+    52   selfRecursive1 at stack-trace.js:105:43
+    53   selfRecursive1 at stack-trace.js:105:43
+    54   selfRecursive1 at stack-trace.js:105:43
+    55   selfRecursive1 at stack-trace.js:105:43
+    56   selfRecursive1 at stack-trace.js:105:43
+    57   selfRecursive1 at stack-trace.js:105:43
+    58   selfRecursive1 at stack-trace.js:105:43
+    59   selfRecursive1 at stack-trace.js:105:43
+    60   selfRecursive1 at stack-trace.js:105:43
+    61   selfRecursive1 at stack-trace.js:105:43
+    62   selfRecursive1 at stack-trace.js:105:43
+    63   selfRecursive1 at stack-trace.js:105:43
+    64   selfRecursive1 at stack-trace.js:105:43
+    65   selfRecursive1 at stack-trace.js:105:43
+    66   selfRecursive1 at stack-trace.js:105:43
+    67   selfRecursive1 at stack-trace.js:105:43
+    68   selfRecursive1 at stack-trace.js:105:43
+    69   selfRecursive1 at stack-trace.js:105:43
+    70   selfRecursive1 at stack-trace.js:105:43
+    71   selfRecursive1 at stack-trace.js:105:43
+    72   selfRecursive1 at stack-trace.js:105:43
+    73   selfRecursive1 at stack-trace.js:105:43
+    74   selfRecursive1 at stack-trace.js:105:43
+    75   selfRecursive1 at stack-trace.js:105:43
+    76   selfRecursive1 at stack-trace.js:105:43
+    77   selfRecursive1 at stack-trace.js:105:43
+    78   selfRecursive1 at stack-trace.js:105:43
+    79   selfRecursive1 at stack-trace.js:105:43
+    80   selfRecursive1 at stack-trace.js:105:43
+    81   selfRecursive1 at stack-trace.js:105:43
+    82   selfRecursive1 at stack-trace.js:105:43
+    83   selfRecursive1 at stack-trace.js:105:43
+    84   selfRecursive1 at stack-trace.js:105:43
+    85   selfRecursive1 at stack-trace.js:105:43
+    86   selfRecursive1 at stack-trace.js:105:43
+    87   selfRecursive1 at stack-trace.js:105:43
+    88   selfRecursive1 at stack-trace.js:105:43
+    89   selfRecursive1 at stack-trace.js:105:43
+    90   selfRecursive1 at stack-trace.js:105:43
+    91   selfRecursive1 at stack-trace.js:105:43
+    92   selfRecursive1 at stack-trace.js:105:43
+    93   selfRecursive1 at stack-trace.js:105:43
+    94   selfRecursive1 at stack-trace.js:105:43
+    95   selfRecursive1 at stack-trace.js:105:43
+    96   selfRecursive1 at stack-trace.js:105:43
+    97   selfRecursive1 at stack-trace.js:105:43
+    98   selfRecursive1 at stack-trace.js:105:43
+    99   selfRecursive1 at stack-trace.js:105:43
 
 --> Stack Trace:
-    0   selfRecursive2 at stack-trace.js:62:27
-    1   selfRecursive2 at stack-trace.js:62:27
-    2   selfRecursive2 at stack-trace.js:62:27
-    3   selfRecursive2 at stack-trace.js:62:27
-    4   selfRecursive2 at stack-trace.js:62:27
-    5   selfRecursive2 at stack-trace.js:62:27
-    6   selfRecursive2 at stack-trace.js:62:27
-    7   selfRecursive2 at stack-trace.js:62:27
-    8   selfRecursive2 at stack-trace.js:62:27
-    9   selfRecursive2 at stack-trace.js:62:27
-    10   selfRecursive2 at stack-trace.js:62:27
-    11   selfRecursive2 at stack-trace.js:62:27
-    12   selfRecursive2 at stack-trace.js:62:27
-    13   selfRecursive2 at stack-trace.js:62:27
-    14   selfRecursive2 at stack-trace.js:62:27
-    15   selfRecursive2 at stack-trace.js:62:27
-    16   selfRecursive2 at stack-trace.js:62:27
-    17   selfRecursive2 at stack-trace.js:62:27
-    18   selfRecursive2 at stack-trace.js:62:27
-    19   selfRecursive2 at stack-trace.js:62:27
-    20   selfRecursive2 at stack-trace.js:62:27
-    21   selfRecursive2 at stack-trace.js:62:27
-    22   selfRecursive2 at stack-trace.js:62:27
-    23   selfRecursive2 at stack-trace.js:62:27
-    24   selfRecursive2 at stack-trace.js:62:27
-    25   selfRecursive2 at stack-trace.js:62:27
-    26   selfRecursive2 at stack-trace.js:62:27
-    27   selfRecursive2 at stack-trace.js:62:27
-    28   selfRecursive2 at stack-trace.js:62:27
-    29   selfRecursive2 at stack-trace.js:62:27
-    30   selfRecursive2 at stack-trace.js:62:27
-    31   selfRecursive2 at stack-trace.js:62:27
-    32   selfRecursive2 at stack-trace.js:62:27
-    33   selfRecursive2 at stack-trace.js:62:27
-    34   selfRecursive2 at stack-trace.js:62:27
-    35   selfRecursive2 at stack-trace.js:62:27
-    36   selfRecursive2 at stack-trace.js:62:27
-    37   selfRecursive2 at stack-trace.js:62:27
-    38   selfRecursive2 at stack-trace.js:62:27
-    39   selfRecursive2 at stack-trace.js:62:27
-    40   selfRecursive2 at stack-trace.js:62:27
-    41   selfRecursive2 at stack-trace.js:62:27
-    42   selfRecursive2 at stack-trace.js:62:27
-    43   selfRecursive2 at stack-trace.js:62:27
-    44   selfRecursive2 at stack-trace.js:62:27
-    45   selfRecursive2 at stack-trace.js:62:27
-    46   selfRecursive2 at stack-trace.js:62:27
-    47   selfRecursive2 at stack-trace.js:62:27
-    48   selfRecursive2 at stack-trace.js:62:27
-    49   selfRecursive2 at stack-trace.js:62:27
-    50   selfRecursive2 at stack-trace.js:62:27
-    51   selfRecursive2 at stack-trace.js:62:27
-    52   selfRecursive2 at stack-trace.js:62:27
-    53   selfRecursive2 at stack-trace.js:62:27
-    54   selfRecursive2 at stack-trace.js:62:27
-    55   selfRecursive2 at stack-trace.js:62:27
-    56   selfRecursive2 at stack-trace.js:62:27
-    57   selfRecursive2 at stack-trace.js:62:27
-    58   selfRecursive2 at stack-trace.js:62:27
-    59   selfRecursive2 at stack-trace.js:62:27
-    60   selfRecursive2 at stack-trace.js:62:27
-    61   selfRecursive2 at stack-trace.js:62:27
-    62   selfRecursive2 at stack-trace.js:62:27
-    63   selfRecursive2 at stack-trace.js:62:27
-    64   selfRecursive2 at stack-trace.js:62:27
-    65   selfRecursive2 at stack-trace.js:62:27
-    66   selfRecursive2 at stack-trace.js:62:27
-    67   selfRecursive2 at stack-trace.js:62:27
-    68   selfRecursive2 at stack-trace.js:62:27
-    69   selfRecursive2 at stack-trace.js:62:27
-    70   selfRecursive2 at stack-trace.js:62:27
-    71   selfRecursive2 at stack-trace.js:62:27
-    72   selfRecursive2 at stack-trace.js:62:27
-    73   selfRecursive2 at stack-trace.js:62:27
-    74   selfRecursive2 at stack-trace.js:62:27
-    75   selfRecursive2 at stack-trace.js:62:27
-    76   selfRecursive2 at stack-trace.js:62:27
-    77   selfRecursive2 at stack-trace.js:62:27
-    78   selfRecursive2 at stack-trace.js:62:27
-    79   selfRecursive2 at stack-trace.js:62:27
-    80   selfRecursive2 at stack-trace.js:62:27
-    81   selfRecursive2 at stack-trace.js:62:27
-    82   selfRecursive2 at stack-trace.js:62:27
-    83   selfRecursive2 at stack-trace.js:62:27
-    84   selfRecursive2 at stack-trace.js:62:27
-    85   selfRecursive2 at stack-trace.js:62:27
-    86   selfRecursive2 at stack-trace.js:62:27
-    87   selfRecursive2 at stack-trace.js:62:27
-    88   selfRecursive2 at stack-trace.js:62:27
-    89   selfRecursive2 at stack-trace.js:62:27
-    90   selfRecursive2 at stack-trace.js:62:27
-    91   selfRecursive2 at stack-trace.js:62:27
-    92   selfRecursive2 at stack-trace.js:62:27
-    93   selfRecursive2 at stack-trace.js:62:27
-    94   selfRecursive2 at stack-trace.js:62:27
-    95   selfRecursive2 at stack-trace.js:62:27
-    96   selfRecursive2 at stack-trace.js:62:27
-    97   selfRecursive2 at stack-trace.js:62:27
-    98   selfRecursive2 at stack-trace.js:62:27
-    99   selfRecursive2 at stack-trace.js:62:27
+    0   selfRecursive2 at stack-trace.js:115:27
+    1   selfRecursive2 at stack-trace.js:115:27
+    2   selfRecursive2 at stack-trace.js:115:27
+    3   selfRecursive2 at stack-trace.js:115:27
+    4   selfRecursive2 at stack-trace.js:115:27
+    5   selfRecursive2 at stack-trace.js:115:27
+    6   selfRecursive2 at stack-trace.js:115:27
+    7   selfRecursive2 at stack-trace.js:115:27
+    8   selfRecursive2 at stack-trace.js:115:27
+    9   selfRecursive2 at stack-trace.js:115:27
+    10   selfRecursive2 at stack-trace.js:115:27
+    11   selfRecursive2 at stack-trace.js:115:27
+    12   selfRecursive2 at stack-trace.js:115:27
+    13   selfRecursive2 at stack-trace.js:115:27
+    14   selfRecursive2 at stack-trace.js:115:27
+    15   selfRecursive2 at stack-trace.js:115:27
+    16   selfRecursive2 at stack-trace.js:115:27
+    17   selfRecursive2 at stack-trace.js:115:27
+    18   selfRecursive2 at stack-trace.js:115:27
+    19   selfRecursive2 at stack-trace.js:115:27
+    20   selfRecursive2 at stack-trace.js:115:27
+    21   selfRecursive2 at stack-trace.js:115:27
+    22   selfRecursive2 at stack-trace.js:115:27
+    23   selfRecursive2 at stack-trace.js:115:27
+    24   selfRecursive2 at stack-trace.js:115:27
+    25   selfRecursive2 at stack-trace.js:115:27
+    26   selfRecursive2 at stack-trace.js:115:27
+    27   selfRecursive2 at stack-trace.js:115:27
+    28   selfRecursive2 at stack-trace.js:115:27
+    29   selfRecursive2 at stack-trace.js:115:27
+    30   selfRecursive2 at stack-trace.js:115:27
+    31   selfRecursive2 at stack-trace.js:115:27
+    32   selfRecursive2 at stack-trace.js:115:27
+    33   selfRecursive2 at stack-trace.js:115:27
+    34   selfRecursive2 at stack-trace.js:115:27
+    35   selfRecursive2 at stack-trace.js:115:27
+    36   selfRecursive2 at stack-trace.js:115:27
+    37   selfRecursive2 at stack-trace.js:115:27
+    38   selfRecursive2 at stack-trace.js:115:27
+    39   selfRecursive2 at stack-trace.js:115:27
+    40   selfRecursive2 at stack-trace.js:115:27
+    41   selfRecursive2 at stack-trace.js:115:27
+    42   selfRecursive2 at stack-trace.js:115:27
+    43   selfRecursive2 at stack-trace.js:115:27
+    44   selfRecursive2 at stack-trace.js:115:27
+    45   selfRecursive2 at stack-trace.js:115:27
+    46   selfRecursive2 at stack-trace.js:115:27
+    47   selfRecursive2 at stack-trace.js:115:27
+    48   selfRecursive2 at stack-trace.js:115:27
+    49   selfRecursive2 at stack-trace.js:115:27
+    50   selfRecursive2 at stack-trace.js:115:27
+    51   selfRecursive2 at stack-trace.js:115:27
+    52   selfRecursive2 at stack-trace.js:115:27
+    53   selfRecursive2 at stack-trace.js:115:27
+    54   selfRecursive2 at stack-trace.js:115:27
+    55   selfRecursive2 at stack-trace.js:115:27
+    56   selfRecursive2 at stack-trace.js:115:27
+    57   selfRecursive2 at stack-trace.js:115:27
+    58   selfRecursive2 at stack-trace.js:115:27
+    59   selfRecursive2 at stack-trace.js:115:27
+    60   selfRecursive2 at stack-trace.js:115:27
+    61   selfRecursive2 at stack-trace.js:115:27
+    62   selfRecursive2 at stack-trace.js:115:27
+    63   selfRecursive2 at stack-trace.js:115:27
+    64   selfRecursive2 at stack-trace.js:115:27
+    65   selfRecursive2 at stack-trace.js:115:27
+    66   selfRecursive2 at stack-trace.js:115:27
+    67   selfRecursive2 at stack-trace.js:115:27
+    68   selfRecursive2 at stack-trace.js:115:27
+    69   selfRecursive2 at stack-trace.js:115:27
+    70   selfRecursive2 at stack-trace.js:115:27
+    71   selfRecursive2 at stack-trace.js:115:27
+    72   selfRecursive2 at stack-trace.js:115:27
+    73   selfRecursive2 at stack-trace.js:115:27
+    74   selfRecursive2 at stack-trace.js:115:27
+    75   selfRecursive2 at stack-trace.js:115:27
+    76   selfRecursive2 at stack-trace.js:115:27
+    77   selfRecursive2 at stack-trace.js:115:27
+    78   selfRecursive2 at stack-trace.js:115:27
+    79   selfRecursive2 at stack-trace.js:115:27
+    80   selfRecursive2 at stack-trace.js:115:27
+    81   selfRecursive2 at stack-trace.js:115:27
+    82   selfRecursive2 at stack-trace.js:115:27
+    83   selfRecursive2 at stack-trace.js:115:27
+    84   selfRecursive2 at stack-trace.js:115:27
+    85   selfRecursive2 at stack-trace.js:115:27
+    86   selfRecursive2 at stack-trace.js:115:27
+    87   selfRecursive2 at stack-trace.js:115:27
+    88   selfRecursive2 at stack-trace.js:115:27
+    89   selfRecursive2 at stack-trace.js:115:27
+    90   selfRecursive2 at stack-trace.js:115:27
+    91   selfRecursive2 at stack-trace.js:115:27
+    92   selfRecursive2 at stack-trace.js:115:27
+    93   selfRecursive2 at stack-trace.js:115:27
+    94   selfRecursive2 at stack-trace.js:115:27
+    95   selfRecursive2 at stack-trace.js:115:27
+    96   selfRecursive2 at stack-trace.js:115:27
+    97   selfRecursive2 at stack-trace.js:115:27
+    98   selfRecursive2 at stack-trace.js:115:27
+    99   selfRecursive2 at stack-trace.js:115:27
 
---> Stack Trace:
-    0   eval at [native code]
-    1   selfRecursive3 at stack-trace.js:69:9
-    2    at eval code
-    3   eval at [native code]
-    4   selfRecursive3 at stack-trace.js:69:9
-    5    at eval code
-    6   eval at [native code]
-    7   selfRecursive3 at stack-trace.js:69:9
-    8    at eval code
-    9   eval at [native code]
-    10   selfRecursive3 at stack-trace.js:69:9
-    11    at eval code
-    12   eval at [native code]
-    13   selfRecursive3 at stack-trace.js:69:9
-    14    at eval code
-    15   eval at [native code]
-    16   selfRecursive3 at stack-trace.js:69:9
-    17    at eval code
-    18   eval at [native code]
-    19   selfRecursive3 at stack-trace.js:69:9
-    20    at eval code
-    21   eval at [native code]
-    22   selfRecursive3 at stack-trace.js:69:9
-    23    at eval code
-    24   eval at [native code]
-    25   selfRecursive3 at stack-trace.js:69:9
-    26    at eval code
-    27   eval at [native code]
-    28   selfRecursive3 at stack-trace.js:69:9
-    29    at eval code
-    30   eval at [native code]
-    31   selfRecursive3 at stack-trace.js:69:9
-    32    at eval code
-    33   eval at [native code]
-    34   selfRecursive3 at stack-trace.js:69:9
-    35    at eval code
-    36   eval at [native code]
-    37   selfRecursive3 at stack-trace.js:69:9
-    38    at eval code
-    39   eval at [native code]
-    40   selfRecursive3 at stack-trace.js:69:9
-    41    at eval code
-    42   eval at [native code]
-    43   selfRecursive3 at stack-trace.js:69:9
-    44    at eval code
-    45   eval at [native code]
-    46   selfRecursive3 at stack-trace.js:69:9
-    47    at eval code
-    48   eval at [native code]
-    49   selfRecursive3 at stack-trace.js:69:9
-    50    at eval code
-    51   eval at [native code]
-    52   selfRecursive3 at stack-trace.js:69:9
-    53    at eval code
-    54   eval at [native code]
-    55   selfRecursive3 at stack-trace.js:69:9
-    56    at eval code
-    57   eval at [native code]
-    58   selfRecursive3 at stack-trace.js:69:9
-    59    at eval code
-    60   eval at [native code]
-    61   selfRecursive3 at stack-trace.js:69:9
-    62    at eval code
-    63   eval at [native code]
-    64   selfRecursive3 at stack-trace.js:69:9
-    65    at eval code
-    66   eval at [native code]
-    67   selfRecursive3 at stack-trace.js:69:9
-    68    at eval code
-    69   eval at [native code]
-    70   selfRecursive3 at stack-trace.js:69:9
-    71    at eval code
-    72   eval at [native code]
-    73   selfRecursive3 at stack-trace.js:69:9
-    74    at eval code
-    75   eval at [native code]
-    76   selfRecursive3 at stack-trace.js:69:9
-    77    at eval code
-    78   eval at [native code]
-    79   selfRecursive3 at stack-trace.js:69:9
-    80    at eval code
-    81   eval at [native code]
-    82   selfRecursive3 at stack-trace.js:69:9
-    83    at eval code
-    84   eval at [native code]
-    85   selfRecursive3 at stack-trace.js:69:9
-    86    at eval code
-    87   eval at [native code]
-    88   selfRecursive3 at stack-trace.js:69:9
-    89    at eval code
-    90   eval at [native code]
-    91   selfRecursive3 at stack-trace.js:69:9
-    92    at eval code
-    93   eval at [native code]
-    94   selfRecursive3 at stack-trace.js:69:9
-    95    at eval code
-    96   eval at [native code]
-    97   selfRecursive3 at stack-trace.js:69:9
-    98    at eval code
-    99   eval at [native code]
+--> Stack Trace matches pattern:
+    0    at eval code
+    1   eval at [native code]
+    2   selfRecursive3 at stack-trace.js
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77:13
-    1   valueOf at stack-trace.js:84:27
-    2   getter1 at stack-trace.js:87:11
-    3   nonInlineable at stack-trace.js:113:17
-    4   inlineable at stack-trace.js:121:27
-    5   yetAnotherInlinedCall at stack-trace.js:126:17
-    6   makeInlinableCall at stack-trace.js:131:34
-    7   g at stack-trace.js:140:34
+    0   throwError at stack-trace.js:139:13
+    1   valueOf at stack-trace.js:146:27
+    2   getter1 at stack-trace.js:149:11
+    3   nonInlineable at stack-trace.js:175:17
+    4   inlineable at stack-trace.js:183:27
+    5   yetAnotherInlinedCall at stack-trace.js:188:17
+    6   makeInlinableCall at stack-trace.js:193:34
+    7   g at stack-trace.js:202:34
     8   map at [native code]
-    9   global code at stack-trace.js:143:16
+    9   global code at stack-trace.js:205:16
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77:13
-    1   getter2 at stack-trace.js:93:11
-    2   nonInlineable at stack-trace.js:115:17
-    3   inlineable at stack-trace.js:121:27
-    4   yetAnotherInlinedCall at stack-trace.js:126:17
-    5   makeInlinableCall at stack-trace.js:131:34
-    6   g at stack-trace.js:140:34
+    0   throwError at stack-trace.js:139:13
+    1   getter2 at stack-trace.js:155:11
+    2   nonInlineable at stack-trace.js:177:17
+    3   inlineable at stack-trace.js:183:27
+    4   yetAnotherInlinedCall at stack-trace.js:188:17
+    5   makeInlinableCall at stack-trace.js:193:34
+    6   g at stack-trace.js:202:34
     7   map at [native code]
-    8   global code at stack-trace.js:143:16
+    8   global code at stack-trace.js:205:16
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77:13
-    1   getter3 at stack-trace.js:105:16
-    2   nonInlineable at stack-trace.js:117:17
-    3   inlineable at stack-trace.js:121:27
-    4   yetAnotherInlinedCall at stack-trace.js:126:17
-    5   makeInlinableCall at stack-trace.js:131:34
-    6   g at stack-trace.js:140:34
+    0   throwError at stack-trace.js:139:13
+    1   getter3 at stack-trace.js:167:16
+    2   nonInlineable at stack-trace.js:179:17
+    3   inlineable at stack-trace.js:183:27
+    4   yetAnotherInlinedCall at stack-trace.js:188:17
+    5   makeInlinableCall at stack-trace.js:193:34
+    6   g at stack-trace.js:202:34
     7   map at [native code]
-    8   global code at stack-trace.js:143:16
+    8   global code at stack-trace.js:205:16
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77:13
-    1   valueOf at stack-trace.js:101:27
-    2   getter3 at stack-trace.js:107:16
-    3   nonInlineable at stack-trace.js:117:17
-    4   inlineable at stack-trace.js:121:27
-    5   yetAnotherInlinedCall at stack-trace.js:126:17
-    6   makeInlinableCall at stack-trace.js:131:34
-    7   g at stack-trace.js:140:34
+    0   throwError at stack-trace.js:139:13
+    1   valueOf at stack-trace.js:163:27
+    2   getter3 at stack-trace.js:169:16
+    3   nonInlineable at stack-trace.js:179:17
+    4   inlineable at stack-trace.js:183:27
+    5   yetAnotherInlinedCall at stack-trace.js:188:17
+    6   makeInlinableCall at stack-trace.js:193:34
+    7   g at stack-trace.js:202:34
     8   map at [native code]
-    9   global code at stack-trace.js:143:16
+    9   global code at stack-trace.js:205:16
 
 --> Stack Trace:
-    0   h at stack-trace.js:151:17
+    0   h at stack-trace.js:213:17
     1   map at [native code]
-    2   mapTest at stack-trace.js:158:10
-    3   mapTestDriver at stack-trace.js:164:16
-    4   global code at stack-trace.js:169:18
+    2   mapTest at stack-trace.js:220:10
+    3   mapTestDriver at stack-trace.js:226:16
+    4   global code at stack-trace.js:231:18
 
 --> Stack Trace:
     0   map at [native code]
-    1   h at stack-trace.js:153:21
+    1   h at stack-trace.js:215:21
     2   map at [native code]
-    3   mapTest at stack-trace.js:158:10
-    4   mapTestDriver at stack-trace.js:164:16
-    5   global code at stack-trace.js:175:18
+    3   mapTest at stack-trace.js:220:10
+    4   mapTestDriver at stack-trace.js:226:16
+    5   global code at stack-trace.js:237:18
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77:13
-    1   dfgFunction at stack-trace.js:184:19
+    0   throwError at stack-trace.js:139:13
+    1   dfgFunction at stack-trace.js:246:19
     2   map at [native code]
-    3   global code at stack-trace.js:193:18
+    3   global code at stack-trace.js:255:18
 
 --> Stack Trace:
-    0   throwError at stack-trace.js:77:13
-    1   dfgFunction at stack-trace.js:184:19
-    2   f at stack-trace.js:202:10
-    3   global code at stack-trace.js:208:6
+    0   throwError at stack-trace.js:139:13
+    1   dfgFunction at stack-trace.js:246:19
+    2   f at stack-trace.js:264:10
+    3   global code at stack-trace.js:270:6
 
 --> Stack Trace:
-    0   willThrow at stack-trace.js:246:21
-    1   dfg1 at stack-trace.js:257:13
-    2   dfg2 at stack-trace.js:261:9
-    3   dfg3 at stack-trace.js:265:9
-    4   dfgTest at stack-trace.js:231:14
-    5   global code at stack-trace.js:304:8
+    0   willThrow at stack-trace.js:308:21
+    1   dfg1 at stack-trace.js:319:13
+    2   dfg2 at stack-trace.js:323:9
+    3   dfg3 at stack-trace.js:327:9
+    4   dfgTest at stack-trace.js:293:14
+    5   global code at stack-trace.js:366:8
 
 --> Stack Trace:
-    0   willThrowFunc at stack-trace.js:251:62
-    1   dfg4 at stack-trace.js:269:27
-    2   dfg5 at stack-trace.js:273:9
-    3   dfg6 at stack-trace.js:277:9
-    4   dfgTest at stack-trace.js:231:14
-    5   global code at stack-trace.js:305:8
+    0   willThrowFunc at stack-trace.js:313:62
+    1   dfg4 at stack-trace.js:331:27
+    2   dfg5 at stack-trace.js:335:9
+    3   dfg6 at stack-trace.js:339:9
+    4   dfgTest at stack-trace.js:293:14
+    5   global code at stack-trace.js:367:8
 
 --> Stack Trace:
-    0   inlineableThrow at stack-trace.js:240:33
-    1   willThrowEventually at stack-trace.js:249:24
-    2   dfg7 at stack-trace.js:281:13
-    3   dfg8 at stack-trace.js:285:9
-    4   dfg9 at stack-trace.js:289:9
-    5   dfgTest at stack-trace.js:231:14
-    6   global code at stack-trace.js:306:8
+    0   inlineableThrow at stack-trace.js:302:33
+    1   willThrowEventually at stack-trace.js:311:24
+    2   dfg7 at stack-trace.js:343:13
+    3   dfg8 at stack-trace.js:347:9
+    4   dfg9 at stack-trace.js:351:9
+    5   dfgTest at stack-trace.js:293:14
+    6   global code at stack-trace.js:368:8
 
 --> Stack Trace:
-    0   inlineableThrow at stack-trace.js:240:33
-    1   willThrowEventuallyFunc at stack-trace.js:252:59
-    2   dfga at stack-trace.js:293:37
-    3   dfgb at stack-trace.js:297:9
-    4   dfgc at stack-trace.js:301:9
-    5   dfgTest at stack-trace.js:231:14
-    6   global code at stack-trace.js:307:8
+    0   inlineableThrow at stack-trace.js:302:33
+    1   willThrowEventuallyFunc at stack-trace.js:314:59
+    2   dfga at stack-trace.js:355:37
+    3   dfgb at stack-trace.js:359:9
+    4   dfgc at stack-trace.js:363:9
+    5   dfgTest at stack-trace.js:293:14
+    6   global code at stack-trace.js:369:8
 
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to