Skip to content

Commit 439d0fe

Browse files
author
iacore
committed
make it more efficient
1 parent d3fda1d commit 439d0fe

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

cjs/interface/document-fragment.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
2-
const {DOCUMENT_FRAGMENT_NODE} = require('../shared/constants.js');
2+
const {DOCUMENT_FRAGMENT_NODE, TEXT_NODE} = require('../shared/constants.js');
33
const {NonElementParentNode} = require('../mixin/non-element-parent-node.js');
4+
const {NEXT, END} = require('../shared/symbols.js')
45

56
/**
67
* @implements globalThis.DocumentFragment
@@ -11,13 +12,14 @@ class DocumentFragment extends NonElementParentNode {
1112
}
1213

1314
get textContent() {
14-
let r = ""
15-
let curr = this.firstChild
16-
while (curr) {
17-
r += curr.textContent
18-
curr = curr.nextSibling
15+
const text = [];
16+
let {[NEXT]: next, [END]: end} = this;
17+
while (next !== end) {
18+
if (next.nodeType === TEXT_NODE)
19+
text.push(next.textContent);
20+
next = next[NEXT];
1921
}
20-
return r;
22+
return text.join('');
2123
}
2224
}
2325
exports.DocumentFragment = DocumentFragment

esm/interface/document-fragment.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import {DOCUMENT_FRAGMENT_NODE} from '../shared/constants.js';
1+
import {DOCUMENT_FRAGMENT_NODE, TEXT_NODE} from '../shared/constants.js';
22
import {NonElementParentNode} from '../mixin/non-element-parent-node.js';
3+
import {NEXT, END} from '../shared/symbols.js'
34

45
/**
56
* @implements globalThis.DocumentFragment
@@ -10,12 +11,13 @@ export class DocumentFragment extends NonElementParentNode {
1011
}
1112

1213
get textContent() {
13-
let r = ""
14-
let curr = this.firstChild
15-
while (curr) {
16-
r += curr.textContent
17-
curr = curr.nextSibling
14+
const text = [];
15+
let {[NEXT]: next, [END]: end} = this;
16+
while (next !== end) {
17+
if (next.nodeType === TEXT_NODE)
18+
text.push(next.textContent);
19+
next = next[NEXT];
1820
}
19-
return r;
21+
return text.join('');
2022
}
2123
}

worker.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7170,13 +7170,14 @@ let DocumentFragment$1 = class DocumentFragment extends NonElementParentNode {
71707170
}
71717171

71727172
get textContent() {
7173-
let r = "";
7174-
let curr = this.firstChild;
7175-
while (curr) {
7176-
r += curr.textContent;
7177-
curr = curr.nextSibling;
7173+
const text = [];
7174+
let {[NEXT]: next, [END]: end} = this;
7175+
while (next !== end) {
7176+
if (next.nodeType === TEXT_NODE)
7177+
text.push(next.textContent);
7178+
next = next[NEXT];
71787179
}
7179-
return r;
7180+
return text.join('');
71807181
}
71817182
};
71827183

0 commit comments

Comments
 (0)