summaryrefslogtreecommitdiff
path: root/javascript
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2013-01-23 15:42:49 +0000
committerVincent Sanders <vince@kyllikki.org>2013-01-23 15:51:55 +0000
commit1d0835098134a68add69146c822cc079da374f30 (patch)
tree2d065191898deb12a858ec8e3aabe0a898e3c3f7 /javascript
parentfab7b04de689fdbb03e4cf604b1524a80bb4a174 (diff)
downloadnetsurf-1d0835098134a68add69146c822cc079da374f30.tar.gz
netsurf-1d0835098134a68add69146c822cc079da374f30.tar.bz2
implement Element::tagName
Diffstat (limited to 'javascript')
-rw-r--r--javascript/jsapi/htmlelement.bnd20
1 files changed, 20 insertions, 0 deletions
diff --git a/javascript/jsapi/htmlelement.bnd b/javascript/jsapi/htmlelement.bnd
index 5af2d5b25..fd3a9caf8 100644
--- a/javascript/jsapi/htmlelement.bnd
+++ b/javascript/jsapi/htmlelement.bnd
@@ -114,6 +114,9 @@ binding htmlelement {
private "dom_element *" node;
private "struct html_content *" htmlc;
+ /* tag name retrieved first time its fetched and doesnt change */
+ property unshared tagName;
+
/* events through a single interface */
property unshared type EventHandler;
}
@@ -126,6 +129,23 @@ api finalise %{
/* interface Element in dom idl */
+/* readonly attribute DOMString Element::tagName; */
+getter tagName %{
+ if (!JSVAL_IS_VOID(JSAPI_PROP_RVAL(cx, vp))) {
+ /* already created - return it */
+ return JS_TRUE;
+ }
+
+ dom_exception exc;
+ dom_string *name;
+
+ exc = dom_element_get_tag_name(private->node, &name);
+ if (name != NULL) {
+ jsret = JS_NewStringCopyN(cx, dom_string_data(name), dom_string_length(name));
+ dom_string_unref(name);
+ }
+%}
+
/* DOMString? Element::getAttribute(DOMString name); */
operation getAttribute %{
dom_string *value;