code: function extend(target /*, sources */) {
              var sources = Array.prototype.slice.call(arguments, 1),
                  source, i, prop;
  
              for (i = 0; i < sources.length; i++) {
                  source = sources[i];
  
                  for (prop in source) {
                      if (source.hasOwnProperty(prop)) {
                          target[prop] = source[prop];
                      }
                  }
  
                  // Make sure we copy (own) toString method even when in JScript with DontEnum bug
                  // See https://developer.mozilla.org/en/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug
                  if (hasDontEnumBug && source.hasOwnProperty("toString") && source.toString !== target.toString) {
                      target.toString = source.toString;
                  }
              }
  
              return target;
          }
docs: /* Public: Extend target in place with all (own) properties from sources in-order. Thus, last source will
  override properties in previous sources.
  
  target - The Object to extend
  sources - Objects to copy properties from.
  
  Returns the extended target