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 ('%sV8Internal::%sConstructorGetterCallback' % | 10 ('%sV8Internal::%sConstructorGetterCallback' % |
(...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 v8SetReturnValue(info, wrapper); | 689 v8SetReturnValue(info, wrapper); |
690 } | 690 } |
691 | 691 |
692 {% endif %} | 692 {% endif %} |
693 {% endblock %} | 693 {% endblock %} |
694 | 694 |
695 | 695 |
696 {##############################################################################} | 696 {##############################################################################} |
697 {% block visit_dom_wrapper %} | 697 {% block visit_dom_wrapper %} |
698 {% if reachable_node_function or set_wrapper_reference_to_list %} | 698 {% if reachable_node_function or set_wrapper_reference_to_list %} |
699 void {{v8_class}}::visitDOMWrapper(void* object, const v8::Persistent<v8::Object
>& wrapper, v8::Isolate* isolate) | 699 void {{v8_class}}::visitDOMWrapper(ScriptWrappableBase* internalPointer, const v
8::Persistent<v8::Object>& wrapper, v8::Isolate* isolate) |
700 { | 700 { |
701 {{cpp_class}}* impl = fromInternalPointer(object); | 701 {{cpp_class}}* impl = fromInternalPointer(internalPointer); |
702 {% if set_wrapper_reference_to_list %} | 702 {% if set_wrapper_reference_to_list %} |
703 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); | 703 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); |
704 V8WrapperInstantiationScope scope(creationContext, isolate); | 704 V8WrapperInstantiationScope scope(creationContext, isolate); |
705 {% for set_wrapper_reference_to in set_wrapper_reference_to_list %} | 705 {% for set_wrapper_reference_to in set_wrapper_reference_to_list %} |
706 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im
pl->{{set_wrapper_reference_to.name}}(); | 706 {{set_wrapper_reference_to.cpp_type}} {{set_wrapper_reference_to.name}} = im
pl->{{set_wrapper_reference_to.name}}(); |
707 if ({{set_wrapper_reference_to.name}}) { | 707 if ({{set_wrapper_reference_to.name}}) { |
708 if (!DOMDataStore::containsWrapper<{{set_wrapper_reference_to.v8_type}}>
({{set_wrapper_reference_to.name}}, isolate)) | 708 if (!DOMDataStore::containsWrapper<{{set_wrapper_reference_to.v8_type}}>
({{set_wrapper_reference_to.name}}, isolate)) |
709 wrap({{set_wrapper_reference_to.name}}, creationContext, isolate); | 709 wrap({{set_wrapper_reference_to.name}}, creationContext, isolate); |
710 DOMDataStore::setWrapperReference<{{set_wrapper_reference_to.v8_type}}>(
wrapper, {{set_wrapper_reference_to.name}}, isolate); | 710 DOMDataStore::setWrapperReference<{{set_wrapper_reference_to.v8_type}}>(
wrapper, {{set_wrapper_reference_to.name}}, isolate); |
711 } | 711 } |
712 {% endfor %} | 712 {% endfor %} |
713 {% endif %} | 713 {% endif %} |
714 {% if reachable_node_function %} | 714 {% if reachable_node_function %} |
715 // The {{reachable_node_function}}() method may return a reference or a poin
ter. | 715 // The {{reachable_node_function}}() method may return a reference or a poin
ter. |
716 if (Node* owner = WTF::getPtr(impl->{{reachable_node_function}}())) { | 716 if (Node* owner = WTF::getPtr(impl->{{reachable_node_function}}())) { |
717 Node* root = V8GCController::opaqueRootForGC(owner, isolate); | 717 Node* root = V8GCController::opaqueRootForGC(owner, isolate); |
718 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); | 718 isolate->SetReferenceFromGroup(v8::UniqueId(reinterpret_cast<intptr_t>(r
oot)), wrapper); |
719 return; | 719 return; |
720 } | 720 } |
721 {% endif %} | 721 {% endif %} |
722 setObjectGroup(object, wrapper, isolate); | 722 setObjectGroup(internalPointer, wrapper, isolate); |
723 } | 723 } |
724 | 724 |
725 {% endif %} | 725 {% endif %} |
726 {% endblock %} | 726 {% endblock %} |
727 | 727 |
728 | 728 |
729 {##############################################################################} | 729 {##############################################################################} |
730 {% block shadow_attributes %} | 730 {% block shadow_attributes %} |
731 {% if interface_name == 'Window' %} | 731 {% if interface_name == 'Window' %} |
732 static const V8DOMConfiguration::AttributeConfiguration shadowAttributes[] = { | 732 static const V8DOMConfiguration::AttributeConfiguration shadowAttributes[] = { |
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1141 return V8PerIsolateData::from(isolate)->findInstanceInPrototypeChain(&wrappe
rTypeInfo, v8Value); | 1141 return V8PerIsolateData::from(isolate)->findInstanceInPrototypeChain(&wrappe
rTypeInfo, v8Value); |
1142 } | 1142 } |
1143 | 1143 |
1144 {% endblock %} | 1144 {% endblock %} |
1145 | 1145 |
1146 | 1146 |
1147 {##############################################################################} | 1147 {##############################################################################} |
1148 {% block to_native_with_type_check %} | 1148 {% block to_native_with_type_check %} |
1149 {{cpp_class}}* {{v8_class}}::toNativeWithTypeCheck(v8::Isolate* isolate, v8::Han
dle<v8::Value> value) | 1149 {{cpp_class}}* {{v8_class}}::toNativeWithTypeCheck(v8::Isolate* isolate, v8::Han
dle<v8::Value> value) |
1150 { | 1150 { |
1151 return hasInstance(value, isolate) ? fromInternalPointer(v8::Handle<v8::Obje
ct>::Cast(value)->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex)) :
0; | 1151 return hasInstance(value, isolate) ? fromInternalPointer(blink::toInternalPo
inter(v8::Handle<v8::Object>::Cast(value))) : 0; |
1152 } | 1152 } |
1153 | 1153 |
1154 {% endblock %} | 1154 {% endblock %} |
1155 | 1155 |
1156 | 1156 |
1157 {##############################################################################} | 1157 {##############################################################################} |
1158 {% block install_per_context_attributes %} | 1158 {% block install_per_context_attributes %} |
1159 {% if has_per_context_enabled_attributes %} | 1159 {% if has_per_context_enabled_attributes %} |
1160 void {{v8_class}}::installPerContextEnabledProperties(v8::Handle<v8::Object> ins
tanceObject, {{cpp_class}}* impl, v8::Isolate* isolate) | 1160 void {{v8_class}}::installPerContextEnabledProperties(v8::Handle<v8::Object> ins
tanceObject, {{cpp_class}}* impl, v8::Isolate* isolate) |
1161 { | 1161 { |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1328 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(impl, &wrapperTypeInf
o, wrapper, isolate, {{wrapper_configuration}}); | 1328 V8DOMWrapper::associateObjectWithWrapper<{{v8_class}}>(impl, &wrapperTypeInf
o, wrapper, isolate, {{wrapper_configuration}}); |
1329 return wrapper; | 1329 return wrapper; |
1330 } | 1330 } |
1331 | 1331 |
1332 {% endif %} | 1332 {% endif %} |
1333 {% endblock %} | 1333 {% endblock %} |
1334 | 1334 |
1335 | 1335 |
1336 {##############################################################################} | 1336 {##############################################################################} |
1337 {% block deref_object_and_to_v8_no_inline %} | 1337 {% block deref_object_and_to_v8_no_inline %} |
1338 void {{v8_class}}::derefObject(void* object) | 1338 void {{v8_class}}::derefObject(ScriptWrappableBase* internalPointer) |
1339 { | 1339 { |
1340 {% if gc_type == 'RefCountedObject' %} | 1340 {% if gc_type == 'RefCountedObject' %} |
1341 fromInternalPointer(object)->deref(); | 1341 fromInternalPointer(internalPointer)->deref(); |
1342 {% elif gc_type == 'WillBeGarbageCollectedObject' %} | 1342 {% elif gc_type == 'WillBeGarbageCollectedObject' %} |
1343 {% filter conditional('!ENABLE(OILPAN)') %} | 1343 {% filter conditional('!ENABLE(OILPAN)') %} |
1344 fromInternalPointer(object)->deref(); | 1344 fromInternalPointer(internalPointer)->deref(); |
1345 {% endfilter %} | 1345 {% endfilter %} |
1346 {% endif %} | 1346 {% endif %} |
1347 } | 1347 } |
1348 | 1348 |
1349 template<> | 1349 template<> |
1350 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) | 1350 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c
reationContext, v8::Isolate* isolate) |
1351 { | 1351 { |
1352 return toV8(impl, creationContext, isolate); | 1352 return toV8(impl, creationContext, isolate); |
1353 } | 1353 } |
1354 | 1354 |
1355 {% endblock %} | 1355 {% endblock %} |
OLD | NEW |