diff options
author | Vincent Sanders <vince@kyllikki.org> | 2012-11-14 02:02:02 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2012-11-14 02:02:02 +0000 |
commit | 257f535bd18de9a6fc4e9d90303939706a783732 (patch) | |
tree | 69eed938402a1143f0396fa1dd0a99742768798b /src/jsapi-libdom-property.c | |
parent | 99cc47dfe9d86a86d37d90a7f87b52b0aef2fa5b (diff) | |
download | nsgenbind-257f535bd18de9a6fc4e9d90303939706a783732.tar.gz nsgenbind-257f535bd18de9a6fc4e9d90303939706a783732.tar.bz2 |
geneate constants as fixed value properties on the prototype
Diffstat (limited to 'src/jsapi-libdom-property.c')
-rw-r--r-- | src/jsapi-libdom-property.c | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/src/jsapi-libdom-property.c b/src/jsapi-libdom-property.c index 3e66b9e..e87620e 100644 --- a/src/jsapi-libdom-property.c +++ b/src/jsapi-libdom-property.c @@ -17,27 +17,6 @@ #include "webidl-ast.h" #include "jsapi-libdom.h" -static int webidl_const_spec_cb(struct webidl_node *node, void *ctx) -{ - struct binding *binding = ctx; - struct webidl_node *ident_node; - - ident_node = webidl_node_find(webidl_node_getnode(node), - NULL, - webidl_cmp_node_type, - (void *)WEBIDL_NODE_TYPE_IDENT); - - if (ident_node == NULL) { - /* broken AST - constants must have an identifier */ - return 1; - } - - fprintf(binding->outfile, - "\tJSAPI_PS_RO(%s, 0, JSPROP_ENUMERATE | JSPROP_SHARED),\n", - webidl_node_gettext(ident_node)); - - return 0; -} static int webidl_property_spec_cb(struct webidl_node *node, void *ctx) { @@ -119,13 +98,6 @@ generate_property_spec(struct binding *binding, const char *interface) webidl_property_spec_cb, binding); - /* for each const emit a property getter */ - webidl_node_for_each_type(webidl_node_getnode(members_node), - WEBIDL_NODE_TYPE_CONST, - webidl_const_spec_cb, - binding); - - members_node = webidl_node_find_type(webidl_node_getnode(interface_node), members_node, WEBIDL_NODE_TYPE_LIST); @@ -267,82 +239,6 @@ static int output_return(struct binding *binding, return 0; } -static int output_return_literal(struct binding *binding, - struct webidl_node *node) -{ - struct webidl_node *type_node = NULL; - struct webidl_node *literal_node = NULL; - struct webidl_node *type_base = NULL; - enum webidl_type webidl_arg_type; - - type_node = webidl_node_find_type(webidl_node_getnode(node), - NULL, - WEBIDL_NODE_TYPE_TYPE); - - type_base = webidl_node_find_type(webidl_node_getnode(type_node), - NULL, - WEBIDL_NODE_TYPE_TYPE_BASE); - - webidl_arg_type = webidl_node_getint(type_base); - - switch (webidl_arg_type) { - - case WEBIDL_TYPE_BOOL: - /* JSBool */ - literal_node = webidl_node_find_type(webidl_node_getnode(node), - NULL, - WEBIDL_NODE_TYPE_LITERAL_BOOL); - fprintf(binding->outfile, - "\tJS_SET_RVAL(cx, vp, BOOLEAN_TO_JSVAL(JS_FALSE));\n"); - break; - - case WEBIDL_TYPE_FLOAT: - case WEBIDL_TYPE_DOUBLE: - /* double */ - literal_node = webidl_node_find_type(webidl_node_getnode(node), - NULL, - WEBIDL_NODE_TYPE_LITERAL_FLOAT); - fprintf(binding->outfile, - "\tJS_SET_RVAL(cx, vp, DOUBLE_TO_JSVAL(0.0));\n"); - break; - - case WEBIDL_TYPE_LONG: - /* int32_t */ - literal_node = webidl_node_find_type(webidl_node_getnode(node), - NULL, - WEBIDL_NODE_TYPE_LITERAL_INT); - fprintf(binding->outfile, - "\tJS_SET_RVAL(cx, vp, INT_TO_JSVAL(%d));\n", - webidl_node_getint(literal_node)); - break; - - case WEBIDL_TYPE_SHORT: - /* int16_t */ - literal_node = webidl_node_find_type(webidl_node_getnode(node), - NULL, - WEBIDL_NODE_TYPE_LITERAL_INT); - fprintf(binding->outfile, - "\tJS_SET_RVAL(cx, vp, INT_TO_JSVAL(%d));\n", - webidl_node_getint(literal_node)); - break; - - - case WEBIDL_TYPE_STRING: - case WEBIDL_TYPE_BYTE: - case WEBIDL_TYPE_OCTET: - case WEBIDL_TYPE_LONGLONG: - case WEBIDL_TYPE_SEQUENCE: - case WEBIDL_TYPE_OBJECT: - case WEBIDL_TYPE_DATE: - case WEBIDL_TYPE_VOID: - case WEBIDL_TYPE_USER: - default: - WARN(WARNING_UNIMPLEMENTED, "types not allowed as literal"); - break; /* @todo these types are not allowed here */ - } - - return 0; -} /* generate variable declaration of the correct type with appropriate default */ @@ -584,33 +480,6 @@ static int webidl_property_body_cb(struct webidl_node *node, void *ctx) return output_property_getter(binding, node, webidl_node_gettext(ident_node)); } -static int webidl_const_body_cb(struct webidl_node *node, void *ctx) -{ - struct binding *binding = ctx; - struct webidl_node *ident_node; - - ident_node = webidl_node_find_type(webidl_node_getnode(node), - NULL, - WEBIDL_NODE_TYPE_IDENT); - if (ident_node == NULL) { - /* Broken AST - must have ident */ - return 1; - } - - fprintf(binding->outfile, - "static JSBool JSAPI_PROPERTYGET(%s, JSContext *cx, JSObject *obj, jsval *vp)\n" - "{\n", - webidl_node_gettext(ident_node)); - - output_return_literal(binding, node); - - fprintf(binding->outfile, - "\treturn JS_TRUE;\n" - "}\n\n"); - - return 0; - -} /* callback to emit implements property bodys */ static int webidl_implements_cb(struct webidl_node *node, void *ctx) @@ -654,12 +523,6 @@ output_property_body(struct binding *binding, const char *interface) webidl_property_body_cb, binding); - /* for each const emit a property getter */ - webidl_node_for_each_type(webidl_node_getnode(members_node), - WEBIDL_NODE_TYPE_CONST, - webidl_const_body_cb, - binding); - members_node = webidl_node_find_type(webidl_node_getnode(interface_node), members_node, |