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 | 681 {% if reachable_node_function or 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) | 682 void {{v8_class}}::visitDOMWrapper(void* object, const v8::Persistent<v8::Object
>& wrapper, v8::Isolate* isolate) |
684 { | 683 { |
685 {{cpp_class}}* impl = fromInternalPointer(object); | 684 {{cpp_class}}* impl = fromInternalPointer(object); |
686 {% if set_wrapper_reference_to_list %} | 685 {% if set_wrapper_reference_to_list %} |
687 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); | 686 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); |
688 V8WrapperInstantiationScope scope(creationContext, isolate); | 687 V8WrapperInstantiationScope scope(creationContext, isolate); |
689 {% for set_wrapper_reference_to in set_wrapper_reference_to_list %} | 688 {% 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}}(); | 689 {{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}}) { | 690 if ({{set_wrapper_reference_to.name}}) { |
692 if (!DOMDataStore::containsWrapper<{{set_wrapper_reference_to.v8_type}}>
({{set_wrapper_reference_to.name}}, isolate)) | 691 if (!DOMDataStore::containsWrapper<{{set_wrapper_reference_to.v8_type}}>
({{set_wrapper_reference_to.name}}, isolate)) |
693 wrap({{set_wrapper_reference_to.name}}, creationContext, isolate); | 692 wrap({{set_wrapper_reference_to.name}}, creationContext, isolate); |
694 DOMDataStore::setWrapperReference<{{set_wrapper_reference_to.v8_type}}>(
wrapper, {{set_wrapper_reference_to.name}}, isolate); | 693 DOMDataStore::setWrapperReference<{{set_wrapper_reference_to.v8_type}}>(
wrapper, {{set_wrapper_reference_to.name}}, isolate); |
695 } | 694 } |
696 {% endfor %} | 695 {% endfor %} |
697 {% endif %} | 696 {% endif %} |
698 {% if reachable_node_function %} | 697 {% if reachable_node_function %} |
699 // The {{reachable_node_function}}() method may return a reference or a poin
ter. | 698 // The {{reachable_node_function}}() method may return a reference or a poin
ter. |
700 if (Node* owner = WTF::getPtr(impl->{{reachable_node_function}}())) { | 699 if (Node* owner = WTF::getPtr(impl->{{reachable_node_function}}())) { |
701 Node* root = V8GCController::opaqueRootForGC(owner, isolate); | 700 Node* root = V8GCController::opaqueRootForGC(owner, isolate); |
702 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); | 701 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); |
703 return; | 702 return; |
704 } | 703 } |
705 {% endif %} | 704 {% endif %} |
706 {% if reachable_node_function or set_wrapper_reference_to_list %} | |
707 setObjectGroup(object, wrapper, isolate); | 705 setObjectGroup(object, wrapper, isolate); |
708 {% endif %} | |
709 } | 706 } |
710 | 707 |
711 {% endif %} | 708 {% endif %} |
712 {% endblock %} | 709 {% endblock %} |
713 | 710 |
714 | 711 |
715 {##############################################################################} | 712 {##############################################################################} |
716 {% block shadow_attributes %} | 713 {% block shadow_attributes %} |
717 {% if interface_name == 'Window' %} | 714 {% if interface_name == 'Window' %} |
718 static const V8DOMConfiguration::AttributeConfiguration shadowAttributes[] = { | 715 static const V8DOMConfiguration::AttributeConfiguration shadowAttributes[] = { |
(...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1320 {% endfilter %} | 1317 {% endfilter %} |
1321 } | 1318 } |
1322 | 1319 |
1323 template<> | 1320 template<> |
1324 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) | 1321 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) |
1325 { | 1322 { |
1326 return toV8(impl, creationContext, isolate); | 1323 return toV8(impl, creationContext, isolate); |
1327 } | 1324 } |
1328 | 1325 |
1329 {% endblock %} | 1326 {% endblock %} |
OLD | NEW |