That makes great sense to me and would be much appreciated. Though I'll 
admit I don't really understand what it means to call a FunctionTemplate. I 
guess for C++ code there really isn't any containing JS scope so the 
distinction between Function and FunctionTemplate is kinda (largely?) 
meaningless?    

On Thursday, December 10, 2015 at 1:25:38 PM UTC-8, Toon Verwaest wrote:
>
> The reasoning behind this change is that in the future we'll have 
> FunctionTemplates that can be called through accessors without even 
> allocating the JSFunction. Registering the last called value isn't possible 
> in that case...
>
> Perhaps rather than fully getting rid of the parameter we should change 
> the API to pass undefined if there is no closure. In that case the 
> FunctionTemplate would need to be instantiated manually through the API to 
> get to the callee.
>
> Wdyt Enrico?
> Toon
>
> On Thu, Dec 10, 2015, 20:59 Alex Kodat <[email protected] <javascript:>> 
> wrote:
>
>> Sorry if this would have been more appropriate on v8-dev but just 
>> downloaded the latest and greatest 4.9 commit and discovered that Callee is 
>> no longer available in FunctionCallBackInfo. While I'm sure there was a 
>> good reason for this, my sample size of one embedder registers one "ouch". 
>> Dunno if this affects any other embedders but I guess this is a head's up 
>> in case anyone wants to check.
>>
>> I currently use Callee as a convenience when passing around 
>> FunctionCallBackInfo: for adding the function name to a Throw or as 
>> debugging information it's very convenient. Callee is also very useful in 
>> the common pattern of allowing a constructor to be called without a New and 
>> invoking it as a constructor under the covers: 
>> args.Callee()->NewInstance(argc, argsForConstructor). 
>>
>> The former use is easy to work around but painful as I now need to add an 
>> extra parameter to a ton of internal C++ methods. The latter is more 
>> challenging as I now need to add a persistent reference to all my C++ 
>> constructors. 
>>
>> I guess I'll just suck it up but if this affects anyone else one way to 
>> help people deal with this would be to keep a weak reference in the Isolate 
>> to last C++ function called that's made available via something like 
>> isolate->LastCallee(). I'd be happy to submit a project to add such a call 
>> (obviously on purely selfish grounds) but I suspect it would be 
>> (justifiably) rejected if I'm the world's only user of Callee. 
>>
>> So are there any others out there?
>>
>> Thanks
>>
>> -- 
>> -- 
>> v8-users mailing list
>> [email protected] <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 [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
-- 
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/d/optout.

Reply via email to