summaryrefslogtreecommitdiff
path: root/javascript
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2015-10-20 22:49:41 +0100
committerVincent Sanders <vince@kyllikki.org>2015-10-20 22:49:41 +0100
commit0645bc7570974531be344544b68a7e93908d1796 (patch)
tree0f71f8a29e5c26d79bc0bbf5a7d4400b1ed8243c /javascript
parent37ea372a100f6a1a47afc47ce9430ed6e2b4c44b (diff)
downloadnetsurf-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.bnd48
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;
%}