Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 {% extends 'interface_base.cpp' %} | 1 {% extends 'interface_base.cpp' %} |
| 2 | 2 |
| 3 | 3 |
| 4 {##############################################################################} | 4 {##############################################################################} |
| 5 {% macro attribute_configuration(attribute) %} | 5 {% macro attribute_configuration(attribute) %} |
| 6 {% set getter_callback = | 6 {% set getter_callback = |
| 7 '%sV8Internal::%sAttributeGetterCallback' % | 7 '%sV8Internal::%sAttributeGetterCallback' % |
| 8 (cpp_class, attribute.name) | 8 (cpp_class, attribute.name) |
| 9 if not attribute.constructor_type else | 9 if not attribute.constructor_type else |
| 10 '{0}V8Internal::{0}ConstructorGetter'.format(interface_name) %} | 10 '{0}V8Internal::{0}ConstructorGetter'.format(interface_name) %} |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 251 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(event.release(), &{{v 8_class}}::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguration::De pendent); | 251 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(event.release(), &{{v 8_class}}::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguration::De pendent); |
| 252 v8SetReturnValue(info, wrapper); | 252 v8SetReturnValue(info, wrapper); |
| 253 } | 253 } |
| 254 | 254 |
| 255 {% endif %} | 255 {% endif %} |
| 256 {% endblock %} | 256 {% endblock %} |
| 257 | 257 |
| 258 | 258 |
| 259 {##############################################################################} | 259 {##############################################################################} |
| 260 {% block visit_dom_wrapper %} | 260 {% block visit_dom_wrapper %} |
| 261 {% if generate_visit_dom_wrapper_function %} | 261 {% if check_reachable_method or set_reference_list %} |
| 262 void {{v8_class}}::visitDOMWrapper(void* object, const v8::Persistent<v8::Object >& wrapper, v8::Isolate* isolate) | 262 void {{v8_class}}::visitDOMWrapper(void* object, const v8::Persistent<v8::Object >& wrapper, v8::Isolate* isolate) |
| 263 { | 263 { |
| 264 {{cpp_class}}* impl = fromInternalPointer(object); | 264 {{cpp_class}}* impl = fromInternalPointer(object); |
| 265 if (Node* owner = impl->{{generate_visit_dom_wrapper_function}}()) { | 265 {% if set_reference_list %} |
| 266 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate, wrapper); | |
|
haraken
2013/12/17 09:13:09
kouhei: Why do we need to create a new Local handl
kouhei (in TOK)
2013/12/17 09:15:00
I don't remember if there was a specific reason. I
| |
| 267 V8WrapperInstantiationScope scope(creationContext, isolate); | |
| 268 {% for set_reference in set_reference_list %} | |
| 269 {{set_reference.idl_type}}* {{set_reference.name}} = impl->{{set_reference.n ame}}(); | |
| 270 if ({{set_reference.name}}) { | |
| 271 if (!DOMDataStore::containsWrapper<{{set_reference.v8_type}}>({{set_refe rence.name}}, isolate)) | |
| 272 wrap({{set_reference.name}}, creationContext, isolate); | |
| 273 DOMDataStore::setWrapperReference<{{set_reference.v8_type}}>(wrapper, {{ set_reference.name}}, isolate); | |
| 274 } | |
| 275 {% endfor %} | |
| 276 {% endif %} | |
| 277 {% if check_reachable_method %} | |
| 278 if (Node* owner = impl->{{check_reachable_method}}()) { | |
|
haraken
2013/12/17 09:13:09
check_reachable_method => reachable_node_function
Nils Barth (inactive)
2013/12/18 01:57:49
Good point, fixed!
| |
| 266 setObjectGroup(V8GCController::opaqueRootForGC(owner, isolate), wrapper, isolate); | 279 setObjectGroup(V8GCController::opaqueRootForGC(owner, isolate), wrapper, isolate); |
| 267 return; | 280 return; |
| 268 } | 281 } |
| 282 {% endif %} | |
| 269 setObjectGroup(object, wrapper, isolate); | 283 setObjectGroup(object, wrapper, isolate); |
| 270 } | 284 } |
| 271 | 285 |
| 272 {% endif %} | 286 {% endif %} |
| 273 {% endblock %} | 287 {% endblock %} |
| 274 | 288 |
| 275 | 289 |
| 276 {##############################################################################} | 290 {##############################################################################} |
| 277 {% block class_attributes %} | 291 {% block class_attributes %} |
| 278 {# FIXME: rename to install_attributes and put into configure_class_template #} | 292 {# FIXME: rename to install_attributes and put into configure_class_template #} |
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 725 fromInternalPointer(object)->deref(); | 739 fromInternalPointer(object)->deref(); |
| 726 } | 740 } |
| 727 | 741 |
| 728 template<> | 742 template<> |
| 729 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c reationContext, v8::Isolate* isolate) | 743 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c reationContext, v8::Isolate* isolate) |
| 730 { | 744 { |
| 731 return toV8(impl, creationContext, isolate); | 745 return toV8(impl, creationContext, isolate); |
| 732 } | 746 } |
| 733 | 747 |
| 734 {% endblock %} | 748 {% endblock %} |
| OLD | NEW |