thanks, I'm struggling between function() { return ( "expression" ) } and 
running a script like: with(myContextProxy){ "expression" }. The latter 
allows me to handle this.x and x resolution separately as well but has 
other drawbacks (this is still not the object I want it to be so I cant put 
it into a storage, also functions created in the expression will store the 
wrong 'this'... so its not an easy issue :) 



2019. június 22., szombat 5:00:52 UTC+2 időpontban J Decker a következőt 
írta:
>
>
> Sorry I did reflect that there's probably cases of simpler expessions.
> You could limit it to just no semicolons, and only allow commas, then you 
> could just put it in a `()=>(/*expression without return*/)`
> but that doesn't let you pass a this.
>
> so you could make a  `function() { return ` + (your expression ) + ` } `  
> could get a 'this'.
> In the V8 engine though, args do have 'Holder()' and 'This()' and I'm not 
> entirely sure how they differ, but most of my code is actually using 
> Holder() to unwrap and get my object from.
>
>
>> But; go go back to the start, what value would you want to return from a 
>> constructor other than the constructed 'this'?
>>
>>
>> On Fri, Jun 21, 2019 at 2:56 AM Zoltan B <zben...@gmail.com <javascript:>> 
>> wrote:
>>
>>> 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> 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
>>>> 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/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-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/44b2bf8b-888c-4dc9-bc21-e0b570f4d9c2%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/v8-users/44b2bf8b-888c-4dc9-bc21-e0b570f4d9c2%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/3e5e79f4-9bc6-473d-9ca1-f166a1dcb7fd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to