Skip to content
  • fpizlo@apple.com's avatar
    Object properties added using dot syntax (o.f = ...) from code that isn't in... · 3d42314b
    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