function validateTypeDef(Constructor, typeDef, location) {
  for (var propName in typeDef) {
    if (typeDef.hasOwnProperty(propName)) {
      ("production" !== "development" ? invariant(
        typeof typeDef[propName] == 'function',
        '%s: %s type `%s` is invalid; it must be a function, usually from ' +
        'React.PropTypes.',
        Constructor.displayName || 'ReactCompositeComponent',
        ReactPropTypeLocationNames[location],
        propName
      ) : invariant(typeof typeDef[propName] == 'function'));
    }
  }
}
Mapping from class specification keys to special processing functions.

Although these are declared like instance properties in the specification
when defining classes using `React.createClass`, they are actually static
and are accessible on the constructor instead of the prototype. Despite
being static, they must be defined outside of the "statics" key under
which all other static methods are defined.