@@ -8,10 +8,12 @@ namespace rr {
88 ObjectTemplate (VALUE self) : Ref<v8::ObjectTemplate>(self) {}
99 ObjectTemplate (v8::Isolate* isolate, v8::Handle<v8::ObjectTemplate> tmpl) :
1010 Ref<v8::ObjectTemplate>(isolate, tmpl) {}
11+
1112 inline static void Init () {
1213 ClassBuilder (" ObjectTemplate" , Template::Class).
1314 defineSingletonMethod (" New" , &New).
1415 defineMethod (" NewInstance" , &NewInstance).
16+ defineMethod (" SetInternalFieldCount" , &SetInternalFieldCount).
1517 store (&Class);
1618 }
1719
@@ -20,16 +22,26 @@ namespace rr {
2022 rb_scan_args (argc, argv, " 11" , &r_isolate, &r_constructor);
2123 Isolate isolate (r_isolate);
2224 Locker lock (isolate);
25+
2326 return ObjectTemplate (isolate, v8::ObjectTemplate::New (isolate));
2427 }
2528
26- static VALUE NewInstance (VALUE self , VALUE r_context) {
29+ static VALUE NewInstance (VALUE self, VALUE r_context) {
2730 ObjectTemplate t (self);
2831 Context context (r_context);
2932 Isolate isolate (context.getIsolate ());
3033 Locker lock (isolate);
31- v8::MaybeLocal<v8::Object> object (t->NewInstance ());
32- return Object::Maybe (isolate, ObjectTemplate (self)->NewInstance (context));
34+
35+ return Object::Maybe (isolate, t->NewInstance (context));
36+ }
37+
38+ static VALUE SetInternalFieldCount (VALUE self, VALUE value) {
39+ ObjectTemplate t (self);
40+ Locker lock (t);
41+
42+ t->SetInternalFieldCount (NUM2INT (value));
43+
44+ return Qnil;
3345 }
3446 };
3547}
0 commit comments