JavaScriptCore:
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