Title: [221167] trunk/Source/_javascript_Core
Revision
221167
Author
msab...@apple.com
Date
2017-08-24 16:03:27 -0700 (Thu, 24 Aug 2017)

Log Message

Enable moving fixed character class terms after fixed character terms for BMP only character classes
https://bugs.webkit.org/show_bug.cgi?id=175958

Reviewed by Saam Barati.

Currently we don't perform the reordering optimiaztion of fixed character terms that
follow fixed character class terms for Unicode patterns.

This change allows that reordering when the character class contains only BMP
characters.

This fix is covered by existing tests.

* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::optimizeAlternative):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (221166 => 221167)


--- trunk/Source/_javascript_Core/ChangeLog	2017-08-24 22:43:08 UTC (rev 221166)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-08-24 23:03:27 UTC (rev 221167)
@@ -1,5 +1,23 @@
 2017-08-24  Michael Saboff  <msab...@apple.com>
 
+        Enable moving fixed character class terms after fixed character terms for BMP only character classes
+        https://bugs.webkit.org/show_bug.cgi?id=175958
+
+        Reviewed by Saam Barati.
+
+        Currently we don't perform the reordering optimiaztion of fixed character terms that
+        follow fixed character class terms for Unicode patterns.
+
+        This change allows that reordering when the character class contains only BMP
+        characters.
+
+        This fix is covered by existing tests.
+
+        * yarr/YarrJIT.cpp:
+        (JSC::Yarr::YarrGenerator::optimizeAlternative):
+
+2017-08-24  Michael Saboff  <msab...@apple.com>
+
         Add support for RegExp "dotAll" flag
         https://bugs.webkit.org/show_bug.cgi?id=175924
 

Modified: trunk/Source/_javascript_Core/yarr/YarrJIT.cpp (221166 => 221167)


--- trunk/Source/_javascript_Core/yarr/YarrJIT.cpp	2017-08-24 22:43:08 UTC (rev 221166)
+++ trunk/Source/_javascript_Core/yarr/YarrJIT.cpp	2017-08-24 23:03:27 UTC (rev 221167)
@@ -148,7 +148,7 @@
 
     void optimizeAlternative(PatternAlternative* alternative)
     {
-        if (!alternative->m_terms.size() || m_decodeSurrogatePairs)
+        if (!alternative->m_terms.size())
             return;
 
         for (unsigned i = 0; i < alternative->m_terms.size() - 1; ++i) {
@@ -158,7 +158,7 @@
             // We can move BMP only character classes after fixed character terms.
             if ((term.type == PatternTerm::TypeCharacterClass)
                 && (term.quantityType == QuantifierFixedCount)
-                && (!term.characterClass->m_hasNonBMPCharacters)
+                && (!m_decodeSurrogatePairs || !term.characterClass->m_hasNonBMPCharacters)
                 && (nextTerm.type == PatternTerm::TypePatternCharacter)
                 && (nextTerm.quantityType == QuantifierFixedCount)) {
                 PatternTerm termCopy = term;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to