I noticed something else. Whatever value I set using *info.GetReturnValue().Set(), *I am able to see when I do this : *console.log(cppVariable.__proto__);* What maybe the reason for that?
regards, Anoop R. S. On Wednesday, 9 May 2018 19:42:35 UTC+5:30, Anoop R. S. wrote: > > Also, when I do a mouse over on the variable p, > *AccessorGetterCallbackFunction* is invoked, which makes me believe that > this function is responsible for displaying the content of the variable. > But whatever value I set, *v8::Integer* or *v8:String*, it is displayed > blank. > > regards, > Anoop R. S. > > On Wednesday, 9 May 2018 19:35:59 UTC+5:30, Anoop R. S. wrote: >> >> Thank you all for your replies. >> But my intention is different. Let me be more specific: >> I want others to debug the JavaScript code but not the c++ part. They >> will use chrome devtools to do that. So, when they encounter any c++ object >> that is made available to Javascript, I would like to display some custom >> information about it. >> >> While wrapping the object, I implimented *GenericNamedPropertyGetterCallback >> *and called *SetHandler* to set it to the *ObjectTemplate* using >> function *NamedPropertyHandlerConfiguration* >> >> point_object_template->SetHandler( >> v8::NamedPropertyHandlerConfiguration(AccessorGetterCallbackFunction,0, >> NamedPropertyQueryCallbackFunction)); >> >> The function is implemented as follows: >> void AccessorGetterCallbackFunction(v8::Local<v8::Name> property, const >> v8::PropertyCallbackInfo<v8::Value>& info) >> { >> auto pointPtr = UnwrapPoint(info.Holder()); >> bool bIsString = property->IsString(); >> std::string accessed_property; >> auto value = v8::Local<v8::String>::Cast(property); >> v8::String::Utf8Value utf8_value(v8::Local<v8::String>::Cast(property)); >> accessed_property = *utf8_value; >> if (accessed_property == "x") >> >> info.GetReturnValue().Set(v8::Integer::New(info.GetIsolate(), pointPtr-> >> x_)); >> >> else if (accessed_property == "y") >> >> info.GetReturnValue().Set(v8::Integer::New(info.GetIsolate(), pointPtr-> >> y_)); >> >> } >> >> The content of p is coming as {} as shown below. >> >> >> <https://lh3.googleusercontent.com/-JE5N1GWgBZY/WvL8eaJ88OI/AAAAAAAAFdI/rfNwKshqsqUVH7y7VetfcWHqmcp-ae9dACLcBGAs/s1600/Capture.PNG> >> Are there any callbacks are available to set the content that is >> displayed as value of p? Also, other than x and y, which are members of >> *Point, >> *another property named *splice* is showing up. When is this property >> accessed? >> Please let me know if you have any information. >> >> regards, >> Anoop R. S. >> >> On Wednesday, 9 May 2018 17:44:12 UTC+5:30, ibon wrote: >>> >>> Hey, I do this all the time with android studio. >>> I have an android app with embedded v8, and debug both native c++ and >>> javascript seamlessly. >>> >>> El martes, 8 de mayo de 2018, 6:35:12 (UTC+2), Anoop R. S. escribió: >>>> >>>> Hi All, >>>> I am trying out a debugger prototype using the remote debugger >>>> protocol. >>>> Going by the standard example in Embedder's Guide: >>>> C++ class: >>>> ------------- >>>> class Point { >>>> public: >>>> Point(int x, int y) : x_(x), y_(y) { } >>>> int x_, y_; >>>> } >>>> >>>> Usage in JavaScript: >>>> --------------------------- >>>> var p = Point(1,2); >>>> >>>> Has anyone tried debugging a wrapped C++ object that is being returned >>>> to Javascript? Is it possible? >>>> >>>> regards, >>>> Anoop R. S. >>>> >>> -- -- 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.