On Fri, May 20, 2011 at 3:34 AM, Laurie Harper <[email protected]> wrote:

> Assertion failed: (handle->InternalFieldCount() > 0), function Wrap, file
> /Users/laurie/.nvm/v0.4.5/include/node/node_object_wrap.h, line 61.
>

When you subclass a native class from JS then the native 'this' pointer
(which is stored in an internal field) cannot, without extra tooling to make
it work, be found. The problem is that the JS 'this' is a subclass with no
internal field count. This can be worked around on the C++ side, so that
such lookups will (with a bit of extra effort) be able to find their proper
native "this" object.

i have an example which does this type of lookup here:

http://code.google.com/p/v8-juice/source/browse/convert/include/v8/convert/ClassCreator.hpp#330

in the function FindHolder(). That function is used internally by my API to
do the "this" lookup when a C++/JS-bound class is subclassed from JS.
Because this requires a significant performance overhead for the lookup, it
is a compile-time (template-defined) option (in my lib, anyway - feel free
to implement yours how you like).

-- 
----- stephan beal
http://wanderinghorse.net/home/stephan/

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to