*

Hi,

due to fundamental problems in the design of the Persistent handle API, we 
feel the need to considerably change the V8 API to ensure that the 
Persistent class is safe to use.  Currently, it is extremely difficult to 
use safely and can easily lead to heap corruption.  To get an understanding 
of the problem, see https://code.google.com/p/v8/issues/detail?id=1889.

At the moment we’re considering the following major changes:


   - 
   
   Making Persistent an independent class (no longer deriving from Handle).
   
   - 
   
   Deprecating Local and eventually removing it in favor of just having 
   Handle.
   
   - 
   
   Changing all callbacks that return Handle<Value> to return void and 
   instead pass the return value in as a parameter.
   
   

The last change is not inherently required by the changes to Persistent but 
rather to maintain performant callbacks which return Persistent.  The old 
style of callbacks we want to be deprecate and eventually remove.  In the 
meantime, old style callbacks can support the return value parameter when 
an empty handle is returned, providing a transition path.

I have created two patches that attempt this transformation (most of it 
anyway).  They are https://codereview.chromium.org/12729023/ and 
https://codereview.chromium.org/12494012/.

Not everything is yet set in stone, and I expect a certain amount of change 
to the overall implementation path as we work through implementation issues 
and receive feedback.

Dan

*

-- 
-- 
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