Source code
Revision control
Copy as Markdown
Other Tools
/**
* The const var for SVG and xlink namespaces
*/
/**
* Appends a svg element to the parent.
*
* @param test The testharness.js Test object. If provided, this will be used
* to register a cleanup callback to remove the div when the test
* finishes.
* @param tag The element tag name.
* @param parent The parent element of this new created svg element.
* @param attrs A dictionary object with attribute names and values to set on
* the div.
*/
function createSVGElement(test, tag, parent, attrs) {
var elem = document.createElementNS(SVGNS, tag);
if (attrs) {
for (var attrName in attrs) {
elem.setAttribute(attrName, attrs[attrName]);
}
}
parent.appendChild(elem);
if (test) {
test.add_cleanup(function() {
elem.remove();
});
}
return elem;
}
/**
* Create a Promise object which resolves when a specific event fires.
*
* @param object The event target.
* @param name The event name.
*/
function waitEvent(object, name) {
return new Promise(function(resolve) {
object.addEventListener(name, resolve, { once: true });
});
}