JavaScriptCore:
2008-10-03 Maciej Stachowiak <[email protected]>
Reviewed by Cameron Zwarich.
I changed things so that functions which use "this" do a fast
version of toThisObject conversion if needed. Currently we miss
the conversion entirely, at least for primitive types. Using
TypeInfo and the primitive check, I made the fast case bail out
pretty fast.
This is inexplicably an 1.007x SunSpider speedup (and a wash on V8 benchmarks).
Also renamed some opcodes for clarity:
init ==> enter
init_activation ==> enter_with_activation
- VM/CTI.cpp:
(JSC::CTI::privateCompileMainPass):
(JSC::CTI::privateCompileSlowCases):
- VM/CodeBlock.cpp:
(JSC::CodeBlock::dump):
- VM/CodeGenerator.cpp:
(JSC::CodeGenerator::generate):
(JSC::CodeGenerator::CodeGenerator):
- VM/Machine.cpp:
(JSC::Machine::privateExecute):
(JSC::Machine::cti_op_convert_this):
- VM/Machine.h:
- VM/Opcode.h:
- kjs/JSActivation.cpp:
(JSC::JSActivation::JSActivation):
- kjs/JSActivation.h:
(JSC::JSActivation::createStructureID):
- kjs/JSCell.h:
(JSC::JSValue::needsThisConversion):
- kjs/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
- kjs/JSGlobalData.h:
- kjs/JSNumberCell.h:
(JSC::JSNumberCell::createStructureID):
- kjs/JSStaticScopeObject.h:
(JSC::JSStaticScopeObject::JSStaticScopeObject):
(JSC::JSStaticScopeObject::createStructureID):
- kjs/JSString.h:
(JSC::JSString::createStructureID):
- kjs/JSValue.h:
- kjs/TypeInfo.h:
(JSC::TypeInfo::needsThisConversion):
- kjs/nodes.h:
(JSC::ScopeNode::usesThis):
WebCore:
2008-10-03 Maciej Stachowiak <[email protected]>
Reviewed by Cameron Zwarich.
Updated so toThis conversion for the split window is handled properly.
- bindings/scripts/CodeGeneratorJS.pm:
LayoutTests:
2008-10-03 Maciej Stachowiak <[email protected]>
Reviewed by Cameron Zwarich.
- test case for: "this" object in methods called on primitives should be wrapper object
- fast/js/primitive-method-this-expected.txt: Added.
- fast/js/primitive-method-this.html: Added.
- fast/js/resources/primitive-method-this.js: Added.