Skip to content
  • ggaren@apple.com's avatar
    Some rope cleanup following r97827 · ffbe44d1
    ggaren@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=70398
    
    Reviewed by Oliver Hunt.
    
    9% speedup on date-format-xparb, neutral overall.
            
    - Removed RopeImpl*.
    - Removed JSString::m_fiberCount, since this can be deduced from other data.
    - Renamed a jsString() variant to jsStringFromArguments for clarity.
    
    * CMakeLists.txt:
    * GNUmakefile.list.am:
    * JavaScriptCore.order:
    * JavaScriptCore.pro:
    * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
    * JavaScriptCore.xcodeproj/project.pbxproj: Removed RopeImpl*.
    
    * dfg/DFGSpeculativeJIT.cpp:
    (JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
    (JSC::DFG::SpeculativeJIT::compileGetByValOnString):
    * jit/JITInlineMethods.h:
    (JSC::JIT::emitLoadCharacterString):
    * jit/JITPropertyAccess.cpp:
    (JSC::JIT::stringGetByValStubGenerator):
    * jit/JITPropertyAccess32_64.cpp:
    (JSC::JIT::stringGetByValStubGenerator):
    * jit/SpecializedThunkJIT.h:
    (JSC::SpecializedThunkJIT::loadJSStringArgument):
    * jit/ThunkGenerators.cpp:
    (JSC::stringCharLoad): Use a NULL m_value to signal rope-iness, instead
    of testing m_fiberCount, since m_fiberCount is gone now.
    
    * runtime/JSString.cpp:
    (JSC::JSString::RopeBuilder::expand):
    (JSC::JSString::visitChildren):
    (JSC::JSString::resolveRope):
    (JSC::JSString::resolveRopeSlowCase):
    (JSC::JSString::outOfMemory): Use a NULL fiber to indicate "last fiber
    in the vector" instead of testing m_fiberCount, since m_fiberCount is gone now.
    
    * runtime/JSString.h:
    (JSC::RopeBuilder::JSString):
    (JSC::RopeBuilder::finishCreation):
    (JSC::RopeBuilder::offsetOfLength):
    (JSC::RopeBuilder::isRope):
    (JSC::RopeBuilder::string): Removed m_fiberCount. Renamed
    jsString => jsStringFromArguments for clarity.
    
    * runtime/Operations.h:
    (JSC::jsStringFromArguments): Renamed.
    
    * runtime/RopeImpl.cpp: Removed.
    * runtime/RopeImpl.h: Removed.
    
    * runtime/SmallStrings.cpp:
    (JSC::SmallStrings::createEmptyString): Switched to StringImpl::empty,
    which is slightly faster.
    
    * runtime/StringPrototype.cpp:
    (JSC::stringProtoFuncConcat): Updated for rename.
    
    * wtf/text/StringImplBase.h:
    (WTF::StringImplBase::StringImplBase): Removed the concept of an invalid
    StringImpl, since this was only used by RopeImpl, which is now gone.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@97872 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    ffbe44d1