-
fpizlo@apple.com authored
Object properties added using dot syntax (o.f = ...) from code that isn't in eval should be less likely to cause an object to become a dictionary https://bugs.webkit.org/show_bug.cgi?id=119897 Source/JavaScriptCore: Reviewed by Oliver Hunt. 6-10x speed-up on microbenchmarks that create large static objects. 40-65% speed-up on Octane/gbemu. 3% overall speed-up on Octane. No slow-downs anywhere; our ability to turn objects into dictionaries when you're storing using bracket syntax or using eval is still in place. * bytecode/CodeBlock.h: (JSC::CodeBlock::putByIdContext): * dfg/DFGOperations.cpp: * jit/JITStubs.cpp: (JSC::DEFINE_STUB_FUNCTION): * llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): * runtime/JSObject.h: (JSC::JSObject::putDirectInternal): * runtime/PutPropertySlot.h: (JSC::PutPropertySlot::PutPropertySlot): (JSC::PutPropertySlot::context): * runtime/Structure.cpp: (JSC::Structure::addPropertyTransition): * runtime/Structure.h: LayoutTests: Reviewed by Oliver Hunt. * fast/js/regress/lots-of-fields-expected.txt: Added. * fast/js/regress/lots-of-fields.html: Added. * fast/js/regress/script-tests/lots-of-fields.js: Added. (foo): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154199 268f45cc-cd09-0410-ab3c-d52691b4dbfc
3d42314b