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 ASSERT(DOMDataStore::containsWrapper({{set_wrapper_reference_to.name}}, isolate)); |
600 {{set_wrapper_reference_to.name}}->wrap(creationContext, isolate); | |
haraken
2015/02/16 03:56:49
Another idea would be just to skip creating a wrap
kouhei (in TOK)
2015/02/16 04:03:24
Wouldn't it be too fragile? I prefer an ASSERT her
| |
601 DOMDataStore::setWrapperReference(wrapper, {{set_wrapper_reference_to.na me}}, isolate); | 600 DOMDataStore::setWrapperReference(wrapper, {{set_wrapper_reference_to.na me}}, isolate); |
602 } | 601 } |
603 {% endfor %} | 602 {% endfor %} |
604 {% endif %} | 603 {% endif %} |
605 {% if reachable_node_function %} | 604 {% if reachable_node_function %} |
606 // The {{reachable_node_function}}() method may return a reference or a poin ter. | 605 // The {{reachable_node_function}}() method may return a reference or a poin ter. |
607 if (Node* owner = WTF::getPtr(impl->{{reachable_node_function}}())) { | 606 if (Node* owner = WTF::getPtr(impl->{{reachable_node_function}}())) { |
608 Node* root = V8GCController::opaqueRootForGC(isolate, owner); | 607 Node* root = V8GCController::opaqueRootForGC(isolate, owner); |
609 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r oot)), wrapper); | 608 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r oot)), wrapper); |
610 return; | 609 return; |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
979 } | 978 } |
980 | 979 |
981 {% for method in methods if method.overloads and method.overloads.has_partial_ov erloads %} | 980 {% 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>&)) | 981 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) |
983 { | 982 { |
984 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; | 983 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; |
985 } | 984 } |
986 {% endfor %} | 985 {% endfor %} |
987 {% endif %} | 986 {% endif %} |
988 {% endblock %} | 987 {% endblock %} |
OLD | NEW |