Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(487)

Side by Side Diff: Source/bindings/templates/interface.cpp

Issue 1109323002: [bindings] Support passing of ScriptState for namedPropertyQuery form of getter. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 {% endif %} 297 {% endif %}
298 {% endblock %} 298 {% endblock %}
299 299
300 300
301 {##############################################################################} 301 {##############################################################################}
302 {% block named_property_query %} 302 {% block named_property_query %}
303 {% if named_property_getter and named_property_getter.is_enumerable and 303 {% if named_property_getter and named_property_getter.is_enumerable and
304 not named_property_getter.is_custom_property_query %} 304 not named_property_getter.is_custom_property_query %}
305 {# If there is an enumerator, there MUST be a query method to properly 305 {# If there is an enumerator, there MUST be a query method to properly
306 communicate property attributes. #} 306 communicate property attributes. #}
307 {% set getter = named_property_getter %}
307 static void namedPropertyQuery(v8::Local<v8::Name> name, const v8::PropertyCallb ackInfo<v8::Integer>& info) 308 static void namedPropertyQuery(v8::Local<v8::Name> name, const v8::PropertyCallb ackInfo<v8::Integer>& info)
308 { 309 {
309 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); 310 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder());
310 AtomicString propertyName = toCoreAtomicString(name.As<v8::String>()); 311 AtomicString propertyName = toCoreAtomicString(name.As<v8::String>());
311 v8::String::Utf8Value namedProperty(name); 312 v8::String::Utf8Value namedProperty(name);
312 ExceptionState exceptionState(ExceptionState::GetterContext, *namedProperty, "{{interface_name}}", info.Holder(), info.GetIsolate()); 313 ExceptionState exceptionState(ExceptionState::GetterContext, *namedProperty, "{{interface_name}}", info.Holder(), info.GetIsolate());
313 bool result = impl->namedPropertyQuery(propertyName, exceptionState); 314 {% if getter.is_call_with_script_state %}
315 ScriptState* scriptState = ScriptState::current(info.GetIsolate());
316 {% endif %}
317 {% set getter_arguments = ['propertyName', 'exceptionState'] %}
318 {% if getter.is_call_with_script_state %}
319 {% set getter_arguments = ['scriptState'] + getter_arguments %}
320 {% endif %}
haraken 2015/04/29 15:53:45 {% set getter_arguments = ['propertyName', 'except
321 bool result = impl->namedPropertyQuery({{getter_arguments | join(', ')}});
314 if (exceptionState.throwIfNeeded()) 322 if (exceptionState.throwIfNeeded())
315 return; 323 return;
316 if (!result) 324 if (!result)
317 return; 325 return;
318 v8SetReturnValueInt(info, v8::None); 326 v8SetReturnValueInt(info, v8::None);
319 } 327 }
320 328
321 {% endif %} 329 {% endif %}
322 {% endblock %} 330 {% endblock %}
323 331
(...skipping 27 matching lines...) Expand all
351 AtomicString propertyName = toCoreAtomicString(name.As<v8::String>()); 359 AtomicString propertyName = toCoreAtomicString(name.As<v8::String>());
352 {% if deleter.is_raises_exception %} 360 {% if deleter.is_raises_exception %}
353 v8::String::Utf8Value namedProperty(name); 361 v8::String::Utf8Value namedProperty(name);
354 ExceptionState exceptionState(ExceptionState::DeletionContext, *namedPropert y, "{{interface_name}}", info.Holder(), info.GetIsolate()); 362 ExceptionState exceptionState(ExceptionState::DeletionContext, *namedPropert y, "{{interface_name}}", info.Holder(), info.GetIsolate());
355 {% endif %} 363 {% endif %}
356 {% if deleter.is_call_with_script_state %} 364 {% if deleter.is_call_with_script_state %}
357 ScriptState* scriptState = ScriptState::current(info.GetIsolate()); 365 ScriptState* scriptState = ScriptState::current(info.GetIsolate());
358 {% endif %} 366 {% endif %}
359 {% set deleter_name = deleter.name or 'anonymousNamedDeleter' %} 367 {% set deleter_name = deleter.name or 'anonymousNamedDeleter' %}
360 {% set deleter_arguments = ['propertyName'] %} 368 {% set deleter_arguments = ['propertyName'] %}
361 {% if deleter.is_call_with_script_state %} 369 {% if deleter.is_call_with_script_state %}
haraken 2015/04/29 15:53:45 Ditto. (Not related to your CL though.)
362 {% set deleter_arguments = ['scriptState'] + deleter_arguments %} 370 {% set deleter_arguments = ['scriptState'] + deleter_arguments %}
363 {% endif %} 371 {% endif %}
364 {% if deleter.is_raises_exception %} 372 {% if deleter.is_raises_exception %}
365 {% set deleter_arguments = deleter_arguments + ['exceptionState'] %} 373 {% set deleter_arguments = deleter_arguments + ['exceptionState'] %}
366 {% endif %} 374 {% endif %}
367 DeleteResult result = impl->{{deleter_name}}({{deleter_arguments | join(', ' )}}); 375 DeleteResult result = impl->{{deleter_name}}({{deleter_arguments | join(', ' )}});
368 {% if deleter.is_raises_exception %} 376 {% if deleter.is_raises_exception %}
369 if (exceptionState.throwIfNeeded()) 377 if (exceptionState.throwIfNeeded())
370 return; 378 return;
371 {% endif %} 379 {% endif %}
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 } 1050 }
1043 1051
1044 {% for method in methods if method.overloads and method.overloads.has_partial_ov erloads %} 1052 {% for method in methods if method.overloads and method.overloads.has_partial_ov erloads %}
1045 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) 1053 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&))
1046 { 1054 {
1047 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; 1055 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method;
1048 } 1056 }
1049 {% endfor %} 1057 {% endfor %}
1050 {% endif %} 1058 {% endif %}
1051 {% endblock %} 1059 {% endblock %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698