Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index 79f4478ea6f626ff297314b4ed227d5dc088abed..ce0e1fd04b8422b938454862f87d5145947c599f 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -480,6 +480,22 @@ class NonCopyablePersistentTraits { |
/** |
+ * Helper class traits to allow copying and assignment of Persistent. |
+ * This will clone the contents of storage cell, but not any of the flags, etc. |
+ */ |
+template<class T> |
+struct CopyablePersistentTraits { |
+ typedef Persistent<T, CopyablePersistentTraits<T> > CopyablePersistent; |
+ static const bool kResetInDestructor = true; |
+ template<class S, class M> |
+ static V8_INLINE void Copy(const Persistent<S, M>& source, |
+ CopyablePersistent* dest) { |
+ // do nothing, just allow copy |
+ } |
+}; |
+ |
+ |
+/** |
* An object reference that is independent of any handle scope. Where |
* a Local handle only lives as long as the HandleScope in which it was |
* allocated, a Persistent handle remains valid until it is explicitly |