[Back to this one year later :D]

I defined a new public member on v8::Function called 'GetData' that returns
the data argument specified when the function was created. Seems to be
working fine, here's the code in case someone wants to give it a quick
glance:
















*v8::Local<v8::Value> Function::GetData() const {  i::Handle<i::JSReceiver>
self = Utils::OpenHandle(this);  i::Isolate* isolate = self->GetIsolate();
if(self->IsJSFunction()) {    i::Handle<i::JSFunction> jsf =
i::Handle<i::JSFunction>::cast(self);    i::SharedFunctionInfo sfi =
jsf->shared();    if(sfi.IsApiFunction()) {      i::FunctionTemplateInfo
fti = sfi.get_api_func_data();      i::CallHandlerInfo chi =
i::CallHandlerInfo::cast(fti.call_code());      i::Object o = chi.data();
    i::Handle<i::Object> ho = i::Handle<i::Object>(o, isolate);      return
ToApiHandle<v8::Value>(ho);    }  }  return
v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate));}*

It is very verbose on purpose. I will submit a CL soon, I am reading the
requirements :)

Best,
Alex.

On Fri, Apr 12, 2019 at 9:27 AM Al Mo <almos...@gmail.com> wrote:

> I eventually solved it by binding a Private symbol with an external value
> to the Function object.
>
> That solves it for the moment. I would love to contribute back to v8 but
> I'm very limited in time now. As soon as I find some time, I will submit a
> CL with an approach based on your suggestion.
>
> Thanks.
>
> On Sunday, April 7, 2019 at 2:43:31 AM UTC+3, Al Mo wrote:
>>
>> I'm new here so first of all: Hi Everyone :D
>>
>> So, let's say I make a function this way:
>>
>> v8::Function::New(<Isolate>, <C_Function>, <Data_Value>);
>>
>>
>> I can then get the <Data_Value> when the Function is invoked with
>> something like: FunctionCallbackInfo->GetData().
>>
>> This is useful for many things. I'm looking for a way to be able to
>> inspect this data value for a previously defined Function object. Something
>> like Function->GetData(), you get the idea.
>>
>> So far I haven't succeeded and I've read the docs from a to z. Any ideas?
>>
> --
> --
> 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.
> 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/CABK7q5dfj%2BWZTm4hEejiNnNqwKvPuvSMDhO%3DRhw9jfhTY5WgJA%40mail.gmail.com.

Reply via email to