Changeset 221167 in webkit


Ignore:
Timestamp:
Aug 24, 2017 4:03:27 PM (7 years ago)
Author:
msaboff@apple.com
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):

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r221160 r221167  
     12017-08-24  Michael Saboff  <msaboff@apple.com>
     2
     3        Enable moving fixed character class terms after fixed character terms for BMP only character classes
     4        https://bugs.webkit.org/show_bug.cgi?id=175958
     5
     6        Reviewed by Saam Barati.
     7
     8        Currently we don't perform the reordering optimiaztion of fixed character terms that
     9        follow fixed character class terms for Unicode patterns.
     10
     11        This change allows that reordering when the character class contains only BMP
     12        characters.
     13
     14        This fix is covered by existing tests.
     15
     16        * yarr/YarrJIT.cpp:
     17        (JSC::Yarr::YarrGenerator::optimizeAlternative):
     18
    1192017-08-24  Michael Saboff  <msaboff@apple.com>
    220
  • trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp

    r221160 r221167  
    149149    void optimizeAlternative(PatternAlternative* alternative)
    150150    {
    151         if (!alternative->m_terms.size() || m_decodeSurrogatePairs)
     151        if (!alternative->m_terms.size())
    152152            return;
    153153
     
    159159            if ((term.type == PatternTerm::TypeCharacterClass)
    160160                && (term.quantityType == QuantifierFixedCount)
    161                 && (!term.characterClass->m_hasNonBMPCharacters)
     161                && (!m_decodeSurrogatePairs || !term.characterClass->m_hasNonBMPCharacters)
    162162                && (nextTerm.type == PatternTerm::TypePatternCharacter)
    163163                && (nextTerm.quantityType == QuantifierFixedCount)) {
Note: See TracChangeset for help on using the changeset viewer.