Thank you!

Also, In the case I'm running a Script (and not a function), if I write 
"myvariable" or "this.myvariable" then is there a way to distuingish 
between the two in the C++ side? Currently how I'm using it is like this: 
The context the script runs in has a global object with my template, so 
that I can provide external name resolution for contexts. However 
"myvariable" and "this.myvariable" both call the same global object, so if 
I could distuingish between the two, I could provide separate name 
resolution for 'this' and contextual variables.

2019. június 21., péntek 10:01:47 UTC+2 időpontban Caitlin Potter a 
következőt írta:
>
> No, that method would still require a return statement. Getting rid of the 
> return statement requirement would need a new API, or transforming the 
> source program before using it.
>
> On Jun 21, 2019, at 3:27 AM, Zoltan B <zben...@gmail.com <javascript:>> 
> wrote:
>
> Thanks for your answer! :)
>
> In the (1) solution of yours, is there a way to be able to create 
> functions that behave like scripts? I mean, that if I write onclick="1+1", 
> then if I parse and run "1+1" as a function it would return 2 without using 
> the "return" keyword (e.g.: "return 1+1")?
>
> 2019. június 20., csütörtök 16:04:53 UTC+2 időpontban Caitlin Potter a 
> következőt írta:
>>
>> I don’t believe you can do exactly what you want here, as there are two 
>> parts:
>>
>> 1) getting `this` set properly. I believe you should be able to use 
>> `CompileFunctionInContext()` to this effect, which is used to provide 
>> implicit arguments to DOM onxxx=“script...” handlers. I believe you can 
>> then make `this` whatever you want in that function. Return statements 
>> would still be legal, as they are in DOM events, though.
>>
>> 2) completion value of the script. This is trickier, as the v8 API does 
>> not expose a way to run the AST rewriter on arbitrary functions afaict. It 
>> may be possible to introduce an API for this, if it’s important.
>>
>> You might be able to take a third option, transforming the code with a 
>> custom Babel plugin before passing it to v8 (at runtime), and providing the 
>> sourcemap info along with it for debugging purposes.
>>
>> On Jun 20, 2019, at 9:49 AM, Zoltan B <zben...@gmail.com> wrote:
>>
>> Any ideas? :)
>>
>> 2019. június 7., péntek 13:16:08 UTC+2 időpontban Zoltan B a következőt 
>> írta:
>>>
>>> Hi!
>>>
>>> Is there a way to provide value for the 'this' keyword, when I'm running 
>>> a v8 Script? 
>>>
>>> An alternative would be to compile the code as a function instead, and 
>>> provide 'this' when calling it trough 'recv', but then I would have other 
>>> issues: running a script like this: "1+1" would not return 2 as a result, 
>>> as I would have to explicitly put a "return" in front of "1+1", so the 
>>> function will return the script's value. This seems to be error prone, not 
>>> to mention that script locations will skew when viewed from DevTools. Using 
>>> "return eval('1+1')" would work, but it kills performance due to the eval.
>>>
>>> -- 
>> -- 
>> v8-users mailing list
>> v8-u...@googlegroups.com
>> 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 v8-u...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/v8-users/746a4d9f-d364-4506-8783-347eee5dad6c%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/v8-users/746a4d9f-d364-4506-8783-347eee5dad6c%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>> -- 
> -- 
> v8-users mailing list
> v8-u...@googlegroups.com <javascript:>
> 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 v8-u...@googlegroups.com <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/v8-users/edc28096-a090-4188-9828-11ed67ddd6c1%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/v8-users/edc28096-a090-4188-9828-11ed67ddd6c1%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
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 v8-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-users/44b2bf8b-888c-4dc9-bc21-e0b570f4d9c2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to