elementLike - bhsd-harry/wikiparser-node GitHub Wiki

This is an internal document. For visitors, you can now go back to the home page.

// children (main)
var {elementLike} = require("../mixin/elementLike");
var a = {type: "a"},
	b = {type: "text"},
	ElementLike, token;
class S {
	childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.deepStrictEqual(token.children, [a]);
// firstElementChild (main)
var {elementLike} = require("../mixin/elementLike");
var a = {type: "text"},
	b = {type: "b"},
	ElementLike, token;
class S {
	childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.firstElementChild, b);
// lastElementChild (main)
var {elementLike} = require("../mixin/elementLike");
var a = {type: "a"},
	b = {type: "text"},
	ElementLike, token;
class S {
	childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.lastElementChild, a);
// childElementCount (main)
var {elementLike} = require("../mixin/elementLike");
var a = {type: "a"},
	b = {type: "text"},
	ElementLike, token;
class S {
	childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.childElementCount, 1);
// querySelector (Node.js)
var {elementLike} = require("../mixin/elementLike");
var a = {type: "a"},
	b = {type: "b"},
	ElementLike, token;
class S {
	childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.querySelector("a"), a);
// querySelectorAll (Node.js)
var {elementLike} = require("../mixin/elementLike");
var childNodes = [{type: "text"}],
	ElementLike, token, child;
class S {
	get childNodes() {
		return childNodes.includes(this) ? [] : childNodes;
	}
}
ElementLike = elementLike(S);
token = new ElementLike();
child = new ElementLike();
child.type = "b";
childNodes.push(child);
assert.deepStrictEqual(token.querySelectorAll("b"), [child]);
// escape (Node.js)
var {elementLike} = require("../mixin/elementLike");
var i = 0,
	a = {
		escape() {
			i++;
		},
	},
	ElementLike, token;
class S {
	childNodes = [a, a];
}
ElementLike = elementLike(S);
token = new ElementLike();
token.escape();
assert.strictEqual(i, 2);
// getElementByTypes (main)
var {elementLike} = require("../mixin/elementLike");
var a = {type: "a"},
	b = {type: "b"},
	ElementLike, token;
class S {
	childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.getElementByTypes("a, b"), a);
// getElementById (main)
var {elementLike} = require("../mixin/elementLike");
var a = {id: "a"},
	b = {id: "b"},
	ElementLike, token;
class S {
	childNodes = [a, b];
}
ElementLike = elementLike(S);
token = new ElementLike();
assert.strictEqual(token.getElementById("a"), a);
// getElementsByClassName (main)
var {elementLike} = require("../mixin/elementLike");
var childNodes = [{type: "text"}],
	ElementLike, token, child;
class S {
	get childNodes() {
		return childNodes.includes(this) ? [] : childNodes;
	}
}
ElementLike = elementLike(S);
token = new ElementLike();
child = new ElementLike();
child.classList = new Set("b");
childNodes.push(child);
assert.deepStrictEqual(token.getElementsByClassName("b"), [child]);
// getElementsByTagName (main)
var {elementLike} = require("../mixin/elementLike");
var childNodes = [{type: "text"}],
	ElementLike, token, child;
class S {
	get childNodes() {
		return childNodes.includes(this) ? [] : childNodes;
	}
}
ElementLike = elementLike(S);
token = new ElementLike();
child = new ElementLike();
child.type = "ext";
child.name = "b";
childNodes.push(child);
assert.deepStrictEqual(token.getElementsByTagName("b"), [child]);