[webkit-dev] KJS::JSObject question

browserwk browserwk at gmail.com
Fri May 15 02:54:30 PDT 2009


Maybe you need check out the JavaScriptCore/API directory.

Following file is need carefully.

JavaScriptCore/API/tests/testapi.c

Thanks.

-Xiong

-------- Original Message  --------
Subject: Re: [webkit-dev] KJS::JSObject question
From: Jack Wootton <jackwootton at gmail.com>
To: Darin Adler <darin at apple.com>
Cc: "webkit-dev at lists.webkit.org" <webkit-dev at lists.webkit.org>
Date: 2009Äê05ÔÂ15ÈÕ ÐÇÆÚÎå 17ʱ40·Ö40Ãë

> OK.  It seems I was on completely the wrong track.  I was under the
> impression WebKit didn't have public and non public APIs as such, at
> least I haven't read anything to this effect.  Where can I read what
> the published Vs non published APIs are?  Or which ones I should use
> and which ones I shouldn't?
> 
> On Thu, May 14, 2009 at 6:02 PM, Darin Adler <darin at apple.com> wrote:
>> On May 14, 2009, at 8:03 AM, Jack Wootton wrote:
>>
>>> My question:  I do not understand how JSObject can be used to allow for
>>> the JavaScript syntax of : myNewJSObject.someObject.hello().
>> My first comment is that you should not be using JSObject directly. The
>> right way to do this is to use the C-based public API of JavaScriptCore,
>> which includes types like JSObjectRef. The JSObject internal interface is
>> constantly being changed and not suitable for use outside the WebKit
>> project.
>>
>> In JavaScript, if you want:
>>
>>    a.b.c()
>>
>> to work, then the object "a" need a property "b" with a property "c" that is
>> callable as a function. At each level, the object can just be a general
>> purpose object with a property attached, which can be set up with functions
>> like JSObjectSetProperty, or the property can come from the object’s
>> prototype, or the property can be “built in to the object, which can by
>> done with JSClassCreate supplying a JSObjectGetPropertyCallback function.
>>
>> When it comes to the value of the property named "c", to make something
>> callable as a function, you can either use an actual compiled JavaScript
>> function, one of the built in JavaScript functions such as
>> String.prototype.toLowerCase or you can make an object that acts like a
>> function using JSClassCreate supplying a JSObjectCallAsFunctionCallback
>> function.
>>
>>    -- Darin
>>
>>
> 
> 
> 


More information about the webkit-dev mailing list