diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-04 23:06:14 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2019-05-04 23:06:20 +0100 |
commit | 6dfc0f1486e50ff6a3bb74164cc5e0af6b012deb (patch) | |
tree | ee2ef12f492262dcb427921843b15a8eca63f298 /content/handlers/javascript/duktape/Document.bnd | |
parent | 38a65c0242ca7b32aa74537ab72d52510a9a32c8 (diff) | |
download | netsurf-6dfc0f1486e50ff6a3bb74164cc5e0af6b012deb.tar.gz netsurf-6dfc0f1486e50ff6a3bb74164cc5e0af6b012deb.tar.bz2 |
Support nodelist indexing
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'content/handlers/javascript/duktape/Document.bnd')
-rw-r--r-- | content/handlers/javascript/duktape/Document.bnd | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/content/handlers/javascript/duktape/Document.bnd b/content/handlers/javascript/duktape/Document.bnd index cc8a3a9c1..d27591759 100644 --- a/content/handlers/javascript/duktape/Document.bnd +++ b/content/handlers/javascript/duktape/Document.bnd @@ -18,6 +18,7 @@ prologue Document() #include "content/urldb.h" #define HANDLER_MAGIC MAGIC(HANDLER_MAP) +#define LIST_PROXY_MAGIC MAGIC(LIST_PROXY) %} @@ -344,10 +345,18 @@ method Document::getElementsByTagName() if (nodes == NULL) return 0; /* coerced to undefined */ + duk_get_global_string(ctx, LIST_PROXY_MAGIC); + duk_push_pointer(ctx, nodes); dukky_create_object(ctx, PROTO_NAME(NODELIST), 1); dom_nodelist_unref(nodes); - return 1; + + if (dukky_pcall(ctx, 1, false) != 0) { + NSLOG(dukky, DEBUG, "Unable to construct nodelist?"); + return 0; /* coerced to undefined */ + } + + return 1; /* The Proxy(NodeList) wrapper */ %} getter Document::cookie() |