Index: gin/wrappable_unittest.cc |
diff --git a/gin/wrappable_unittest.cc b/gin/wrappable_unittest.cc |
index 3499eedcc18ca0b8a21a1ef8fc5f960bfa0d1598..058ca168e70ccc1819f7e102cccaaa1fd28e4fa7 100644 |
--- a/gin/wrappable_unittest.cc |
+++ b/gin/wrappable_unittest.cc |
@@ -27,6 +27,9 @@ class MyObject : public Wrappable<MyObject> { |
void set_value(int value) { value_ = value; } |
private: |
+ friend class Wrappable<MyObject>; |
+ static v8::Local<v8::ObjectTemplate> GetObjectTemplate(v8::Isolate* isolate); |
+ |
MyObject() : value_(0) {} |
virtual ~MyObject() {} |
@@ -36,34 +39,39 @@ class MyObject : public Wrappable<MyObject> { |
class MyObject2 : public Wrappable<MyObject2> { |
public: |
static WrapperInfo kWrapperInfo; |
+ |
+ private: |
+ friend class Wrappable<MyObject2>; |
+ static v8::Local<v8::ObjectTemplate> GetObjectTemplate(v8::Isolate* isolate); |
}; |
class MyObjectBlink : public Wrappable<MyObjectBlink> { |
public: |
static WrapperInfo kWrapperInfo; |
+ |
+ private: |
+ friend class Wrappable<MyObjectBlink>; |
+ static v8::Local<v8::ObjectTemplate> GetObjectTemplate(v8::Isolate* isolate); |
}; |
WrapperInfo MyObject::kWrapperInfo = { kEmbedderNativeGin }; |
-WrapperInfo MyObject2::kWrapperInfo = { kEmbedderNativeGin }; |
-WrapperInfo MyObjectBlink::kWrapperInfo = { kEmbedderNativeGin }; |
- |
-void RegisterTemplates(v8::Isolate* isolate) { |
- PerIsolateData* data = PerIsolateData::From(isolate); |
- DCHECK(data->GetObjectTemplate(&MyObject::kWrapperInfo).IsEmpty()); |
- |
- v8::Handle<v8::ObjectTemplate> templ = ObjectTemplateBuilder(isolate) |
+v8::Local<v8::ObjectTemplate> MyObject::GetObjectTemplate( |
+ v8::Isolate* isolate) { |
+ return ObjectTemplateBuilder(isolate) |
.SetProperty("value", &MyObject::value, &MyObject::set_value) |
.Build(); |
- templ->SetInternalFieldCount(kNumberOfInternalFields); |
- data->SetObjectTemplate(&MyObject::kWrapperInfo, templ); |
+} |
- templ = v8::ObjectTemplate::New(isolate); |
- templ->SetInternalFieldCount(kNumberOfInternalFields); |
- data->SetObjectTemplate(&MyObject2::kWrapperInfo, templ); |
+WrapperInfo MyObject2::kWrapperInfo = { kEmbedderNativeGin }; |
+v8::Local<v8::ObjectTemplate> MyObject2::GetObjectTemplate( |
+ v8::Isolate* isolate) { |
+ return ObjectTemplateBuilder(isolate).Build(); |
+} |
- templ = v8::ObjectTemplate::New(isolate); |
- templ->SetInternalFieldCount(kNumberOfInternalFields); |
- data->SetObjectTemplate(&MyObjectBlink::kWrapperInfo, templ); |
+WrapperInfo MyObjectBlink::kWrapperInfo = { kEmbedderNativeGin }; |
+v8::Local<v8::ObjectTemplate> MyObjectBlink::GetObjectTemplate( |
+ v8::Isolate* isolate) { |
+ return ObjectTemplateBuilder(isolate).Build(); |
} |
typedef V8Test WrappableTest; |
@@ -72,7 +80,6 @@ TEST_F(WrappableTest, WrapAndUnwrap) { |
v8::Isolate* isolate = instance_->isolate(); |
v8::HandleScope handle_scope(isolate); |
- RegisterTemplates(isolate); |
Handle<MyObject> obj = MyObject::Create(isolate); |
v8::Handle<v8::Value> wrapper = ConvertToV8(isolate, obj.get()); |
@@ -87,8 +94,6 @@ TEST_F(WrappableTest, UnwrapFailures) { |
v8::Isolate* isolate = instance_->isolate(); |
v8::HandleScope handle_scope(isolate); |
- RegisterTemplates(isolate); |
- |
// Something that isn't an object. |
v8::Handle<v8::Value> thing = v8::Number::New(42); |
MyObject* unwrapped = NULL; |
@@ -117,7 +122,6 @@ TEST_F(WrappableTest, GetAndSetProperty) { |
v8::Isolate* isolate = instance_->isolate(); |
v8::HandleScope handle_scope(isolate); |
- RegisterTemplates(isolate); |
gin::Handle<MyObject> obj = MyObject::Create(isolate); |
obj->set_value(42); |