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