JavaScriptCore:
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Jan 2008 19:16:06 +0000 (19:16 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Jan 2008 19:16:06 +0000 (19:16 +0000)
commita1a55b9e4b83540c6f12a889f3fb53eb28256405
tree379b9f984548ec8f69c0cc98c25d5970f3ffd86c
parentc290f61c182ac81d726afc20f67f4b48b8786a5c
JavaScriptCore:

        Reviewed by Geoff.

        - fix http://bugs.webkit.org/show_bug.cgi?id=16648
          REGRESSION (r28165): Yuku.com navigation prints "jsRegExpExecute failed with result -2"
          <rdar://problem/5646486> REGRESSION (r28165): Layout test fast/regex/test1 fails intermittently

        Fixes 34 failing test cases in the fast/regex/test1.html test.

        Restored the stack which prevents infinite loops for brackets that match the empty
        string; it had been removed as an optimization.

        Unfortunately, restoring this stack causes the regular expression test in SunSpider
        to be 1.095x as slow and the overall test to be 1.004x as slow. Maybe we can find
        a correct optimization to restore the speed!

        It's possible the original change was on the right track but just off by one.

        * pcre/pcre_exec.cpp: Add back eptrblock, but name it BracketChainNode.
        (MatchStack::pushNewFrame): Add back the logic needed here.
        (startNewGroup): Ditto.
        (match): Ditto.

LayoutTests:

        Reviewed by Geoff.

        - updated test results for https://bugs.webkit.org/show_bug.cgi?id=16648

        * fast/regex/test1-expected.txt: Update results changed by restoring the logic to
        avoid failing on infinite repeats of brackets that match the empty string.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@29066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/pcre/pcre_exec.cpp
LayoutTests/ChangeLog
LayoutTests/fast/regex/test1-expected.txt