From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: John Kleinschmidt Date: Fri, 6 Oct 2023 14:15:20 -0400 Subject: feat: allow passing of ObjectTemplate to ObjectTemplateBuilder https://chromium-review.googlesource.com/c/chromium/src/+/4905829 removed the ObjectTemplateBuilder constructor which allows passing in an ObjectTemplate. Electron needs this constructor, namely for gin_helper::Constructible objects. diff --git a/gin/object_template_builder.cc b/gin/object_template_builder.cc index 196749df48a41595da226a4baec72051446fc442..256e6634d9689ebcc53dfc8849587a73ad311463 100644 --- a/gin/object_template_builder.cc +++ b/gin/object_template_builder.cc @@ -145,6 +145,13 @@ ObjectTemplateBuilder::ObjectTemplateBuilder(v8::Isolate* isolate, template_->SetInternalFieldCount(kNumberOfInternalFields); } +ObjectTemplateBuilder::ObjectTemplateBuilder(v8::Isolate* isolate, + const char* type_name, + v8::Local tmpl) + : isolate_(isolate), type_name_(type_name), template_(tmpl) { + template_->SetInternalFieldCount(kNumberOfInternalFields); +} + ObjectTemplateBuilder::ObjectTemplateBuilder( const ObjectTemplateBuilder& other) = default; diff --git a/gin/object_template_builder.h b/gin/object_template_builder.h index cf4f1ae6598fdede655d33baccda254965566ea5..a4c16dc0ec3ff16413fc2a04225a2401989a084b 100644 --- a/gin/object_template_builder.h +++ b/gin/object_template_builder.h @@ -48,6 +48,9 @@ class GIN_EXPORT ObjectTemplateBuilder { public: explicit ObjectTemplateBuilder(v8::Isolate* isolate); ObjectTemplateBuilder(v8::Isolate* isolate, const char* type_name); + ObjectTemplateBuilder(v8::Isolate* isolate, + const char* type_name, + v8::Local tmpl); ObjectTemplateBuilder(const ObjectTemplateBuilder& other); ~ObjectTemplateBuilder();