[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

msaboff at apple.com msaboff at apple.com
Wed Dec 22 18:17:37 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 8bebb7df025bfd21fa9c43849e94e8e6f1b4f49b
Author: msaboff at apple.com <msaboff at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Dec 9 17:14:47 2010 +0000

    2010-06-28  Michael Saboff  <msaboff at apple.com>
    
            Reviewed by Darin Adler.
    
            Bug 41238 - RegExp performance slow on Dromaeo benchmark
    
            Other javascript engines appear to cache prior results of regular
            expression operations.
    
            Suggest adding some sort of caching mechanism to regular expression
            processing.
    
            Added a single entry cache of match() results to RegExp class.
    
            Also added performance improvements to UString == operator.
            First check the impls for equality.  Then get the length of
            each of the non-null impls.  Next check the sizes for equality.
            Then check the data for the case of different impls that point
            to the same data (most likely due to substrings from the beginning of
            another string).  Lastly we check the underlying data for equality.
    
            Refactored Vector<>::operator=() method into a separate copy() method
            that it calls.  The copy() method is explicitly used for deep copying.
    
            * runtime/RegExp.cpp:
            (JSC::RegExp::RegExp):
            (JSC::RegExp::match):
            * runtime/RegExp.h:
            * runtime/UString.h:
            (JSC::operator==):
            * wtf/Vector.h:
            (WTF::::operator):
            (WTF::::copy):
    
    2010-12-09  Michael Saboff  <msaboff at apple.com>
    
            Reviewed by Darin Adler.
    
            Added test to verify proper operation of backtrack labels.
            https://bugs.webkit.org/show_bug.cgi?id=50579
    
            * fast/regex/parentheses-expected.txt:
            * fast/regex/script-tests/parentheses.js:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73615 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index b887d09..0754134 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,51 @@
+2010-06-28  Michael Saboff  <msaboff at apple.com>
+
+        Reviewed by Darin Adler.
+
+        Bug 41238 - RegExp performance slow on Dromaeo benchmark
+
+        Other javascript engines appear to cache prior results of regular 
+        expression operations.
+
+        Suggest adding some sort of caching mechanism to regular expression 
+        processing.
+
+        Added a single entry cache of match() results to RegExp class.
+
+        Also added performance improvements to UString == operator.
+        First check the impls for equality.  Then get the length of
+        each of the non-null impls.  Next check the sizes for equality.
+        Then check the data for the case of different impls that point 
+        to the same data (most likely due to substrings from the beginning of
+        another string).  Lastly we check the underlying data for equality.
+
+        Refactored Vector<>::operator=() method into a separate copy() method 
+        that it calls.  The copy() method is explicitly used for deep copying.
+
+        * runtime/RegExp.cpp:
+        (JSC::RegExp::RegExp):
+        (JSC::RegExp::match):
+        * runtime/RegExp.h:
+        * runtime/UString.h:
+        (JSC::operator==):
+        * wtf/Vector.h:
+        (WTF::::operator):
+        (WTF::::copy):
+
+<<<<<<< .mine
+2010-12-09  Michael Saboff  <msaboff at apple.com>
+
+        Reviewed by Darin Adler.
+
+        Changed setting of backtrack labels to not overwrite a prior
+        label.  Where losing prior labe which then reverted back to 
+        next character label.
+        https://bugs.webkit.org/show_bug.cgi?id=50579
+
+        * yarr/RegexJIT.cpp:
+        (JSC::Yarr::RegexGenerator::BacktrackDestination::setBacktrackToLabel):
+
+=======
 2010-12-08  Gavin Barraclough  <barraclough at apple.com>
 
         Reviewed by Sam Weinig.
@@ -131,6 +179,7 @@
 
         * JavaScriptCore.xcodeproj/project.pbxproj:
 
+>>>>>>> .r73612
 2010-12-08  Oliver Hunt  <oliver at apple.com>
 
         Reviewed by Gavin Barraclough.
diff --git a/JavaScriptCore/yarr/RegexJIT.cpp b/JavaScriptCore/yarr/RegexJIT.cpp
index 7f1856a..29c9a12 100644
--- a/JavaScriptCore/yarr/RegexJIT.cpp
+++ b/JavaScriptCore/yarr/RegexJIT.cpp
@@ -561,7 +561,8 @@ class RegexGenerator : private MacroAssembler {
         
         void setBacktrackToLabel(Label* backtrackToLabel)
         {
-            m_backtrackToLabel = backtrackToLabel;
+            if (!m_backtrackToLabel)
+                m_backtrackToLabel = backtrackToLabel;
         }
         
         void setBacktrackJumpList(JumpList* jumpList)
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index a510336..8f86bd4 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2010-12-09  Michael Saboff  <msaboff at apple.com>
+
+        Reviewed by Darin Adler.
+
+        Added test to verify proper operation of backtrack labels.
+        https://bugs.webkit.org/show_bug.cgi?id=50579
+
+        * fast/regex/parentheses-expected.txt:
+        * fast/regex/script-tests/parentheses.js:
+
 2010-12-09  Peter Beverloo  <peter at lvp-media.com>
 
         Reviewed by Maciej Stachowiak.
diff --git a/LayoutTests/fast/regex/parentheses-expected.txt b/LayoutTests/fast/regex/parentheses-expected.txt
index 8bd7eda..8261628 100644
--- a/LayoutTests/fast/regex/parentheses-expected.txt
+++ b/LayoutTests/fast/regex/parentheses-expected.txt
@@ -30,6 +30,7 @@ PASS regexp23.exec('<html xmlns="http://www.w3.org/1999/xhtml"') is ['"http://ww
 PASS regexp24.exec('123') is null
 PASS regexp25.exec('this is a test') is ['this','this',undefined]
 PASS regexp25.exec('!this is a test') is null
+PASS regexp26.exec('aaa') is ['aaa',undefined,undefined]
 PASS 'Hi Bob'.match(/(Rob)|(Bob)|(Robert)|(Bobby)/) is ['Bob',undefined,'Bob',undefined,undefined]
 PASS successfullyParsed is true
 
diff --git a/LayoutTests/fast/regex/script-tests/parentheses.js b/LayoutTests/fast/regex/script-tests/parentheses.js
index 715b4d1..be6c690 100644
--- a/LayoutTests/fast/regex/script-tests/parentheses.js
+++ b/LayoutTests/fast/regex/script-tests/parentheses.js
@@ -77,6 +77,9 @@ var regexp25 = /^\s*(\*|[\w\-]+)(\b|$)?/;
 shouldBe("regexp25.exec('this is a test')", "['this','this',undefined]");
 shouldBeNull("regexp25.exec('!this is a test')");
 
+var regexp26 = /a(b)(a*)|aaa/;
+shouldBe("regexp26.exec('aaa')", "['aaa',undefined,undefined]");
+
 shouldBe("'Hi Bob'.match(/(Rob)|(Bob)|(Robert)|(Bobby)/)", "['Bob',undefined,'Bob',undefined,undefined]");
 
 var successfullyParsed = true;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list