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 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 exceptionState.throwTypeError("No matching constructor signature."); | 539 exceptionState.throwTypeError("No matching constructor signature."); |
540 exceptionState.throwIfNeeded(); | 540 exceptionState.throwIfNeeded(); |
541 } | 541 } |
542 | 542 |
543 {% endif %} | 543 {% endif %} |
544 {% endblock %} | 544 {% endblock %} |
545 | 545 |
546 | 546 |
547 {##############################################################################} | 547 {##############################################################################} |
548 {% block visit_dom_wrapper %} | 548 {% block visit_dom_wrapper %} |
549 {% if reachable_node_function or set_wrapper_reference_to_list %} | 549 {% if set_wrapper_reference_from or set_wrapper_reference_to %} |
550 void {{v8_class}}::visitDOMWrapper(v8::Isolate* isolate, ScriptWrappable* script
Wrappable, const v8::Persistent<v8::Object>& wrapper) | 550 void {{v8_class}}::visitDOMWrapper(v8::Isolate* isolate, ScriptWrappable* script
Wrappable, const v8::Persistent<v8::Object>& wrapper) |
551 { | 551 { |
552 {{cpp_class}}* impl = scriptWrappable->toImpl<{{cpp_class}}>(); | 552 {{cpp_class}}* impl = scriptWrappable->toImpl<{{cpp_class}}>(); |
553 {% if set_wrapper_reference_to_list %} | 553 {% if set_wrapper_reference_to %} |
554 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); | 554 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); |
555 V8WrapperInstantiationScope scope(creationContext, isolate); | 555 V8WrapperInstantiationScope scope(creationContext, isolate); |
556 {% for set_wrapper_reference_to in set_wrapper_reference_to_list %} | |
557 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im
pl->{{set_wrapper_reference_to.name}}(); | 556 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im
pl->{{set_wrapper_reference_to.name}}(); |
558 if ({{set_wrapper_reference_to.name}}) { | 557 if ({{set_wrapper_reference_to.name}}) { |
559 if (!DOMDataStore::containsWrapper({{set_wrapper_reference_to.name}}, is
olate)) | 558 if (!DOMDataStore::containsWrapper({{set_wrapper_reference_to.name}}, is
olate)) |
560 {{set_wrapper_reference_to.name}}->wrap(isolate, creationContext); | 559 {{set_wrapper_reference_to.name}}->wrap(isolate, creationContext); |
561 DOMDataStore::setWrapperReference(wrapper, {{set_wrapper_reference_to.na
me}}, isolate); | 560 DOMDataStore::setWrapperReference(wrapper, {{set_wrapper_reference_to.na
me}}, isolate); |
562 } | 561 } |
563 {% endfor %} | |
564 {% endif %} | 562 {% endif %} |
565 {% if reachable_node_function %} | 563 {% if set_wrapper_reference_from %} |
566 // The {{reachable_node_function}}() method may return a reference or a poin
ter. | 564 // The {{set_wrapper_reference_from}}() method may return a reference or a p
ointer. |
567 if (Node* owner = WTF::getPtr(impl->{{reachable_node_function}}())) { | 565 if (Node* owner = WTF::getPtr(impl->{{set_wrapper_reference_from}}())) { |
568 Node* root = V8GCController::opaqueRootForGC(isolate, owner); | 566 Node* root = V8GCController::opaqueRootForGC(isolate, owner); |
569 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); | 567 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); |
570 return; | 568 return; |
571 } | 569 } |
572 {% endif %} | 570 {% endif %} |
573 setObjectGroup(isolate, scriptWrappable, wrapper); | 571 setObjectGroup(isolate, scriptWrappable, wrapper); |
574 } | 572 } |
575 | 573 |
576 {% endif %} | 574 {% endif %} |
577 {% endblock %} | 575 {% endblock %} |
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
943 } | 941 } |
944 | 942 |
945 {% for method in methods if method.overloads and method.overloads.has_partial_ov
erloads %} | 943 {% for method in methods if method.overloads and method.overloads.has_partial_ov
erloads %} |
946 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt
erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) | 944 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt
erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) |
947 { | 945 { |
948 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; | 946 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; |
949 } | 947 } |
950 {% endfor %} | 948 {% endfor %} |
951 {% endif %} | 949 {% endif %} |
952 {% endblock %} | 950 {% endblock %} |
OLD | NEW |