People seem to understand the ISA (is a) kind of inheritance, but ignore
the HASA (has a) kind.

Exposed constructor always throws an error.  document.createElement calls
an unexposed factory method, which calls a protected constructor.

I'm on a tablet, too.  I hope I'm being clear enough.

On Tuesday, July 10, 2012, Stephan Beal wrote:

> Briefly (i am on a tablet) : this can be done a few different ways, but
> getting at the code is really tedious on a tablet :-\. I will post some
> links to examples for you tomorrow. One quick idea: have the bound ctor
> allow only some weird arguments and throw for everything else (and don't
> document them in the js interface) . Your c++ code can then pass the weird
> args to FunctionTemplate::NewInstace(). Example: require the args (null,
> undefined, the real args...). Then throw if the args do not comply. There
> are other (cleaner) ways, too, e.g. passing a v8::External to the ctor (js
> code cannot create these).
> On Jul 10, 2012 10:34 PM, "Kevin James" 
> <[email protected]<javascript:_e({}, 'cvml', '[email protected]');>>
> wrote:
>
>> I want to write bindings for C++ objects whose constructors can't be
>> called directly. Examples of what I'm talking about in a browser would
>> be Element, ImageData, and Canvas. These are defined as functions in the
>> global namespace, but if a script tries to call "new Element()", an
>> exception is thrown. Instead an appropriate function has to be called, for
>> example "document.createElement()".
>>
>> How are the bindings for these objects are written? If I create a
>> FunctionTemplate, I can have it's constructor always throw an "Illegal
>> Constructor" exception, but then how will my C++ code instantiate one of
>> these objects?
>>
>> Thanks.
>>
>> --
>> v8-users mailing list
>> [email protected] <javascript:_e({}, 'cvml',
>> '[email protected]');>
>> http://groups.google.com/group/v8-users
>
>  --
> v8-users mailing list
> [email protected] <javascript:_e({}, 'cvml',
> '[email protected]');>
> http://groups.google.com/group/v8-users

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

Reply via email to