diff --git a/src/vu8/Class.hpp b/src/vu8/Class.hpp index 7159ad4..c26a5b9 100644 --- a/src/vu8/Class.hpp +++ b/src/vu8/Class.hpp @@ -158,8 +158,8 @@ class ClassSingleton v8::Persistent func_; friend class detail::LazySingleton; - friend class Class; - friend class Singleton; + friend struct Class; + friend struct Singleton; }; // Interface for registering C++ classes with v8 @@ -248,7 +248,7 @@ struct Class { } Class() {} - friend class Singleton; + friend struct Singleton; }; // Wrap a C++ singleton diff --git a/src/vu8/detail/FromV8.hpp b/src/vu8/detail/FromV8.hpp index f9bbe70..152072c 100644 --- a/src/vu8/detail/FromV8.hpp +++ b/src/vu8/detail/FromV8.hpp @@ -149,8 +149,12 @@ struct FromV8 : FromV8Base { template struct FromV8Ptr : FromV8Base { static inline T exec(ValueHandle value) { - if (! value->IsObject()) + if (! value->IsObject()) { + if (value->IsNull()) { + return NULL; + } throw std::runtime_error("expected object"); + } v8::Local obj = value->ToObject();