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()); |
11 {% if getter.is_raises_exception %} | 11 {% if getter.is_raises_exception %} |
12 ExceptionState exceptionState(ExceptionState::IndexedGetterContext, "{{inter
face_name}}", info.Holder(), info.GetIsolate()); | 12 ExceptionState exceptionState(ExceptionState::IndexedGetterContext, "{{inter
face_name}}", info.Holder(), info.GetIsolate()); |
13 {% endif %} | 13 {% endif %} |
| 14 {% if getter.is_call_with_script_state %} |
| 15 ScriptState* scriptState = ScriptState::current(info.GetIsolate()); |
| 16 {% endif %} |
14 {% set getter_name = getter.name or 'anonymousIndexedGetter' %} | 17 {% set getter_name = getter.name or 'anonymousIndexedGetter' %} |
15 {% set getter_arguments = ['index', 'exceptionState'] | 18 {% set getter_arguments = ['index'] %} |
16 if getter.is_raises_exception else ['index'] %} | 19 {% if getter.is_call_with_script_state %} |
| 20 {% set getter_arguments = ['scriptState'] + getter_arguments %} |
| 21 {% endif %} |
| 22 {% if getter.is_raises_exception %} |
| 23 {% set getter_arguments = getter_arguments + ['exceptionState'] %} |
| 24 {% endif %} |
17 {{getter.cpp_type}} result = impl->{{getter_name}}({{getter_arguments | join
(', ')}}); | 25 {{getter.cpp_type}} result = impl->{{getter_name}}({{getter_arguments | join
(', ')}}); |
18 {% if getter.is_raises_exception %} | 26 {% if getter.is_raises_exception %} |
19 if (exceptionState.throwIfNeeded()) | 27 if (exceptionState.throwIfNeeded()) |
20 return; | 28 return; |
21 {% endif %} | 29 {% endif %} |
22 if ({{getter.is_null_expression}}) | 30 if ({{getter.is_null_expression}}) |
23 return; | 31 return; |
24 {{getter.v8_set_return_value}}; | 32 {{getter.v8_set_return_value}}; |
25 } | 33 } |
26 | 34 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 {% endif %} | 69 {% endif %} |
62 {% if setter.has_type_checking_interface %} | 70 {% if setter.has_type_checking_interface %} |
63 {# Type checking for interface types (if interface not implemented, throw | 71 {# Type checking for interface types (if interface not implemented, throw |
64 TypeError), per http://www.w3.org/TR/WebIDL/#es-interface #} | 72 TypeError), per http://www.w3.org/TR/WebIDL/#es-interface #} |
65 if (!propertyValue{% if setter.is_nullable %} && !isUndefinedOrNull(v8Value)
{% endif %}) { | 73 if (!propertyValue{% if setter.is_nullable %} && !isUndefinedOrNull(v8Value)
{% endif %}) { |
66 exceptionState.throwTypeError("The provided value is not of type '{{sett
er.idl_type}}'."); | 74 exceptionState.throwTypeError("The provided value is not of type '{{sett
er.idl_type}}'."); |
67 exceptionState.throwIfNeeded(); | 75 exceptionState.throwIfNeeded(); |
68 return; | 76 return; |
69 } | 77 } |
70 {% endif %} | 78 {% endif %} |
| 79 {% if setter.is_call_with_script_state %} |
| 80 ScriptState* scriptState = ScriptState::current(info.GetIsolate()); |
| 81 {% endif %} |
71 {% set setter_name = setter.name or 'anonymousIndexedSetter' %} | 82 {% set setter_name = setter.name or 'anonymousIndexedSetter' %} |
72 {% set setter_arguments = ['index', 'propertyValue', 'exceptionState'] | 83 {% set setter_arguments = ['index', 'propertyValue'] %} |
73 if setter.is_raises_exception else ['index', 'propertyValue'] %} | 84 {% if setter.is_call_with_script_state %} |
| 85 {% set setter_arguments = ['scriptState'] + setter_arguments %} |
| 86 {% endif %} |
| 87 {% if setter.is_raises_exception %} |
| 88 {% set setter_arguments = setter_arguments + ['exceptionState'] %} |
| 89 {% endif %} |
74 bool result = impl->{{setter_name}}({{setter_arguments | join(', ')}}); | 90 bool result = impl->{{setter_name}}({{setter_arguments | join(', ')}}); |
75 {% if setter.is_raises_exception %} | 91 {% if setter.is_raises_exception %} |
76 if (exceptionState.throwIfNeeded()) | 92 if (exceptionState.throwIfNeeded()) |
77 return; | 93 return; |
78 {% endif %} | 94 {% endif %} |
79 if (!result) | 95 if (!result) |
80 return; | 96 return; |
81 v8SetReturnValue(info, v8Value); | 97 v8SetReturnValue(info, v8Value); |
82 } | 98 } |
83 | 99 |
(...skipping 23 matching lines...) Expand all Loading... |
107 {##############################################################################} | 123 {##############################################################################} |
108 {% block indexed_property_deleter %} | 124 {% block indexed_property_deleter %} |
109 {% if indexed_property_deleter and not indexed_property_deleter.is_custom %} | 125 {% if indexed_property_deleter and not indexed_property_deleter.is_custom %} |
110 {% set deleter = indexed_property_deleter %} | 126 {% set deleter = indexed_property_deleter %} |
111 static void indexedPropertyDeleter(uint32_t index, const v8::PropertyCallbackInf
o<v8::Boolean>& info) | 127 static void indexedPropertyDeleter(uint32_t index, const v8::PropertyCallbackInf
o<v8::Boolean>& info) |
112 { | 128 { |
113 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); | 129 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); |
114 {% if deleter.is_raises_exception %} | 130 {% if deleter.is_raises_exception %} |
115 ExceptionState exceptionState(ExceptionState::IndexedDeletionContext, "{{int
erface_name}}", info.Holder(), info.GetIsolate()); | 131 ExceptionState exceptionState(ExceptionState::IndexedDeletionContext, "{{int
erface_name}}", info.Holder(), info.GetIsolate()); |
116 {% endif %} | 132 {% endif %} |
| 133 {% if deleter.is_call_with_script_state %} |
| 134 ScriptState* scriptState = ScriptState::current(info.GetIsolate()); |
| 135 {% endif %} |
117 {% set deleter_name = deleter.name or 'anonymousIndexedDeleter' %} | 136 {% set deleter_name = deleter.name or 'anonymousIndexedDeleter' %} |
118 {% set deleter_arguments = ['index', 'exceptionState'] | 137 {% set deleter_arguments = ['index'] %} |
119 if deleter.is_raises_exception else ['index'] %} | 138 {% if deleter.is_call_with_script_state %} |
| 139 {% set deleter_arguments = ['scriptState'] + deleter_arguments %} |
| 140 {% endif %} |
| 141 {% if deleter.is_raises_exception %} |
| 142 {% set deleter_arguments = deleter_arguments + ['exceptionState'] %} |
| 143 {% endif %} |
120 DeleteResult result = impl->{{deleter_name}}({{deleter_arguments | join(', '
)}}); | 144 DeleteResult result = impl->{{deleter_name}}({{deleter_arguments | join(', '
)}}); |
121 {% if deleter.is_raises_exception %} | 145 {% if deleter.is_raises_exception %} |
122 if (exceptionState.throwIfNeeded()) | 146 if (exceptionState.throwIfNeeded()) |
123 return; | 147 return; |
124 {% endif %} | 148 {% endif %} |
125 if (result != DeleteUnknownProperty) | 149 if (result != DeleteUnknownProperty) |
126 return v8SetReturnValueBool(info, result == DeleteSuccess); | 150 return v8SetReturnValueBool(info, result == DeleteSuccess); |
127 } | 151 } |
128 | 152 |
129 {% endif %} | 153 {% endif %} |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 if (!info.Holder()->GetRealNamedPropertyInPrototypeChain(nameString).IsEmpty
()) | 188 if (!info.Holder()->GetRealNamedPropertyInPrototypeChain(nameString).IsEmpty
()) |
165 return; | 189 return; |
166 | 190 |
167 {% endif %} | 191 {% endif %} |
168 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); | 192 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); |
169 AtomicString propertyName = toCoreAtomicString(nameString); | 193 AtomicString propertyName = toCoreAtomicString(nameString); |
170 {% if getter.is_raises_exception %} | 194 {% if getter.is_raises_exception %} |
171 v8::String::Utf8Value namedProperty(nameString); | 195 v8::String::Utf8Value namedProperty(nameString); |
172 ExceptionState exceptionState(ExceptionState::GetterContext, *namedProperty,
"{{interface_name}}", info.Holder(), info.GetIsolate()); | 196 ExceptionState exceptionState(ExceptionState::GetterContext, *namedProperty,
"{{interface_name}}", info.Holder(), info.GetIsolate()); |
173 {% endif %} | 197 {% endif %} |
| 198 {% if getter.is_call_with_script_state %} |
| 199 ScriptState* scriptState = ScriptState::current(info.GetIsolate()); |
| 200 {% endif %} |
174 {% if getter.use_output_parameter_for_result %} | 201 {% if getter.use_output_parameter_for_result %} |
175 {{getter.cpp_type}} result; | 202 {{getter.cpp_type}} result; |
176 {{getter.cpp_value}}; | 203 {{getter.cpp_value}}; |
177 {% else %} | 204 {% else %} |
178 {{getter.cpp_type}} result = {{getter.cpp_value}}; | 205 {{getter.cpp_type}} result = {{getter.cpp_value}}; |
179 {% endif %} | 206 {% endif %} |
180 {% if getter.is_raises_exception %} | 207 {% if getter.is_raises_exception %} |
181 if (exceptionState.throwIfNeeded()) | 208 if (exceptionState.throwIfNeeded()) |
182 return; | 209 return; |
183 {% endif %} | 210 {% endif %} |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 {{v8_value_to_local_cpp_value(setter) | indent}} | 265 {{v8_value_to_local_cpp_value(setter) | indent}} |
239 {% if setter.has_type_checking_interface %} | 266 {% if setter.has_type_checking_interface %} |
240 {# Type checking for interface types (if interface not implemented, throw | 267 {# Type checking for interface types (if interface not implemented, throw |
241 TypeError), per http://www.w3.org/TR/WebIDL/#es-interface #} | 268 TypeError), per http://www.w3.org/TR/WebIDL/#es-interface #} |
242 if (!propertyValue{% if setter.is_nullable %} && !isUndefinedOrNull(v8Value)
{% endif %}) { | 269 if (!propertyValue{% if setter.is_nullable %} && !isUndefinedOrNull(v8Value)
{% endif %}) { |
243 exceptionState.throwTypeError("The provided value is not of type '{{sett
er.idl_type}}'."); | 270 exceptionState.throwTypeError("The provided value is not of type '{{sett
er.idl_type}}'."); |
244 exceptionState.throwIfNeeded(); | 271 exceptionState.throwIfNeeded(); |
245 return; | 272 return; |
246 } | 273 } |
247 {% endif %} | 274 {% endif %} |
| 275 {% if setter.is_call_with_script_state %} |
| 276 ScriptState* scriptState = ScriptState::current(info.GetIsolate()); |
| 277 {% endif %} |
248 {% set setter_name = setter.name or 'anonymousNamedSetter' %} | 278 {% set setter_name = setter.name or 'anonymousNamedSetter' %} |
249 {% set setter_arguments = | 279 {% set setter_arguments = ['propertyName', 'propertyValue'] %} |
250 ['propertyName', 'propertyValue', 'exceptionState'] | 280 {% if setter.is_call_with_script_state %} |
251 if setter.is_raises_exception else | 281 {% set setter_arguments = ['scriptState'] + setter_arguments %} |
252 ['propertyName', 'propertyValue'] %} | 282 {% endif %} |
| 283 {% if setter.is_raises_exception %} |
| 284 {% set setter_arguments = setter_arguments + ['exceptionState'] %} |
| 285 {% endif %} |
253 bool result = impl->{{setter_name}}({{setter_arguments | join(', ')}}); | 286 bool result = impl->{{setter_name}}({{setter_arguments | join(', ')}}); |
254 {% if setter.is_raises_exception %} | 287 {% if setter.is_raises_exception %} |
255 if (exceptionState.throwIfNeeded()) | 288 if (exceptionState.throwIfNeeded()) |
256 return; | 289 return; |
257 {% endif %} | 290 {% endif %} |
258 if (!result) | 291 if (!result) |
259 return; | 292 return; |
260 v8SetReturnValue(info, v8Value); | 293 v8SetReturnValue(info, v8Value); |
261 } | 294 } |
262 | 295 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 static void namedPropertyDeleter(v8::Local<v8::Name> name, const v8::PropertyCal
lbackInfo<v8::Boolean>& info) | 368 static void namedPropertyDeleter(v8::Local<v8::Name> name, const v8::PropertyCal
lbackInfo<v8::Boolean>& info) |
336 { | 369 { |
337 if (!name->IsString()) | 370 if (!name->IsString()) |
338 return; | 371 return; |
339 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); | 372 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); |
340 AtomicString propertyName = toCoreAtomicString(name.As<v8::String>()); | 373 AtomicString propertyName = toCoreAtomicString(name.As<v8::String>()); |
341 {% if deleter.is_raises_exception %} | 374 {% if deleter.is_raises_exception %} |
342 v8::String::Utf8Value namedProperty(name); | 375 v8::String::Utf8Value namedProperty(name); |
343 ExceptionState exceptionState(ExceptionState::DeletionContext, *namedPropert
y, "{{interface_name}}", info.Holder(), info.GetIsolate()); | 376 ExceptionState exceptionState(ExceptionState::DeletionContext, *namedPropert
y, "{{interface_name}}", info.Holder(), info.GetIsolate()); |
344 {% endif %} | 377 {% endif %} |
| 378 {% if deleter.is_call_with_script_state %} |
| 379 ScriptState* scriptState = ScriptState::current(info.GetIsolate()); |
| 380 {% endif %} |
345 {% set deleter_name = deleter.name or 'anonymousNamedDeleter' %} | 381 {% set deleter_name = deleter.name or 'anonymousNamedDeleter' %} |
346 {% set deleter_arguments = ['propertyName', 'exceptionState'] | 382 {% set deleter_arguments = ['propertyName'] %} |
347 if deleter.is_raises_exception else ['propertyName'] %} | 383 {% if deleter.is_call_with_script_state %} |
| 384 {% set deleter_arguments = ['scriptState'] + deleter_arguments %} |
| 385 {% endif %} |
| 386 {% if deleter.is_raises_exception %} |
| 387 {% set deleter_arguments = deleter_arguments + ['exceptionState'] %} |
| 388 {% endif %} |
348 DeleteResult result = impl->{{deleter_name}}({{deleter_arguments | join(', '
)}}); | 389 DeleteResult result = impl->{{deleter_name}}({{deleter_arguments | join(', '
)}}); |
349 {% if deleter.is_raises_exception %} | 390 {% if deleter.is_raises_exception %} |
350 if (exceptionState.throwIfNeeded()) | 391 if (exceptionState.throwIfNeeded()) |
351 return; | 392 return; |
352 {% endif %} | 393 {% endif %} |
353 if (result != DeleteUnknownProperty) | 394 if (result != DeleteUnknownProperty) |
354 return v8SetReturnValueBool(info, result == DeleteSuccess); | 395 return v8SetReturnValueBool(info, result == DeleteSuccess); |
355 } | 396 } |
356 | 397 |
357 {% endif %} | 398 {% endif %} |
(...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
989 } | 1030 } |
990 | 1031 |
991 {% for method in methods if method.overloads and method.overloads.has_partial_ov
erloads %} | 1032 {% for method in methods if method.overloads and method.overloads.has_partial_ov
erloads %} |
992 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt
erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) | 1033 void {{v8_class}}::register{{method.name | blink_capitalize}}MethodForPartialInt
erface(void (*method)(const v8::FunctionCallbackInfo<v8::Value>&)) |
993 { | 1034 { |
994 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; | 1035 {{cpp_class}}V8Internal::{{method.name}}MethodForPartialInterface = method; |
995 } | 1036 } |
996 {% endfor %} | 1037 {% endfor %} |
997 {% endif %} | 1038 {% endif %} |
998 {% endblock %} | 1039 {% endblock %} |
OLD | NEW |