OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "gin/per_isolate_data.h" | 5 #include "gin/per_isolate_data.h" |
6 | 6 |
7 using v8::Eternal; | 7 using v8::Eternal; |
8 using v8::Handle; | 8 using v8::Handle; |
9 using v8::Isolate; | 9 using v8::Isolate; |
10 using v8::Local; | 10 using v8::Local; |
11 using v8::Object; | 11 using v8::Object; |
12 using v8::ObjectTemplate; | 12 using v8::ObjectTemplate; |
13 | 13 |
14 namespace gin { | 14 namespace gin { |
15 | 15 |
16 PerIsolateData::PerIsolateData(Isolate* isolate) | 16 PerIsolateData::PerIsolateData(Isolate* isolate) |
17 : isolate_(isolate) { | 17 : isolate_(isolate) { |
18 isolate_->SetData(this); | 18 isolate_->SetData(this); |
19 } | 19 } |
20 | 20 |
21 PerIsolateData::~PerIsolateData() { | 21 PerIsolateData::~PerIsolateData() { |
22 } | 22 } |
23 | 23 |
24 PerIsolateData* PerIsolateData::From(Isolate* isolate) { | 24 PerIsolateData* PerIsolateData::From(Isolate* isolate) { |
25 return static_cast<PerIsolateData*>(isolate->GetData()); | 25 return static_cast<PerIsolateData*>(isolate->GetData()); |
26 } | 26 } |
27 | 27 |
28 void PerIsolateData::RegisterObjectTemplate( | 28 void PerIsolateData::SetObjectTemplate(WrapperInfo* info, |
29 WrapperInfo* info, Local<ObjectTemplate> object_template) { | 29 Local<ObjectTemplate> templ) { |
30 object_templates_[info] = Eternal<ObjectTemplate>(isolate_, object_template); | 30 object_templates_[info] = Eternal<ObjectTemplate>(isolate_, templ); |
| 31 } |
| 32 |
| 33 v8::Local<v8::ObjectTemplate> PerIsolateData::GetObjectTemplate( |
| 34 WrapperInfo* info) { |
| 35 ObjectTemplateMap::iterator it = object_templates_.find(info); |
| 36 if (it == object_templates_.end()) |
| 37 return v8::Local<v8::ObjectTemplate>(); |
| 38 return it->second.Get(isolate_); |
31 } | 39 } |
32 | 40 |
33 } // namespace gin | 41 } // namespace gin |
OLD | NEW |