...found solution... :)

signalPropTempl->SetCallAsFunctionHandler(V8Obj::signalInvoke);
...
    global->Set(v8::String::New("myObj"), myObj);
        myObj->Set(v8::String::New("signal"), signalObj);



On May 31, 5:16 pm, vlad <[email protected]> wrote:
> Hi, could you please tell me what I'm doing wrong...
> I'm creating v8::Object like
>     V8Obj* a = new V8Obj;
>     v8::Handle<v8::FunctionTemplate> myObjTempl =
> v8::FunctionTemplate::New();
>     myObjTempl->SetClassName(v8::String::New("myObj"));
>     v8::Handle<v8::ObjectTemplate> myObjPropTempl = 
> myObjTempl->InstanceTemplate();
>
>     v8::Handle<v8::Function> myObjCtor = myObjTempl->GetFunction();
>     v8::Handle<v8::Object> myObj = myObjCtor->NewInstance();
>     myObj->SetInternalField(0,v8::External::New(&a));
>
> Now I want to have a "signal" property in myObj:
>
>         v8::Handle<v8::FunctionTemplate> signalTempl =
> v8::FunctionTemplate::New(V8Obj::signalInvoke);
>         v8::Handle<v8::ObjectTemplate> signalPropTempl = 
> signalTempl->InstanceTemplate();
>
>         signalPropTempl->SetAccessor(v8::String::New("length"),
> V8Obj::LenghtGetter);
>         v8::Handle<v8::Function> signalCtor = signalTempl->GetFunction();
>
>         signalCtor->SetName(v8::String::New("signal"));
>         v8::Handle<v8::Object> signalObj = signalCtor->NewInstance();
>
> Now I publish myObj and set "signal" as function property of myobj
>     global->Set(v8::String::New("myObj"), myObj);
>     myObj->Set(v8::String::New("signal"), signalCtor);
>
> When running:
>     V8RUN("myObj.signal();");  - OK, I get a callback
>     V8RUN("myObj.signal.length"); - NOT OK - I dont get callback
> LenghtGetter()
>
> However when I do
> myObj->Set(v8::String::New("signal"), signalObj); - "length" accessor
> works ok, but I get
>            <unknown>:6: Uncaught TypeError: Property 'signal' of
> object #<a myObj> is not a function
>
> How to make it to work as a function and to be able to set accessor
> for the property?
> Thanks
> Vlad

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

Reply via email to