Ignore:
Timestamp:
Oct 8, 2009, 8:22:41 PM (16 years ago)
Author:
[email protected]
Message:

At long last, I pronounce the death of AllInOneFile.cpp.

Patch by Geoffrey Garen <[email protected]> on 2009-10-08
Reviewed by Maciej Stachowiak.

SunSpider reports a 1.01x speedup.

to compilation stages.

  • parser/Grammar.y:
  • parser/Lexer.cpp:
  • parser/Lexer.h:

(JSC::jscyylex):

  • runtime/ArrayConstructor.cpp:

(JSC::constructArrayWithSizeQuirk):

  • runtime/Collector.h:
  • runtime/JSCell.cpp:

(JSC::JSCell::operator new):

  • runtime/JSCell.h:

(JSC::JSCell::operator new):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::operator new):

  • runtime/JSNumberCell.h:

(JSC::JSNumberCell::operator new):

  • runtime/JSString.cpp:
  • runtime/JSString.h:

(JSC::jsString):
(JSC::jsSubstring):
(JSC::jsOwnedString):

  • runtime/RegExpConstructor.cpp:
  • runtime/RegExpConstructor.h:

(JSC::RegExpConstructorPrivate::RegExpConstructorPrivate):
(JSC::RegExpConstructorPrivate::lastOvector):
(JSC::RegExpConstructorPrivate::tempOvector):
(JSC::RegExpConstructorPrivate::changeLastOvector):
(JSC::RegExpConstructor::performMatch):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncMatch):

  • yarr/RegexJIT.cpp:
  • yarr/RegexJIT.h:

(JSC::Yarr::executeRegex): Inlined a few things that Shark said
were hot, on the presumption that AllInOneFile.cpp used to inline them
automatically.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/JSString.h

    r47780 r49365  
    168168        ASSERT(canGetIndex(i));
    169169        return jsSingleCharacterSubstring(globalData, m_value, i);
     170    }
     171
     172    inline JSString* jsString(JSGlobalData* globalData, const UString& s)
     173    {
     174        int size = s.size();
     175        if (!size)
     176            return globalData->smallStrings.emptyString(globalData);
     177        if (size == 1) {
     178            UChar c = s.data()[0];
     179            if (c <= 0xFF)
     180                return globalData->smallStrings.singleCharacterString(globalData, c);
     181        }
     182        return new (globalData) JSString(globalData, s);
     183    }
     184       
     185    inline JSString* jsSubstring(JSGlobalData* globalData, const UString& s, unsigned offset, unsigned length)
     186    {
     187        ASSERT(offset <= static_cast<unsigned>(s.size()));
     188        ASSERT(length <= static_cast<unsigned>(s.size()));
     189        ASSERT(offset + length <= static_cast<unsigned>(s.size()));
     190        if (!length)
     191            return globalData->smallStrings.emptyString(globalData);
     192        if (length == 1) {
     193            UChar c = s.data()[offset];
     194            if (c <= 0xFF)
     195                return globalData->smallStrings.singleCharacterString(globalData, c);
     196        }
     197        return new (globalData) JSString(globalData, UString::Rep::create(s.rep(), offset, length));
     198    }
     199
     200    inline JSString* jsOwnedString(JSGlobalData* globalData, const UString& s)
     201    {
     202        int size = s.size();
     203        if (!size)
     204            return globalData->smallStrings.emptyString(globalData);
     205        if (size == 1) {
     206            UChar c = s.data()[0];
     207            if (c <= 0xFF)
     208                return globalData->smallStrings.singleCharacterString(globalData, c);
     209        }
     210        return new (globalData) JSString(globalData, s, JSString::HasOtherOwner);
    170211    }
    171212
Note: See TracChangeset for help on using the changeset viewer.