Caching object templates for Event, fixes #705

This commit is contained in:
Cheng Zhao 2014-10-17 13:46:32 +08:00
parent 4dd7848084
commit e4a71b86df
2 changed files with 15 additions and 4 deletions

View file

@ -11,6 +11,12 @@
namespace mate {
namespace {
v8::Persistent<v8::ObjectTemplate> template_;
} // namespace
Event::Event()
: sender_(NULL),
message_(NULL),
@ -21,9 +27,14 @@ Event::~Event() {
}
ObjectTemplateBuilder Event::GetObjectTemplateBuilder(v8::Isolate* isolate) {
return ObjectTemplateBuilder(isolate)
.SetMethod("preventDefault", &Event::PreventDefault)
.SetMethod("sendReply", &Event::SendReply);
if (template_.IsEmpty())
template_.Reset(isolate, ObjectTemplateBuilder(isolate)
.SetMethod("preventDefault", &Event::PreventDefault)
.SetMethod("sendReply", &Event::SendReply)
.Build());
return ObjectTemplateBuilder(
isolate, v8::Local<v8::ObjectTemplate>::New(isolate, template_));
}
void Event::SetSenderAndMessage(content::WebContents* sender,

2
vendor/native_mate vendored

@ -1 +1 @@
Subproject commit c5b39126ee7388acc61a25ac6b5fefb7a2cd6262
Subproject commit cc9d22292361e8b74e82a4e6a77407c17b4bfda7