https://bugs.webkit.org/show_bug.cgi?id=120052
authorbarraclough@apple.com <barraclough@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Aug 2013 17:07:02 +0000 (17:07 +0000)
committerbarraclough@apple.com <barraclough@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Aug 2013 17:07:02 +0000 (17:07 +0000)
commitbe6edf5bad83d3efa3ab58e8bbf7229b190577be
treede73dc1dc69fadaffa9995e321c9b0b492aee3a2
parentcdce20ff6eb105b759f0e96eaeca63663718a60c
https://bugs.webkit.org/show_bug.cgi?id=120052
Remove custom getOwnPropertyDescriptor for JSProxy

Reviewed by Geoff Garen.

GET_OWN_PROPERTY_DESCRIPTOR_IMPL runs afoul with JSProxy due to the workaround for JSDOMWindow's broken behavior.
Because the window object incorrectly searches the prototype chain in getOwnPropertySlot we check that the base
object matches, but in the case of JSProxy we can end up comparing the window object to the window shell & falsely
assuming this is a prototype property. Add toThis conversion to correctly identify proxied own access. I've kept
the original slotBase check as a fast case, and also so that direct access on JSDOMWindow still works.

* runtime/JSProxy.cpp:
    - Remove custom getOwnPropertyDescriptor implementation.
* runtime/PropertyDescriptor.h:
    - Modify own property access check to perform toThis conversion.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@154334 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/JSProxy.cpp
Source/JavaScriptCore/runtime/PropertyDescriptor.h