mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 12:55:46 +00:00
Bug 1409040 - Add element.isElement shorthand. r=maja_zf
Introduces new element.isElement shorthand API for identifying DOM-, SVG-, and XUL elements. It is the equivalent of this: if (element.isDOMElement(el) || element.isSVGElement(el) || element.isXULElement(el)) { // ... } MozReview-Commit-ID: H8MDkP5bQmW --HG-- extra : rebase_source : 6bef09999e47b178614e4bd307266b4449f39901
This commit is contained in:
parent
b23b5f643a
commit
a03f21ac1c
@ -1049,6 +1049,22 @@ element.scrollIntoView = function(el) {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Ascertains whether <var>node</var> is a DOM-, SVG-, or XUL element.
|
||||
*
|
||||
* @param {*} node
|
||||
* Element thought to be an <code>Element</code>,
|
||||
* <code>SVGElement</code>, or <code>XULElement</code>.
|
||||
*
|
||||
* @return {boolean}
|
||||
* True if <var>node</var> is an element, false otherwise.
|
||||
*/
|
||||
element.isElement = function(node) {
|
||||
return element.isDOMElement(node) ||
|
||||
element.isSVGElement(node) ||
|
||||
element.isXULElement(node);
|
||||
};
|
||||
|
||||
/**
|
||||
* Ascertains whether <var>node</var> is a DOM element.
|
||||
*
|
||||
|
@ -269,8 +269,8 @@ evaluate.toJSON = function(obj, seenEls) {
|
||||
} else if (element.isCollection(obj)) {
|
||||
return [...obj].map(el => evaluate.toJSON(el, seenEls));
|
||||
|
||||
// HTMLElement
|
||||
} else if ("nodeType" in obj && obj.nodeType == obj.ELEMENT_NODE) {
|
||||
// Element, SVGElement, XULElement
|
||||
} else if (element.isElement(obj)) {
|
||||
let uuid = seenEls.add(obj);
|
||||
return element.makeWebElement(uuid);
|
||||
|
||||
|
@ -115,6 +115,19 @@ add_test(function test_isSelected() {
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
add_test(function test_isElement() {
|
||||
ok(element.isElement(domEl));
|
||||
ok(element.isElement(svgEl));
|
||||
ok(element.isElement(xulEl));
|
||||
ok(!element.isElement(domWin));
|
||||
ok(!element.isElement(domFrame));
|
||||
for (let typ of [true, 42, {}, [], undefined, null]) {
|
||||
ok(!element.isElement(typ));
|
||||
}
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
add_test(function test_isDOMElement() {
|
||||
ok(element.isDOMElement(domEl));
|
||||
ok(!element.isDOMElement(svgEl));
|
||||
|
Loading…
Reference in New Issue
Block a user