about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/html/dom.nim8
-rw-r--r--test/js/element.html2
2 files changed, 8 insertions, 2 deletions
diff --git a/src/html/dom.nim b/src/html/dom.nim
index 96970d7b..9fa724f1 100644
--- a/src/html/dom.nim
+++ b/src/html/dom.nim
@@ -2094,9 +2094,13 @@ func length(characterData: CharacterData): uint32 {.jsfget.} =
   return uint32(characterData.data.utf16Len)
 
 func tagName(element: Element): string {.jsfget.} =
+  let document = element.document
+  result = document.toStr(element.prefix)
+  if result.len > 0:
+    result &= ':'
+  result &= document.toStr(element.localName)
   if element.namespace == Namespace.HTML:
-    return element.document.toStr(element.localName).toUpperAscii()
-  return element.document.toStr(element.localName)
+    result = result.toUpperAscii()
 
 func nodeName(node: Node): string {.jsfget.} =
   if node of Element:
diff --git a/test/js/element.html b/test/js/element.html
index 85f63e0c..1f63fd88 100644
--- a/test/js/element.html
+++ b/test/js/element.html
@@ -5,8 +5,10 @@
 <script>
 const x = document.getElementById("x");
 assertEquals(x.localName, "div");
+assertEquals(x.tagName, "DIV");
 assertEquals(x.classList.item(-1), null);
 assertEquals(x.classList[-1], undefined);
 assertEquals(x.classList[1], "b");
+assertEquals(document.createElementNS("test", "test:div").tagName, "test:div");
 x.textContent = "Success";
 </script>