Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index c0bec79b01f1123d7926fe14a7fb0dec8dbf5810..72a457daa879cf38ac118bda0958ed27fb00788e 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -123,7 +123,6 @@ class ImplementationUtilities; |
class Int32; |
class Integer; |
class Isolate; |
-class LocalContext; |
class Number; |
class NumberObject; |
class Object; |
@@ -162,8 +161,7 @@ class Heap; |
class HeapObject; |
class Isolate; |
class Object; |
-template<typename T> |
-class CustomArguments; |
+template<typename T> class CustomArguments; |
class PropertyCallbackArguments; |
class FunctionCallbackArguments; |
} |
@@ -365,21 +363,19 @@ template <class T> class Handle { |
#endif |
private: |
+ friend class Utils; |
template<class F> friend class Persistent; |
template<class F> friend class Local; |
friend class Arguments; |
template<class F> friend class FunctionCallbackInfo; |
template<class F> friend class PropertyCallbackInfo; |
- friend class String; |
- friend class Object; |
+ template<class F> friend class CustomArguments; |
friend class AccessorInfo; |
friend Handle<Primitive> Undefined(Isolate* isolate); |
friend Handle<Primitive> Null(Isolate* isolate); |
friend Handle<Boolean> True(Isolate* isolate); |
friend Handle<Boolean> False(Isolate* isolate); |
friend class Context; |
- friend class InternalHandleHelper; |
- friend class LocalContext; |
friend class HandleScope; |
#ifndef V8_USE_UNSAFE_HANDLES |
@@ -454,6 +450,7 @@ template <class T> class Local : public Handle<T> { |
#endif |
private: |
+ friend class Utils; |
template<class F> friend class Persistent; |
template<class F> friend class Handle; |
friend class Arguments; |
@@ -463,8 +460,7 @@ template <class T> class Local : public Handle<T> { |
friend class Object; |
friend class AccessorInfo; |
friend class Context; |
- friend class InternalHandleHelper; |
- friend class LocalContext; |
+ template<class F> friend class CustomArguments; |
friend class HandleScope; |
V8_INLINE(static Local<T> New(Isolate* isolate, T* that)); |
@@ -511,11 +507,11 @@ template <class T> class Persistent // NOLINT |
* to be separately disposed. |
*/ |
template <class S> V8_INLINE(Persistent(Isolate* isolate, Handle<S> that)) |
- : val_(*New(isolate, that)) { } |
+ : val_(New(isolate, *that)) { } |
template <class S> V8_INLINE(Persistent(Isolate* isolate, |
Persistent<S>& that)) // NOLINT |
- : val_(*New(isolate, that)) { } |
+ : val_(New(isolate, *that)) { } |
#else |
/** |
@@ -594,15 +590,9 @@ template <class T> class Persistent // NOLINT |
} |
#endif |
+#ifdef V8_USE_UNSAFE_HANDLES |
V8_DEPRECATED(static Persistent<T> New(Handle<T> that)); |
- |
- /** |
- * Creates a new persistent handle for an existing local or persistent handle. |
- */ |
- // TODO(dcarney): remove before cutover |
V8_INLINE(static Persistent<T> New(Isolate* isolate, Handle<T> that)); |
-#ifndef V8_USE_UNSAFE_HANDLES |
- // TODO(dcarney): remove before cutover |
V8_INLINE(static Persistent<T> New(Isolate* isolate, Persistent<T> that)); |
#endif |
@@ -779,11 +769,7 @@ template <class T> class Persistent // NOLINT |
#endif |
// TODO(dcarney): remove before cutover |
template <class S> V8_INLINE(Persistent(S* that)) : val_(that) { } |
- // TODO(dcarney): remove before cutover |
- template <class S> V8_INLINE(Persistent(Persistent<S> that)) |
- : val_(*that) { |
- TYPE_CHECK(T, S); |
- } |
+ |
// TODO(dcarney): remove before cutover |
V8_INLINE(T* operator*() const) { return val_; } |
@@ -794,16 +780,13 @@ template <class T> class Persistent // NOLINT |
#endif |
private: |
+ friend class Utils; |
template<class F> friend class Handle; |
template<class F> friend class Local; |
+ template<class F> friend class Persistent; |
template<class F> friend class ReturnValue; |
- friend class ImplementationUtilities; |
- friend class ObjectTemplate; |
- friend class Context; |
- friend class InternalHandleHelper; |
- friend class LocalContext; |
- V8_INLINE(static Persistent<T> New(Isolate* isolate, T* that)); |
+ V8_INLINE(static T* New(Isolate* isolate, T* that)); |
#ifndef V8_USE_UNSAFE_HANDLES |
T* val_; |
@@ -5510,6 +5493,7 @@ Local<T> Local<T>::New(Isolate* isolate, T* that) { |
} |
+#ifdef V8_USE_UNSAFE_HANDLES |
template <class T> |
Persistent<T> Persistent<T>::New(Handle<T> that) { |
return New(Isolate::GetCurrent(), that.val_); |
@@ -5521,20 +5505,20 @@ Persistent<T> Persistent<T>::New(Isolate* isolate, Handle<T> that) { |
return New(Isolate::GetCurrent(), that.val_); |
} |
-#ifndef V8_USE_UNSAFE_HANDLES |
template <class T> |
Persistent<T> Persistent<T>::New(Isolate* isolate, Persistent<T> that) { |
return New(Isolate::GetCurrent(), that.val_); |
} |
#endif |
+ |
template <class T> |
-Persistent<T> Persistent<T>::New(Isolate* isolate, T* that) { |
- if (that == NULL) return Persistent<T>(); |
+T* Persistent<T>::New(Isolate* isolate, T* that) { |
+ if (that == NULL) return NULL; |
internal::Object** p = reinterpret_cast<internal::Object**>(that); |
- return Persistent<T>(reinterpret_cast<T*>( |
+ return reinterpret_cast<T*>( |
V8::GlobalizeReference(reinterpret_cast<internal::Isolate*>(isolate), |
- p))); |
+ p)); |
} |