Bug 1400256 - Recognise web element references in evaluate.toJSON. r?whimboo
MozReview-Commit-ID: BvKHGzsF0ie
--- a/testing/marionette/evaluate.js
+++ b/testing/marionette/evaluate.js
@@ -271,20 +271,24 @@ evaluate.toJSON = function(obj, seenEls)
t == "[object Number]" ||
t == "[object String]") {
return obj;
// Array, NodeList, HTMLCollection, et al.
} else if (element.isCollection(obj)) {
return [...obj].map(el => evaluate.toJSON(el, seenEls));
+ // WebElement
+ } else if (WebElement.isReference(obj)) {
+ return obj;
+
// Element, SVGElement, XULElement
} else if (element.isElement(obj)) {
- let uuid = seenEls.add(obj);
- return element.makeWebElement(uuid);
+ let webEl = seenEls.add(obj);
+ return webEl.toJSON();
// custom JSON representation
} else if (typeof obj.toJSON == "function") {
let unsafeJSON = obj.toJSON();
return evaluate.toJSON(unsafeJSON, seenEls);
}
// arbitrary objects + files