index.js
function() {
    var extended = {},
        deep     = false,
        i        = 0,
        length   = arguments.length;

    if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]'){
      deep = arguments[0];
      i++;
    }

    var merge = function(obj) {
      for (var prop in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, prop)) {
          if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {
            extended[prop] = window.AB.extend(true, extended[prop], obj[prop]);
          } else {
            extended[prop] = obj[prop];
          }
        }
      }
    };

    for (; i < length; i++) {
      merge(arguments[i]);
    }

    return extended;
  }
function() {
    var extended = {},
        deep     = false,
        i        = 0,
        length   = arguments.length;

    if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]'){
      deep = arguments[0];
      i++;
    }

    var merge = function(obj) {
      for (var prop in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, prop)) {
          if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {
            extended[prop] = window.AB.extend(true, extended[prop], obj[prop]);
          } else {
            extended[prop] = obj[prop];
          }
        }
      }
    };

    for (; i < length; i++) {
      merge(arguments[i]);
    }

    return extended;
  }
function ( ) { var extended = { } , deep = false , i = 0 , length = arguments . length ; if ( Object . prototype . toString . call ( arguments [ 0 ] ) === '[object Boolean]' ) { deep = arguments [ 0 ] ; i ++ ; } var merge = function ( obj ) { for ( var prop in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , prop ) ) { if ( deep && Object . prototype . toString . call ( obj [ prop ] ) === '[object Object]' ) { extended [ prop ] = window . AB . extend ( true , extended [ prop ] , obj [ prop ] ) ; } else { extended [ prop ] = obj [ prop ] ; } } } } ; for ( ; i < length ; i ++ ) { merge ( arguments [ i ] ) ; } return extended ; }
deep extend function
deep extend function