function isArraylike(obj) {
    var length = obj.length,
        type = typeof obj;

    if (isFunction(type) || obj === win) {
        return false;
    }

    if (obj.nodeType === 1 && length) {
        return true;
    }

    return isArray(type) || length === 0 ||
        typeof length === "number" && length > 0 && (length - 1) in obj;
}

jBone.merge = function(first, second) {
    var l = second.length,
        i = first.length,
        j = 0;

    while (j < l) {
        first[i++] = second[j++];
    }

    first.length = i;

    return first;
};

jBone.contains = function(container, contained) {
    var result;

    container.reverse().some(function(el) {
        if (el.contains(contained)) {
            return result = el;
        }
    });

    return result;
};

jBone.extend = function(target) {
    var k, kl, i, tg;

    splice.call(arguments, 1).forEach(function(object) {
        if (!object) {
            return;
        }

        k = keys(object);
        kl = k.length;
        i = 0;
        tg = target; //caching target for perf improvement

        for (; i < kl; i++) {
            tg[k[i]] = object[k[i]];
        }
    });

    return target;
};

jBone.makeArray = function(arr, results) {
    var ret = results || [];

    if (arr !== null) {
        if (isArraylike(arr)) {
            jBone.merge(ret, isString(arr) ? [arr] : arr);
        } else {
            ret.push(arr);
        }
    }

    return ret;
};

@@ -821,18 +821,8 @@
  var
- k, kl, i,
  tg;
@@ -874,262 +874,193 @@
 ion(
-object) %7B%0A        if (!object) %7B%0A            return;%0A        %7D%0A%0A        k = keys(object);%0A        kl = k.length;%0A        i = 0;%0A        tg = target; //caching target for perf improvement%0A%0A        for (; i %3C kl; i++) %7B%0A            tg%5Bk%5Bi%5D%5D = object%5Bk%5Bi%5D%5D;
+source) %7B%0A        tg = target; //caching target for perf improvement%0A%0A        if (source) %7B%0A            for (var prop in source) %7B%0A                tg%5Bprop%5D = source%5Bprop%5D;%0A            %7D
 %0A   

Improve extend method