summaryrefslogtreecommitdiff
path: root/src/jsapi-libdom-property.c
diff options
context:
space:
mode:
authorVincent Sanders <vincent.sanders@collabora.co.uk>2013-01-31 18:29:49 +0000
committerVincent Sanders <vincent.sanders@collabora.co.uk>2013-01-31 18:29:49 +0000
commit307050bb1e83299f9f53642798a86f0d67104682 (patch)
tree7c8e466f896db80f5f8910cd13e122a636220e0c /src/jsapi-libdom-property.c
parentdd91309f44948babd07fc5d9a11510ba7a3ab626 (diff)
downloadnsgenbind-307050bb1e83299f9f53642798a86f0d67104682.tar.gz
nsgenbind-307050bb1e83299f9f53642798a86f0d67104682.tar.bz2
output setter body
Diffstat (limited to 'src/jsapi-libdom-property.c')
-rw-r--r--src/jsapi-libdom-property.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/jsapi-libdom-property.c b/src/jsapi-libdom-property.c
index a6cc819..7ead531 100644
--- a/src/jsapi-libdom-property.c
+++ b/src/jsapi-libdom-property.c
@@ -828,6 +828,7 @@ static int output_property_setter(struct binding *binding,
struct webidl_node *node,
const char *ident)
{
+ struct genbind_node *property_node;
char *putforwards;
putforwards = get_keyval_extended_attribute(node, "PutForwards");
@@ -859,13 +860,24 @@ static int output_property_setter(struct binding *binding,
return 0;
}
+ property_node = genbind_node_find_type_ident(binding->gb_ast,
+ NULL,
+ GENBIND_NODE_TYPE_SETTER,
+ ident);
fprintf(binding->outfile,
- "static JSBool JSAPI_STRICTPROP(%s_set, JSContext *cx, JSObject *obj, jsval *vp)\n",
+ "static JSBool JSAPI_STRICTPROP(%s_set, JSContext *cx, JSObject *obj, jsval *vp)\n"
+ "{\n",
ident);
+ if (property_node != NULL) {
+ /* binding source block */
+ output_code_block(binding, genbind_node_getnode(property_node));
+ } else {
+ output_property_placeholder(binding, node, ident);
+ }
+
fprintf(binding->outfile,
- "{\n"
" return JS_FALSE; /* disallow the asignment by default */\n"
"}\n\n");