Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 8d933bf

Browse files
committed
perf(jqLite): optimize append() and after()
1 parent 6251751 commit 8d933bf

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/jqLite.js

+17-9
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,9 @@ function jqLiteDealoc(element, onlyDescendants){
262262
function jqLiteOff(element, type, fn, unsupported) {
263263
if (isDefined(unsupported)) throw jqLiteMinErr('offargs', 'jqLite#off() does not support the `selector` argument');
264264

265-
var events = jqLiteExpandoStore(element, 'events');
266-
var handle = jqLiteExpandoStore(element, 'handle');
265+
var expandoStore = jqLiteExpandoStore(element);
266+
var events = expandoStore && expandoStore.events;
267+
var handle = expandoStore && expandoStore.handle;
267268
var i;
268269
var types;
269270

@@ -803,11 +804,15 @@ forEach({
803804
},
804805

805806
append: function(element, node) {
806-
forEach(new JQLite(node), function(child){
807-
if (element.nodeType === 1 || element.nodeType === 11) {
808-
element.appendChild(child);
809-
}
810-
});
807+
var nodeType = element.nodeType;
808+
if (nodeType !== 1 && nodeType !== 11) return;
809+
810+
node = new JQLite(node);
811+
812+
for (var i = 0, ii = node.length; i < ii; i++) {
813+
var child = node[i];
814+
element.appendChild(child);
815+
}
811816
},
812817

813818
prepend: function(element, node) {
@@ -836,10 +841,13 @@ forEach({
836841

837842
after: function(element, newElement) {
838843
var index = element, parent = element.parentNode;
839-
forEach(new JQLite(newElement), function(node){
844+
newElement = new JQLite(newElement);
845+
846+
for (var i = 0, ii = newElement.length; i < ii; i++) {
847+
var node = newElement[i];
840848
parent.insertBefore(node, index.nextSibling);
841849
index = node;
842-
});
850+
}
843851
},
844852

845853
addClass: jqLiteAddClass,

0 commit comments

Comments
 (0)