I'd suggest implementing the other parts of the interceptor and see if 
they're getting called.. and if so, make sure to implement them properly 
for your object.

This is just the approach I would take without really understanding why 
you're seeing this behavior..

On Friday, September 22, 2017 at 4:41:59 AM UTC-7, Alexandre Parenteau 
wrote:
>
> Hi,
>
> Using V8 5.1.
>
> I have this function template class "Group":
>
> templ->SetClassName(v8::String::NewFromUtf8(isolateP, "Group"));
>
>   v8::Handle<v8::ObjectTemplate> inst = templ->InstanceTemplate();
> inst->SetInternalFieldCount(1);
>
> I set an accessor "foo", and this one gets always called when doing 
> "group.foo":
>
> inst->SetAccessor(v8::String::NewFromUtf8(isolateP,* "foo"*), 
> getProperty, 0, v8::Int32::New(42));
>
> The interceptor intercepts "bar". GroupNamedQueryInterceptor returns 
> "v8::PropertyAttribute::None" for "bar"
>
> inst->SetHandler(v8::NamedPropertyHandlerConfiguration(
> *GroupNamedPropertyGetter*, NULL, *GroupNamedQueryInterceptor*, NULL, 
> NULL,
> v8::Local<v8::Value>(),
> v8::PropertyHandlerFlags(0)));
>
> The initial instance is created with:
>
> v8::Handle<v8::Object> instance = ...>GetFunction()->NewInstance();
>
> And added to the global scope as "group" of class "Group"
>
> When executing "group.bar", I get in the interceptor 
> *GroupNamedQueryInterceptor*. The getter *GroupNamedPropertyGetter* creates 
> a *new instance* of same class "Group", and returns it.
>
> So now "bar" is an instance of "Group" as well.
>
> So I would expect "group.bar.bar" to come back in the interceptor a second 
> time, but it does not!
>
> However "group.bar.foo" accesses the second instance accessor just fine.
>
> It feels really strange. I was hoping someone could unstuck me.
>
> Thanks in advance!
> alex
>
>

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