perf(jqLite): optimize append() and after()

This commit is contained in:
Igor Minar
2014-08-05 01:07:42 -07:00
parent 6251751ad7
commit 8d933bf995

View File

@@ -262,8 +262,9 @@ function jqLiteDealoc(element, onlyDescendants){
function jqLiteOff(element, type, fn, unsupported) {
if (isDefined(unsupported)) throw jqLiteMinErr('offargs', 'jqLite#off() does not support the `selector` argument');
var events = jqLiteExpandoStore(element, 'events');
var handle = jqLiteExpandoStore(element, 'handle');
var expandoStore = jqLiteExpandoStore(element);
var events = expandoStore && expandoStore.events;
var handle = expandoStore && expandoStore.handle;
var i;
var types;
@@ -803,11 +804,15 @@ forEach({
},
append: function(element, node) {
forEach(new JQLite(node), function(child){
if (element.nodeType === 1 || element.nodeType === 11) {
element.appendChild(child);
}
});
var nodeType = element.nodeType;
if (nodeType !== 1 && nodeType !== 11) return;
node = new JQLite(node);
for (var i = 0, ii = node.length; i < ii; i++) {
var child = node[i];
element.appendChild(child);
}
},
prepend: function(element, node) {
@@ -836,10 +841,13 @@ forEach({
after: function(element, newElement) {
var index = element, parent = element.parentNode;
forEach(new JQLite(newElement), function(node){
newElement = new JQLite(newElement);
for (var i = 0, ii = newElement.length; i < ii; i++) {
var node = newElement[i];
parent.insertBefore(node, index.nextSibling);
index = node;
});
}
},
addClass: jqLiteAddClass,