| 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(cpp_class) %} | 10 '{0}V8Internal::{0}ConstructorGetter'.format(cpp_class) %} |
| (...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(event.release(), &{{v
8_class}}::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguration::De
pendent); | 671 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(event.release(), &{{v
8_class}}::wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguration::De
pendent); |
| 672 v8SetReturnValue(info, wrapper); | 672 v8SetReturnValue(info, wrapper); |
| 673 } | 673 } |
| 674 | 674 |
| 675 {% endif %} | 675 {% endif %} |
| 676 {% endblock %} | 676 {% endblock %} |
| 677 | 677 |
| 678 | 678 |
| 679 {##############################################################################} | 679 {##############################################################################} |
| 680 {% block visit_dom_wrapper %} | 680 {% block visit_dom_wrapper %} |
| 681 {% if reachable_node_function or reachable_node_reference_function or | 681 {% if reachable_node_function or |
| 682 set_wrapper_reference_to_list %} | 682 set_wrapper_reference_to_list %} |
| 683 void {{v8_class}}::visitDOMWrapper(void* object, const v8::Persistent<v8::Object
>& wrapper, v8::Isolate* isolate) | 683 void {{v8_class}}::visitDOMWrapper(void* object, const v8::Persistent<v8::Object
>& wrapper, v8::Isolate* isolate) |
| 684 { | 684 { |
| 685 {{cpp_class}}* impl = fromInternalPointer(object); | 685 {{cpp_class}}* impl = fromInternalPointer(object); |
| 686 {% if set_wrapper_reference_to_list %} | 686 {% if set_wrapper_reference_to_list %} |
| 687 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); | 687 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); |
| 688 V8WrapperInstantiationScope scope(creationContext, isolate); | 688 V8WrapperInstantiationScope scope(creationContext, isolate); |
| 689 {% for set_wrapper_reference_to in set_wrapper_reference_to_list %} | 689 {% for set_wrapper_reference_to in set_wrapper_reference_to_list %} |
| 690 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im
pl->{{set_wrapper_reference_to.name}}(); | 690 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im
pl->{{set_wrapper_reference_to.name}}(); |
| 691 if ({{set_wrapper_reference_to.name}}) { | 691 if ({{set_wrapper_reference_to.name}}) { |
| 692 if (!DOMDataStore::containsWrapper<{{set_wrapper_reference_to.v8_type}}>
({{set_wrapper_reference_to.name}}, isolate)) | 692 if (!DOMDataStore::containsWrapper<{{set_wrapper_reference_to.v8_type}}>
({{set_wrapper_reference_to.name}}, isolate)) |
| 693 wrap({{set_wrapper_reference_to.name}}, creationContext, isolate); | 693 wrap({{set_wrapper_reference_to.name}}, creationContext, isolate); |
| 694 DOMDataStore::setWrapperReference<{{set_wrapper_reference_to.v8_type}}>(
wrapper, {{set_wrapper_reference_to.name}}, isolate); | 694 DOMDataStore::setWrapperReference<{{set_wrapper_reference_to.v8_type}}>(
wrapper, {{set_wrapper_reference_to.name}}, isolate); |
| 695 } | 695 } |
| 696 {% endfor %} | 696 {% endfor %} |
| 697 {% endif %} | 697 {% endif %} |
| 698 {% if reachable_node_function %} | 698 {% if reachable_node_function %} |
| 699 if (Node* owner = impl->{{reachable_node_function}}()) { | 699 // The {{reachable_node_function}}() method may return a reference or a poin
ter but |
| 700 Node* root = V8GCController::opaqueRootForGC(owner, isolate); | 700 // RefPtr can be constructed from either. |
| 701 if (RefPtr<Node> owner = PassRefPtr<Node>(impl->{{reachable_node_function}}(
))) { |
| 702 Node* root = V8GCController::opaqueRootForGC(owner.get(), isolate); |
| 701 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); | 703 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); |
| 702 return; | 704 return; |
| 703 } | 705 } |
| 704 {% elif reachable_node_reference_function %} | |
| 705 Node* root = V8GCController::opaqueRootForGC(&impl->{{reachable_node_referen
ce_function}}(), isolate); | |
| 706 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(root)
), wrapper); | |
| 707 {% endif %} | 706 {% endif %} |
| 708 {% if reachable_node_function or set_wrapper_reference_to_list %} | 707 {% if reachable_node_function or set_wrapper_reference_to_list %} |
| 709 setObjectGroup(object, wrapper, isolate); | 708 setObjectGroup(object, wrapper, isolate); |
| 710 {% endif %} | 709 {% endif %} |
| 711 } | 710 } |
| 712 | 711 |
| 713 {% endif %} | 712 {% endif %} |
| 714 {% endblock %} | 713 {% endblock %} |
| 715 | 714 |
| 716 | 715 |
| (...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1322 {% endfilter %} | 1321 {% endfilter %} |
| 1323 } | 1322 } |
| 1324 | 1323 |
| 1325 template<> | 1324 template<> |
| 1326 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) | 1325 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) |
| 1327 { | 1326 { |
| 1328 return toV8(impl, creationContext, isolate); | 1327 return toV8(impl, creationContext, isolate); |
| 1329 } | 1328 } |
| 1330 | 1329 |
| 1331 {% endblock %} | 1330 {% endblock %} |
| OLD | NEW |