[webkit-dev] nested scopes
Darin Adler
darin at apple.com
Tue Feb 24 09:33:29 PST 2009
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
More information about the webkit-dev
mailing list