summaryrefslogtreecommitdiff
path: root/content/handlers/javascript/duktape/Element.bnd
diff options
context:
space:
mode:
Diffstat (limited to 'content/handlers/javascript/duktape/Element.bnd')
-rw-r--r--content/handlers/javascript/duktape/Element.bnd9
1 files changed, 9 insertions, 0 deletions
diff --git a/content/handlers/javascript/duktape/Element.bnd b/content/handlers/javascript/duktape/Element.bnd
index f7e33545f..5e36a5090 100644
--- a/content/handlers/javascript/duktape/Element.bnd
+++ b/content/handlers/javascript/duktape/Element.bnd
@@ -11,6 +11,7 @@
class Element {
prologue %{
#include <utils/corestrings.h>
+#define LIST_PROXY_MAGIC MAGIC(LIST_PROXY)
%};
};
@@ -204,10 +205,18 @@ method Element::getElementsByTagName ()
tagname, &nlist);
dom_string_unref(tagname);
if (exc != DOM_NO_ERR) return 0;
+
+ duk_get_global_string(ctx, LIST_PROXY_MAGIC);
+
duk_push_pointer(ctx, nlist);
dukky_create_object(ctx, PROTO_NAME(NODELIST), 1);
dom_nodelist_unref(nlist);
+ if (dukky_pcall(ctx, 1, false) != 0) {
+ NSLOG(dukky, DEBUG, "Unable to construct nodelist?");
+ return 0; /* coerced to undefined */
+ }
+
return 1;
%}