OLD | NEW |
---|---|
1 {% extends 'interface_base.cpp' %} | 1 {% extends 'interface_base.cpp' %} |
2 | 2 |
3 | 3 |
4 {##############################################################################} | 4 {##############################################################################} |
5 {% block constructor_getter %} | 5 {% block constructor_getter %} |
6 {% if has_constructor_attributes %} | 6 {% if has_constructor_attributes %} |
7 static void {{cpp_class}}ConstructorGetter(v8::Local<v8::String>, const v8::Prop ertyCallbackInfo<v8::Value>& info) | 7 static void {{cpp_class}}ConstructorGetter(v8::Local<v8::String>, const v8::Prop ertyCallbackInfo<v8::Value>& info) |
8 { | 8 { |
9 v8::Handle<v8::Value> data = info.Data(); | 9 v8::Handle<v8::Value> data = info.Data(); |
10 ASSERT(data->IsExternal()); | 10 ASSERT(data->IsExternal()); |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
274 {% set setter = named_property_setter %} | 274 {% set setter = named_property_setter %} |
275 static void namedPropertySetter(v8::Local<v8::String> name, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<v8::Value>& info) | 275 static void namedPropertySetter(v8::Local<v8::String> name, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<v8::Value>& info) |
276 { | 276 { |
277 {% if not is_override_builtins %} | 277 {% if not is_override_builtins %} |
278 if (info.Holder()->HasRealNamedProperty(name)) | 278 if (info.Holder()->HasRealNamedProperty(name)) |
279 return; | 279 return; |
280 if (!info.Holder()->GetRealNamedPropertyInPrototypeChain(name).IsEmpty()) | 280 if (!info.Holder()->GetRealNamedPropertyInPrototypeChain(name).IsEmpty()) |
281 return; | 281 return; |
282 | 282 |
283 {% endif %} | 283 {% endif %} |
284 {% if setter.has_exception_state %} | |
Jens Widell
2014/09/11 09:40:54
Moved this since otherwise the |exceptionState| lo
| |
285 v8::String::Utf8Value namedProperty(name); | |
286 ExceptionState exceptionState(ExceptionState::SetterContext, *namedProperty, "{{interface_name}}", info.Holder(), info.GetIsolate()); | |
287 {% endif %} | |
284 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); | 288 {{cpp_class}}* impl = {{v8_class}}::toImpl(info.Holder()); |
285 {# v8_value_to_local_cpp_value('DOMString', 'name', 'propertyName') #} | 289 {# v8_value_to_local_cpp_value('DOMString', 'name', 'propertyName') #} |
286 TOSTRING_VOID(V8StringResource<>, propertyName, name); | 290 TOSTRING_VOID(V8StringResource<>, propertyName, name); |
287 {{setter.v8_value_to_local_cpp_value}}; | 291 {{setter.v8_value_to_local_cpp_value}}; |
288 {% if setter.has_exception_state %} | |
289 v8::String::Utf8Value namedProperty(name); | |
290 ExceptionState exceptionState(ExceptionState::SetterContext, *namedProperty, "{{interface_name}}", info.Holder(), info.GetIsolate()); | |
291 {% endif %} | |
292 {% set setter_name = setter.name or 'anonymousNamedSetter' %} | 292 {% set setter_name = setter.name or 'anonymousNamedSetter' %} |
293 {% set setter_arguments = | 293 {% set setter_arguments = |
294 ['propertyName', 'propertyValue', 'exceptionState'] | 294 ['propertyName', 'propertyValue', 'exceptionState'] |
295 if setter.is_raises_exception else | 295 if setter.is_raises_exception else |
296 ['propertyName', 'propertyValue'] %} | 296 ['propertyName', 'propertyValue'] %} |
297 bool result = impl->{{setter_name}}({{setter_arguments | join(', ')}}); | 297 bool result = impl->{{setter_name}}({{setter_arguments | join(', ')}}); |
298 {% if setter.is_raises_exception %} | 298 {% if setter.is_raises_exception %} |
299 if (exceptionState.throwIfNeeded()) | 299 if (exceptionState.throwIfNeeded()) |
300 return; | 300 return; |
301 {% endif %} | 301 {% endif %} |
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1263 {% endif %} | 1263 {% endif %} |
1264 } | 1264 } |
1265 | 1265 |
1266 template<> | 1266 template<> |
1267 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c reationContext, v8::Isolate* isolate) | 1267 v8::Handle<v8::Value> toV8NoInline({{cpp_class}}* impl, v8::Handle<v8::Object> c reationContext, v8::Isolate* isolate) |
1268 { | 1268 { |
1269 return toV8(impl, creationContext, isolate); | 1269 return toV8(impl, creationContext, isolate); |
1270 } | 1270 } |
1271 | 1271 |
1272 {% endblock %} | 1272 {% endblock %} |
OLD | NEW |