[webkit-dev] JSObjectMakeFunction question

Maciej Stachowiak mjs at apple.com
Mon Jun 1 08:56:32 PDT 2009


On Jun 1, 2009, at 8:29 AM, Jack Wootton wrote:

> It seems some casting is required for this though?
>
>
> JSValueRef JSObjectCallAsFunction(

[snip]

> The above function accepts a JSObjectRef object.
>
>
> However
>
> JSValueRef JSObjectGetProperty(

[snip]

>
> returns JSValueRef

Setting aside the actual typedefs (which are our attempt to trick the  
C type system), JavaScript has objects and some primitive values that  
are not objects. So every object is a kind of value, but not all  
values are objects.

JSObjectGetProperty retrieves a property from an object, and it can't  
guarantee whether the result will be an object or a primitive, so it  
returns JSValueRef. If you can be certain the value is in fact an  
object (functions are a kind of object), you can just downcast. If you  
are not certain (for example the property can be defined or altered by  
script), you can use JSValueIsObject to check before casting.

Regards,
Maciej



More information about the webkit-dev mailing list