I don't know how nan expects bindings to work, so I can't really help you
there. Maybe somebody with more nan knowledge can chime in, or maybe
consider reaching out to the nan authors?

On Fri, Sep 2, 2016 at 5:42 AM Zach Bjornson <zbbjorn...@gmail.com> wrote:

> Hello,
>
> I'm trying to fix some code that creates a wrapped C++ object ("Canvas",
> emulating HTMLCanvasElement) with property accessors on the prototype.
> Specifically, these assertions should work to reflect browsers'
> HTMLCanvasElement API:
>
> var c = new Canvas(...);
> assert(!c.hasOwnProperty("width"));
> assert("width" in c);
> assert(HTMLCanvasElement.prototype.hasOwnProperty("width"));
>
> Currently there's an assertion failure (from nan) because the
> InternalFieldCount for the PrototypeTemplate is 0. Setting it to 1 fixes
> this problem, but without touching the rest of the code, both the
> FunctionTemplate and the PrototypeTemplate now have an InternalFieldCount
> of 1. Is that the correct situation? I can't find any examples of setting
> accessors on prototypes to work from.
>
> The class in question is this:
> https://github.com/Automattic/node-canvas/blob/master/src/Canvas.cc#L30
> (sorry it uses nan's macros and not raw v8 APIs)
> and the patch setting the PrototypeTemplate's InternalFieldCount is
> https://github.com/Automattic/node-canvas/issues/803#issuecomment-244275154
>
> Thanks,
> Zach
>
> --
> --
> 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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to