Ignore:
Timestamp:
Mar 31, 2014, 6:10:35 PM (11 years ago)
Author:
[email protected]
Message:

REGRESSION(r166415): JSObject{Get,Set}Private() don't work with proxies objects
https://bugs.webkit.org/show_bug.cgi?id=130992

Reviewed by Mark Hahnenberg.

Forward JSObjectGetPrivate() and JSObjectSetPrivate() to the wrapped object.

  • API/JSObjectRef.cpp:

(JSObjectGetPrivate):
(JSObjectSetPrivate):

  • API/tests/testapi.c:

(main): Added new test case to validate we are properly foarwarding.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/API/JSObjectRef.cpp

    r165676 r166554  
    452452{
    453453    JSObject* jsObject = uncheckedToJS(object);
    454    
     454
     455    // Get wrapped object if proxied
     456    if (jsObject->inherits(JSProxy::info()))
     457        jsObject = jsCast<JSProxy*>(jsObject)->target();
     458
    455459    if (jsObject->inherits(JSCallbackObject<JSGlobalObject>::info()))
    456460        return jsCast<JSCallbackObject<JSGlobalObject>*>(jsObject)->getPrivate();
     
    468472{
    469473    JSObject* jsObject = uncheckedToJS(object);
    470    
     474
     475    // Get wrapped object if proxied
     476    if (jsObject->inherits(JSProxy::info()))
     477        jsObject = jsCast<JSProxy*>(jsObject)->target();
     478
    471479    if (jsObject->inherits(JSCallbackObject<JSGlobalObject>::info())) {
    472480        jsCast<JSCallbackObject<JSGlobalObject>*>(jsObject)->setPrivate(data);
Note: See TracChangeset for help on using the changeset viewer.