jsdom-se
Version:
jsdom fork for silent errors - A JavaScript implementation of the DOM and HTML standards
30 lines (25 loc) • 923 B
JavaScript
;
const defineGetter = require("../utils").defineGetter;
const domSymbolTree = require("./helpers/internal-constants").domSymbolTree;
const NODE_TYPE = require("./node-type");
module.exports = function (core) {
// https://dom.spec.whatwg.org/#nondocumenttypechildnode
for (const Constructor of [core.Element, core.CharacterData]) {
defineGetter(Constructor.prototype, "nextElementSibling", function () {
for (const sibling of domSymbolTree.nextSiblingsIterator(this)) {
if (sibling.nodeType === NODE_TYPE.ELEMENT_NODE) {
return sibling;
}
}
return null;
});
defineGetter(Constructor.prototype, "previousElementSibling", function () {
for (const sibling of domSymbolTree.previousSiblingsIterator(this)) {
if (sibling.nodeType === NODE_TYPE.ELEMENT_NODE) {
return sibling;
}
}
return null;
});
}
};