Skip to content

Commit 535c5bc

Browse files
committed
Fix #106 - Prepend the <head> and place the <body> after, if not there already
1 parent 8cf258d commit 535c5bc

4 files changed

Lines changed: 8 additions & 6 deletions

File tree

cjs/html/document.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class HTMLDocument extends Document {
5353
get head() {
5454
const {documentElement} = this;
5555
let {firstElementChild} = documentElement;
56-
if (!firstElementChild) {
56+
if (!firstElementChild || firstElementChild.tagName !== 'HEAD') {
5757
firstElementChild = this.createElement('head');
5858
documentElement.prepend(firstElementChild);
5959
}
@@ -66,7 +66,7 @@ class HTMLDocument extends Document {
6666
get body() {
6767
const {head} = this;
6868
let {nextElementSibling} = head;
69-
if (!nextElementSibling) {
69+
if (!nextElementSibling || nextElementSibling.tagName !== 'BODY') {
7070
nextElementSibling = this.createElement('body');
7171
head.after(nextElementSibling);
7272
}

esm/html/document.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export class HTMLDocument extends Document {
5252
get head() {
5353
const {documentElement} = this;
5454
let {firstElementChild} = documentElement;
55-
if (!firstElementChild) {
55+
if (!firstElementChild || firstElementChild.tagName !== 'HEAD') {
5656
firstElementChild = this.createElement('head');
5757
documentElement.prepend(firstElementChild);
5858
}
@@ -65,7 +65,7 @@ export class HTMLDocument extends Document {
6565
get body() {
6666
const {head} = this;
6767
let {nextElementSibling} = head;
68-
if (!nextElementSibling) {
68+
if (!nextElementSibling || nextElementSibling.tagName !== 'BODY') {
6969
nextElementSibling = this.createElement('body');
7070
head.after(nextElementSibling);
7171
}

test/html/document.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,5 @@ window.addEventListener = window.removeEventListener = window.dispatchEvent = nu
6464
assert(window.addEventListener, null);
6565

6666
assert(typeof window.performance.now(), 'number');
67+
68+
assert(parseHTML('<html><body><div>asdf</div></body></html>').document.body.outerHTML, '<body><div>asdf</div></body>');

worker.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16711,7 +16711,7 @@ class HTMLDocument extends Document$1 {
1671116711
get head() {
1671216712
const {documentElement} = this;
1671316713
let {firstElementChild} = documentElement;
16714-
if (!firstElementChild) {
16714+
if (!firstElementChild || firstElementChild.tagName !== 'HEAD') {
1671516715
firstElementChild = this.createElement('head');
1671616716
documentElement.prepend(firstElementChild);
1671716717
}
@@ -16724,7 +16724,7 @@ class HTMLDocument extends Document$1 {
1672416724
get body() {
1672516725
const {head} = this;
1672616726
let {nextElementSibling} = head;
16727-
if (!nextElementSibling) {
16727+
if (!nextElementSibling || nextElementSibling.tagName !== 'BODY') {
1672816728
nextElementSibling = this.createElement('body');
1672916729
head.after(nextElementSibling);
1673016730
}

0 commit comments

Comments
 (0)