code: function mixin(target, source, force) {
          for (var prop in source) {
              if (!(prop in empty) && (!(prop in target) || force)) {
                  target[prop] = source[prop];
              }
          }
          return req;
      }
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.