Thanks, i will implement it this way.

2013/10/4 Ben Noordhuis <[email protected]>:
> On Thu, Oct 3, 2013 at 5:11 PM, ChaRles Lew <[email protected]> wrote:
>> Hi, i'm a newbie on using v8. I'm trying to embedded v8 into a c++
>> application and provide javascript as an extension language.
>> Now i'm seeking a way to invoke javascript code (as a string) from c++
>> environment, with a specific object as 'this'.
>>
>> We may have some c++ strings containing javascript expressions like
>>
>> "this.propA + globalObjectX.propB"
>>
>> which accesses properties of a specific object as 'this'. I'm able to obtain
>> the Handle<Object> of that specific object and the Context which contains
>> globalObjectX.
>>
>> I can think of some ways like direct eval call which involves some
>> javascript code that seems to be able to get this working. But I'm wondering
>> what is the proper and reasonably efficient way to execute this code from
>> C++ environment.  Thanks a lot.
>
> The `this` object is customizable only when JS code is invoked as a
> function.  In node.js, we have some bootstrap code that's invoked with
> v8::Script::Run().  It returns a JS function, which is then invoked in
> the context of another object.  IOW:
>
>     // Caveat emptor: error handling elided for the sake of brevity
>     const char source[] = "(function() { /* Your code here. */ })";
>     Local<String> script_source = String::New(source, sizeof(source) - 1);
>     Local<Script> script = Script::New(source);
>     Local<Value> rval = script->Run();
>     Local<Function> fn = rval.As<Function>();
>     Local<Object> this_object = /* ... */;
>     fn->Call(this_object, 0, NULL);
>
> --
> --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to the Google Groups 
> "v8-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.



-- 
Wir müssen wissen; wir werden wissen!
CrLF.0710

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to