• mjs@apple.com's avatar
    JavaScriptCore: · a173abd0
    mjs@apple.com authored
    2008-09-22  Maciej Stachowiak  <mjs@apple.com>
    
            Reviewed by Dave Hyatt.
            
            Based on initial work by Darin Adler.
            
            - replace masqueradesAsUndefined virtual method with a flag in TypeInfo
            - use this to JIT inline code for eq_null and neq_null
            https://bugs.webkit.org/show_bug.cgi?id=20823
    
            0.5% speedup on SunSpider
            ~4% speedup on Richards benchmark
            
            * VM/CTI.cpp:
            (JSC::CTI::privateCompileMainPass):
            * VM/Machine.cpp:
            (JSC::jsTypeStringForValue):
            (JSC::jsIsObjectType):
            (JSC::Machine::privateExecute):
            (JSC::Machine::cti_op_is_undefined):
            * VM/Machine.h:
            * kjs/JSCell.h:
            * kjs/JSValue.h:
            * kjs/StringObjectThatMasqueradesAsUndefined.h:
            (JSC::StringObjectThatMasqueradesAsUndefined::create):
            (JSC::StringObjectThatMasqueradesAsUndefined::createStructureID):
            * kjs/StructureID.h:
            (JSC::StructureID::mutableTypeInfo):
            * kjs/TypeInfo.h:
            (JSC::TypeInfo::TypeInfo):
            (JSC::TypeInfo::masqueradesAsUndefined):
            * kjs/operations.cpp:
            (JSC::equal):
            * masm/X86Assembler.h:
            (JSC::X86Assembler::):
            (JSC::X86Assembler::setne_r):
            (JSC::X86Assembler::setnz_r):
            (JSC::X86Assembler::testl_i32m):
    
    WebCore:
    
    2008-09-22  Maciej Stachowiak  <mjs@apple.com>
    
            Reviewed by Dave Hyatt.
    
            Based on initial work by Darin Adler.
            
            - replace masqueradesAsUndefined virtual method with a flag in TypeInfo
            - use this to JIT inline code for eq_null and neq_null
            https://bugs.webkit.org/show_bug.cgi?id=20823
            
            * WebCore.xcodeproj/project.pbxproj:
            * WebCore.vcproj/WebCore.vcproj:
            * bindings/js/JSCSSStyleDeclarationCustom.cpp:
            (WebCore::JSCSSStyleDeclaration::nameGetter):
            * bindings/js/JSHTMLAllCollection.cpp: Added.
            (WebCore::):
            * bindings/js/JSHTMLAllCollection.h:
            (WebCore::JSHTMLAllCollection::createStructureID):
            (WebCore::JSHTMLAllCollection::toBoolean):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@36764 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    a173abd0
JSValue.h 8.19 KB