diff options
author | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2013-01-31 18:29:49 +0000 |
---|---|---|
committer | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2013-01-31 18:29:49 +0000 |
commit | 307050bb1e83299f9f53642798a86f0d67104682 (patch) | |
tree | 7c8e466f896db80f5f8910cd13e122a636220e0c /src | |
parent | dd91309f44948babd07fc5d9a11510ba7a3ab626 (diff) | |
download | nsgenbind-307050bb1e83299f9f53642798a86f0d67104682.tar.gz nsgenbind-307050bb1e83299f9f53642798a86f0d67104682.tar.bz2 |
output setter body
Diffstat (limited to 'src')
-rw-r--r-- | src/jsapi-libdom-property.c | 16 |
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"); |