diff options
author | Vincent Sanders <vince@kyllikki.org> | 2013-01-23 15:42:49 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2013-01-23 15:51:55 +0000 |
commit | 1d0835098134a68add69146c822cc079da374f30 (patch) | |
tree | 2d065191898deb12a858ec8e3aabe0a898e3c3f7 /javascript | |
parent | fab7b04de689fdbb03e4cf604b1524a80bb4a174 (diff) | |
download | netsurf-1d0835098134a68add69146c822cc079da374f30.tar.gz netsurf-1d0835098134a68add69146c822cc079da374f30.tar.bz2 |
implement Element::tagName
Diffstat (limited to 'javascript')
-rw-r--r-- | javascript/jsapi/htmlelement.bnd | 20 |
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; |