From 1d0835098134a68add69146c822cc079da374f30 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 23 Jan 2013 15:42:49 +0000 Subject: implement Element::tagName --- javascript/jsapi/htmlelement.bnd | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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; -- cgit v1.2.3