See comment here: https://github.com/facebook/react/pull/11457#discussion_r148954193.

Although it seems very unlikely that someone would pass a one-character prop, the price (at least in versions of V8 in Chrome right now) is reported to be about 10x.

So we should check `.length` first and then do the comparison.

**Please comment if you want to take this issue.**
**If somebody already commented, please let them finish it.**
if (isReservedProp(name)) {
    return false;
  }
  if (
    (name[0] === 'o' || name[0] === 'O') &&
    (name[1] === 'n' || name[1] === 'N') &&
    name.length > 2
  ) {
    return false;
  }
  if (value === null) {
    return true;
  }
  switch (typeof value) {
    case 'boolean':
      return shouldAttributeAcceptBooleanValue(name);
    case 'undefined':
    case 'number':
    case 'string':
    case 'object':
      return true;
    default:
      
      return false;
  }
}
export function getPropertyInfo(name) {
  return properties.hasOwnProperty(name) ? properties[name] : null;
}
export function shouldAttributeAcceptBooleanValue(name) {