[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.