OLD | NEW |
1 {% extends 'interface_base.cpp' %} | 1 {% extends 'interface_base.cpp' %} |
2 | 2 |
3 | 3 |
4 {##############################################################################} | 4 {##############################################################################} |
5 {% block indexed_property_getter %} | 5 {% block indexed_property_getter %} |
6 {% if indexed_property_getter and not indexed_property_getter.is_custom %} | 6 {% if indexed_property_getter and not indexed_property_getter.is_custom %} |
7 {% set getter = indexed_property_getter %} | 7 {% set getter = indexed_property_getter %} |
8 static void indexedPropertyGetter(uint32_t index, const v8::PropertyCallbackInfo
<v8::Value>& info) | 8 static void indexedPropertyGetter(uint32_t index, const v8::PropertyCallbackInfo
<v8::Value>& info) |
9 { | 9 { |
10 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); | 10 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); |
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
589 {% if reachable_node_function or set_wrapper_reference_to_list %} | 589 {% if reachable_node_function or set_wrapper_reference_to_list %} |
590 void {{v8_class}}::visitDOMWrapper(v8::Isolate* isolate, ScriptWrappable* script
Wrappable, const v8::Persistent<v8::Object>& wrapper) | 590 void {{v8_class}}::visitDOMWrapper(v8::Isolate* isolate, ScriptWrappable* script
Wrappable, const v8::Persistent<v8::Object>& wrapper) |
591 { | 591 { |
592 {{cpp_class}}* impl = scriptWrappable->toImpl<{{cpp_class}}>(); | 592 {{cpp_class}}* impl = scriptWrappable->toImpl<{{cpp_class}}>(); |
593 {% if set_wrapper_reference_to_list %} | 593 {% if set_wrapper_reference_to_list %} |
594 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); | 594 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); |
595 V8WrapperInstantiationScope scope(creationContext, isolate); | 595 V8WrapperInstantiationScope scope(creationContext, isolate); |
596 {% for set_wrapper_reference_to in set_wrapper_reference_to_list %} | 596 {% for set_wrapper_reference_to in set_wrapper_reference_to_list %} |
597 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im
pl->{{set_wrapper_reference_to.name}}(); | 597 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im
pl->{{set_wrapper_reference_to.name}}(); |
598 if ({{set_wrapper_reference_to.name}}) { | 598 if ({{set_wrapper_reference_to.name}}) { |
599 if (!DOMDataStore::containsWrapper({{set_wrapper_reference_to.name}}, is
olate)) | 599 {# The target wrapper for SetWrapperReferenceTo must be created before e
ntering V8 GC. |
600 {{set_wrapper_reference_to.name}}->wrap(creationContext, isolate); | 600 Lazily creating a wrapper here may lead to execution of user javascri
pt during GC. #} |
| 601 RELEASE_ASSERT(DOMDataStore::containsWrapper({{set_wrapper_reference_to.
name}}, isolate)); |
601 DOMDataStore::setWrapperReference(wrapper, {{set_wrapper_reference_to.na
me}}, isolate); | 602 DOMDataStore::setWrapperReference(wrapper, {{set_wrapper_reference_to.na
me}}, isolate); |
602 } | 603 } |
603 {% endfor %} | 604 {% endfor %} |
604 {% endif %} | 605 {% endif %} |
605 {% if reachable_node_function %} | 606 {% if reachable_node_function %} |
606 // The {{reachable_node_function}}() method may return a reference or a poin
ter. | 607 // The {{reachable_node_function}}() method may return a reference or a poin
ter. |
607 if (Node* owner = WTF::getPtr(impl->{{reachable_node_function}}())) { | 608 if (Node* owner = WTF::getPtr(impl->{{reachable_node_function}}())) { |
608 Node* root = V8GCController::opaqueRootForGC(isolate, owner); | 609 Node* root = V8GCController::opaqueRootForGC(isolate, owner); |
609 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); | 610 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); |
610 return; | 611 return; |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
979 } | 980 } |
980 | 981 |
981 {% for method in methods if method.overloads and method.overloads.has_partial_ov
erloads %} | 982 {% for method in methods if method.overloads and method.overloads.has_partial_ov
erloads %} |
982 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt
erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) | 983 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt
erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) |
983 { | 984 { |
984 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; | 985 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; |
985 } | 986 } |
986 {% endfor %} | 987 {% endfor %} |
987 {% endif %} | 988 {% endif %} |
988 {% endblock %} | 989 {% endblock %} |
OLD | NEW |