code: function mixin(target, source, force) {
          var prop;
          for (prop in source) {
              if (source.hasOwnProperty(prop) && (!target.hasOwnProperty(prop) || force)) {
                  target[prop] = source[prop];
              } else if (typeof source[prop] === 'object') {
                  mixin(target[prop], source[prop], force);
              }
          }
      }
docs: Simple function to mix in properties from source into target,
  but only if target does not already have a property of the same name.
  This is not robust in IE for transferring methods that match
  Object.prototype names, but the uses of mixin here seem unlikely to
  trigger a problem related to that.