• oliver@apple.com's avatar
    Cache getters and custom accessors on the prototype chain · 22b40a61
    oliver@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=125602
    
    Reviewed by Michael Saboff.
    
    Source/JavaScriptCore:
    
    Support caching of custom getters and accessors on the prototype chain.
    This is relatively trivial and just requires a little work compared to
    the direct access mode as we're under more register pressure.
    
    * bytecode/StructureStubInfo.h:
      Removed the unsued initGetByIdProto as it was confusing to still have it present.
    * jit/Repatch.cpp:
    (JSC::generateProtoChainAccessStub):
    (JSC::tryCacheGetByID):
    (JSC::tryBuildGetByIDList):
    
    Tools:
    
    Make sure bencher scripts also make noInline exist
    
    * Scripts/bencher:
    
    LayoutTests:
    
    Added a bunch of new tests
    
    * js/regress/chain-custom-getter-expected.txt: Added.
    * js/regress/chain-custom-getter.html: Added.
    * js/regress/chain-getter-access-expected.txt: Added.
    * js/regress/chain-getter-access.html: Added.
    * js/regress/proto-custom-getter-expected.txt: Added.
    * js/regress/proto-custom-getter.html: Added.
    * js/regress/proto-getter-access-expected.txt: Added.
    * js/regress/proto-getter-access.html: Added.
    * js/regress/resources/regress-pre.js:
      Made sure that noInline always exists (either using testRunner.neverInlineFunction
      or a no-op function if nothing else is available)
    * js/regress/script-tests/chain-custom-getter.js: Added.
    (foo):
    * js/regress/script-tests/chain-getter-access.js: Added.
    (o.get value):
    (foo):
    * js/regress/script-tests/proto-custom-getter.js: Added.
    (foo):
    * js/regress/script-tests/proto-getter-access.js: Added.
    (o.get value):
    (foo):
    * js/regress/script-tests/simple-custom-getter.js: Added.
    (cycles.30000.numberObject.Number.foo):
    * js/regress/script-tests/simple-getter-access.js: Added.
    (o.get value):
    (foo):
    * js/regress/simple-custom-getter-expected.txt: Added.
    * js/regress/simple-custom-getter.html: Added.
    * js/regress/simple-getter-access-expected.txt: Added.
    * js/regress/simple-getter-access.html: Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160670 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    22b40a61