summaryrefslogtreecommitdiff
path: root/javascript/duktape
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2015-10-21 18:46:43 +0200
committerDaniel Silverstone <dsilvers@digital-scurf.org>2015-10-21 18:46:43 +0200
commit2f52338328e694e3ba1141424cbf3f413bcfbaf9 (patch)
tree8bf2aaf678bab53dd37d778273deafde741775df /javascript/duktape
parent79068dd50f8617186822d871e292c726e7f85658 (diff)
downloadnetsurf-2f52338328e694e3ba1141424cbf3f413bcfbaf9.tar.gz
netsurf-2f52338328e694e3ba1141424cbf3f413bcfbaf9.tar.bz2
Fix up Element to return null rather than undefined, add tests
Diffstat (limited to 'javascript/duktape')
-rw-r--r--javascript/duktape/Element.bnd44
1 files changed, 28 insertions, 16 deletions
diff --git a/javascript/duktape/Element.bnd b/javascript/duktape/Element.bnd
index bd11e2aa1..07a059fbe 100644
--- a/javascript/duktape/Element.bnd
+++ b/javascript/duktape/Element.bnd
@@ -31,9 +31,7 @@ getter Element::firstElementChild()
exc = dom_node_get_node_type(element, &node_type);
if ((exc == DOM_NO_ERR) && (node_type == DOM_ELEMENT_NODE)) {
/* found it */
- dukky_push_node(ctx, (dom_node *)element);
- dom_node_unref(element);
- return 1;
+ break;
}
exc = dom_node_get_next_sibling(element, &next_node);
@@ -44,7 +42,12 @@ getter Element::firstElementChild()
element = NULL;
}
}
- return 0;
+ if (dukky_push_node(ctx, (dom_node *)element) == false) {
+ dom_node_unref(element);
+ return 0;
+ }
+ dom_node_unref(element);
+ return 1;
%}
getter Element::lastElementChild()
@@ -63,9 +66,7 @@ getter Element::lastElementChild()
exc = dom_node_get_node_type(element, &node_type);
if ((exc == DOM_NO_ERR) && (node_type == DOM_ELEMENT_NODE)) {
/* found it */
- dukky_push_node(ctx, (dom_node *)element);
- dom_node_unref(element);
- return 1;
+ break;
}
exc = dom_node_get_previous_sibling(element, &next_node);
@@ -76,7 +77,12 @@ getter Element::lastElementChild()
element = NULL;
}
}
- return 0;
+ if (dukky_push_node(ctx, (dom_node *)element) == false) {
+ dom_node_unref(element);
+ return 0;
+ }
+ dom_node_unref(element);
+ return 1;
%}
getter Element::previousElementSibling()
@@ -95,9 +101,7 @@ getter Element::previousElementSibling()
exc = dom_node_get_node_type(element, &node_type);
if ((exc == DOM_NO_ERR) && (node_type == DOM_ELEMENT_NODE)) {
/* found it */
- dukky_push_node(ctx, (dom_node *)element);
- dom_node_unref(element);
- return 1;
+ break;
}
exc = dom_node_get_previous_sibling(element, &sib_node);
@@ -108,7 +112,12 @@ getter Element::previousElementSibling()
element = NULL;
}
}
- return 0;
+ if (dukky_push_node(ctx, (dom_node *)element) == false) {
+ dom_node_unref(element);
+ return 0;
+ }
+ dom_node_unref(element);
+ return 1;
%}
getter Element::nextElementSibling()
@@ -127,9 +136,7 @@ getter Element::nextElementSibling()
exc = dom_node_get_node_type(element, &node_type);
if ((exc == DOM_NO_ERR) && (node_type == DOM_ELEMENT_NODE)) {
/* found it */
- dukky_push_node(ctx, (dom_node *)element);
- dom_node_unref(element);
- return 1;
+ break;
}
exc = dom_node_get_next_sibling(element, &sib_node);
@@ -140,7 +147,12 @@ getter Element::nextElementSibling()
element = NULL;
}
}
- return 0;
+ if (dukky_push_node(ctx, (dom_node *)element) == false) {
+ dom_node_unref(element);
+ return 0;
+ }
+ dom_node_unref(element);
+ return 1;
%}
getter Element::childElementCount()