diff options
author | Vincent Sanders <vince@kyllikki.org> | 2015-10-20 22:49:41 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2015-10-20 22:49:41 +0100 |
commit | 0645bc7570974531be344544b68a7e93908d1796 (patch) | |
tree | 0f71f8a29e5c26d79bc0bbf5a7d4400b1ed8243c /javascript | |
parent | 37ea372a100f6a1a47afc47ce9430ed6e2b4c44b (diff) | |
download | netsurf-0645bc7570974531be344544b68a7e93908d1796.tar.gz netsurf-0645bc7570974531be344544b68a7e93908d1796.tar.bz2 |
The node acessors should return javacript null not an error
Diffstat (limited to 'javascript')
-rw-r--r-- | javascript/duktape/Node.bnd | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/javascript/duktape/Node.bnd b/javascript/duktape/Node.bnd index 3a723ddfb..87d7e9292 100644 --- a/javascript/duktape/Node.bnd +++ b/javascript/duktape/Node.bnd @@ -132,14 +132,18 @@ getter Node::firstChild() dom_exception exc; dom_node *n; exc = dom_node_get_first_child(priv->node, &n); - if ((exc != DOM_NO_ERR) || (n == NULL)) { + if (exc != DOM_NO_ERR) { return 0; } - if (dukky_push_node(ctx, n) == false) { + if (n == NULL) { + duk_push_null(ctx); + } else { + if (dukky_push_node(ctx, n) == false) { + dom_node_unref(n); + return 0; + } dom_node_unref(n); - return 0; } - dom_node_unref(n); return 1; %} @@ -148,14 +152,18 @@ getter Node::lastChild() dom_exception exc; dom_node *n; exc = dom_node_get_last_child(priv->node, &n); - if ((exc != DOM_NO_ERR) || (n == NULL)) { + if (exc != DOM_NO_ERR) { return 0; } - if (dukky_push_node(ctx, n) == false) { + if (n == NULL) { + duk_push_null(ctx); + } else { + if (dukky_push_node(ctx, n) == false) { + dom_node_unref(n); + return 0; + } dom_node_unref(n); - return 0; } - dom_node_unref(n); return 1; %} @@ -164,14 +172,18 @@ getter Node::previousSibling() dom_exception exc; dom_node *n; exc = dom_node_get_previous_sibling(priv->node, &n); - if ((exc != DOM_NO_ERR) || (n == NULL)) { + if (exc != DOM_NO_ERR) { return 0; } - if (dukky_push_node(ctx, n) == false) { + if (n == NULL) { + duk_push_null(ctx); + } else { + if (dukky_push_node(ctx, n) == false) { + dom_node_unref(n); + return 0; + } dom_node_unref(n); - return 0; } - dom_node_unref(n); return 1; %} @@ -180,14 +192,18 @@ getter Node::nextSibling() dom_exception exc; dom_node *n; exc = dom_node_get_next_sibling(priv->node, &n); - if ((exc != DOM_NO_ERR) || (n == NULL)) { + if (exc != DOM_NO_ERR) { return 0; } - if (dukky_push_node(ctx, n) == false) { + if (n == NULL) { + duk_push_null(ctx); + } else { + if (dukky_push_node(ctx, n) == false) { + dom_node_unref(n); + return 0; + } dom_node_unref(n); - return 0; } - dom_node_unref(n); return 1; %} |