Hi, this is somethings that's had me stumped for the past 6 hours now..

I have an object template which has a setter and getter for the object 
"update" which simply set/get an object handle accessible to both the 
setter and getter (see "Things I've tried".) An object is instantiated 
within the global context called "world" from this object template. A 
script is then run which sets "world.update" to a function with a basic 
output message. The program then gets the update function and calls it 
which works exactly as intended - printing some output. The program then 
gets the update function again, but the update function is now a string - 
the output from the original call. Trying to call it leads to an exception.

The code: http://pastebin.com/i33nLWby
The script (main.js): http://pastebin.com/X3GZRdbV
The output:

Set update() [update]
Get update() [update]
Did a world.update()
Get update() [update]
Caught2: Uncaught TypeError: Did a world.update()
 is not a function

Without the object template (i.e. with just a regular object in javascript 
without the getter/setter combination) the program functions fine but I'd 
like to be able to use this to have the script manage callbacks.

Why does this happen and what am I doing wrong?

Things I've tried:

- In the code I use an internal field pointing to a Handle<Function> object 
though I have tried using a global variable and using plain old object 
handles - no differences were noted here.
- Get'ing the update function but not calling, then get'ing again. This 
proves the call is part of the cause
- Get'ing and calling, followed by calling from the internal field (no 
difference.)
- Calling directly from the internal field (worldUpdateFunc.func); first 
call is successful, after this the internal field is no longer a function 
(can't figure out what it is as it returns false to all the Is* functions) 
and the program segfaults somewhere random in V8??

Thanks, James.

-- 
-- 
v8-users mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to