On 24/02/2009, at 14:33, Darin Adler wrote:
On Feb 24, 2009, at 5:18 AM, Raj Kiran Talusani wrote:
I am developing a wrapper API on top of JavaScriptCore for
integration with my application.
Here is an overview of my API.
In my application scripts are executed and variables are defined in
different scopes. This example shows the functionality needed.
js_init(); - initialize
js_set_var("abc","2"); - set abc=2 in global scope
js_push_scope(); - create a new scope
js_set_var("abc","4"); - set abc=4 in new scope
js_print_var("abc"); - should print 4 as we are in new scope
js_pop_scope(); - pop most recent scope. i,e. the new scope
js_print_var("abc"); - Now it should print 2 because we are back to
global scope.
My question is what should i be doing in js_push_scope and
js_pop_scope so that a new JavaScript scope is created and destroyed.
If you are wrapping JavaScriptCore you should use the public API,
not the internals. The public API is in headers like JSBase.h,
JSValueRef.h, JSObjectRef.h, and JSClassRef.h. However, the public
API doesn't have any concept of explicitly creating scopes; instead
scopes are created by the engine automatically for the various
language constructs that require them. An explicit way to create a
scope doesn't seem to be necessary API for use of the engine, and
there are other reasons not to add it — different scopes have
different semantics in the language. I'm assuming this requirement
is baggage from whatever engine previously implemented this
js_push_scope API.
I don't know much about your project. Assuming that you need a general
purpose scripting language, this can be done easily with Lua. http://www.lua.org/manual/5.1/manual.html#lua_State
Regards,
--
Henrique Bastos
[email protected]
http://henriquebastos.net
+55 21 9618-6180
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev