On Jan 7, 2009, at 11:50 AM, Martin Wengenmayer wrote:
Hi,
I'm want to embed the JavaScriptCore into my application but I have
some problems. So far I only found the JSPong example for embedding
which didn't answer my question.
I want to create a simple Vector3f class which can be used in
scripts like the String or Array types. But I couldn't figure out
how to set it up so that I can create objects with "new". I want the
class to work like this example.
var a = new Vector3f(0,1,0);
var b = new Vector3f(1,1,1);
var c = a.add(b);
Is that possible with JavaScriptCore?
Yes, it's possible. Here are the steps you need to take:
1) Create a Vector3f class using JSClassCreate.
2) Make a constructor for the Vector3f using JSObjectMakeConstructor,
passing the class from step 1 and a function that uses JSObjectMake
with the class to create the object.
3) Add the constructor from step 2 to the global namespace, using
JSObjectSetProperty on the global object, which you can retrieve using
JSContextGetGlobalObject.
After these 3 steps, JS code will see a global variable named Vector3f
which holds your newly created constructor. At that point, your code
using "new" should work.
Regards,
Maciej
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev