From 807d2b45f5e5c1cff654cdba2e4043f90b06fd59 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 4 May 2019 15:35:46 +0100 Subject: When operating on Window event attributes, pass NULL to dukky Signed-off-by: Daniel Silverstone --- src/duk-libdom-generated.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/duk-libdom-generated.c b/src/duk-libdom-generated.c index 109b237..13194e0 100644 --- a/src/duk-libdom-generated.c +++ b/src/duk-libdom-generated.c @@ -47,8 +47,14 @@ output_generated_attribute_user_getter(struct opctx *outc, return -1; /* not onxxx */ } + if (interfacee->u.interface.primary_global) { + outputf(outc, + "\tdom_event_target *et = NULL;\n"); + } else { + outputf(outc, + "\tdom_event_target *et = (dom_event_target *)(((node_private_t *)priv)->node);\n"); + } outputf(outc, - "\tdom_event_target *et = (dom_event_target *)(((node_private_t *)priv)->node);\n" "\tdom_string *name;\n" "\tdom_exception exc;\n\n" "\texc = dom_string_create((const uint8_t *)\"%s\", %ld, &name);\n" @@ -230,6 +236,14 @@ output_generated_attribute_user_setter(struct opctx *outc, return -1; /* not onxxx */ } + if (interfacee->u.interface.primary_global) { + outputf(outc, + "\tdom_element *et = NULL;\n"); + } else { + outputf(outc, + "\tdom_element *et = (dom_element *)(((node_private_t *)priv)->node);\n"); + } + outputf(outc, "\t/* handlerfn */\n" "\tduk_push_this(ctx);\n" @@ -242,8 +256,7 @@ output_generated_attribute_user_setter(struct opctx *outc, "\t/* handlerfn this handlers %s handlerfn */\n" "\tduk_put_prop(ctx, -3);\n" "\t/* handlerfn this handlers */\n" - "\tdukky_register_event_listener_for(ctx,\n" - "\t\t(dom_element *)((node_private_t *)priv)->node,\n" + "\tdukky_register_event_listener_for(ctx, et,\n" "\t\tcorestring_dom_%s, false);\n" "\treturn 0;\n", atributee->name + 2, -- cgit v1.2.3