summaryrefslogtreecommitdiff
path: root/src/duk-libdom-generated.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/duk-libdom-generated.c')
-rw-r--r--src/duk-libdom-generated.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/duk-libdom-generated.c b/src/duk-libdom-generated.c
index 0790e00..9305dcf 100644
--- a/src/duk-libdom-generated.c
+++ b/src/duk-libdom-generated.c
@@ -262,8 +262,21 @@ output_generated_attribute_setter(FILE* outf,
"\tdom_exception exc;\n"
"\tdom_string *str;\n"
"\tduk_size_t slen;\n"
- "\tconst char *s;\n"
- "\ts = duk_safe_to_lstring(ctx, 0, &slen);\n"
+ "\tconst char *s;\n");
+ if ((atributee->treatnullas != NULL) &&
+ (strcmp(atributee->treatnullas, "EmptyString") == 0)) {
+ fprintf(outf,
+ "\tif (duk_is_null(ctx, 0)) {\n"
+ "\t\ts = \"\";\n"
+ "\t\tslen = 0;\n"
+ "\t} else {\n"
+ "\t\ts = duk_safe_to_lstring(ctx, 0, &slen);\n"
+ "\t}\n");
+ } else {
+ fprintf(outf,
+ "\ts = duk_safe_to_lstring(ctx, 0, &slen);\n");
+ }
+ fprintf(outf,
"\n"
"\texc = dom_string_create((const uint8_t *)s, slen, &str);\n"
"\tif (exc != DOM_NO_ERR) {\n"