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 <zbendef...@gmail.com> 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-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
>> <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/CAA2GJqW2_%2B0NQ6md-A69bJbRKUOJJu-9xMQvO3e2ai8DrL7LxA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to