Cache getters and custom accessors on the prototype chain
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
25 files changed