Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

test(t => {
const style = document.body.appendChild(document.createElement("style"));
const sheet = style.sheet;
t.add_cleanup(() => style.remove());
assert_not_equals(sheet, null);
style.appendChild(new Comment());
assert_not_equals(sheet, style.sheet);
}, "Mutating the style element: inserting a Comment node");
test(t => {
const style = document.body.appendChild(document.createElement("style"));
t.add_cleanup(() => style.remove());
const comment = style.appendChild(new Comment());
const sheet = style.sheet;
comment.appendData("x");
assert_not_equals(sheet, style.sheet);
}, "Mutating the style element: mutating a Comment node");
test(t => {
const style = document.body.appendChild(document.createElement("style"));
t.add_cleanup(() => style.remove());
const text1 = style.appendChild(new Text("1"));
const text2 = style.appendChild(new Text("2"));
assert_equals(style.textContent, "12");
assert_equals(style.childNodes.length, 2);
const sheet = style.sheet;
style.normalize();
assert_equals(style.childNodes.length, 1);
assert_not_equals(sheet, style.sheet);
}, "Mutating the style element: using normalize()");
test(t => {
const style = document.body.appendChild(document.createElement("style"));
t.add_cleanup(() => style.remove());
const comment = style.appendChild(new Comment());
const sheet = style.sheet;
comment.remove();
assert_not_equals(sheet, style.sheet);
}, "Mutating the style element: removing a Comment node");
test(t => {
const style = document.body.appendChild(document.createElement("style"));
const sheet = style.sheet;
t.add_cleanup(() => style.remove());
assert_not_equals(sheet, null);
style.appendChild(new DocumentFragment());
assert_equals(sheet, style.sheet);
}, "Mutating the style element: inserting an empty DocumentFragment node");