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.
-- Darin
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev