**Do you want to request a *feature* or report a *bug*?**
Bug

**What is the current behavior?**
When an input field changes from "email" to "text", an exception TypeError will be thrown from setSelection.
![Screenshot](https://raw.githubusercontent.com/adrianimboden/react-bug-reproduction/master/screenshot.png)

**Reproduction**
See here: https://github.com/adrianimboden/react-bug-reproduction

**What is the expected behavior?**
It should not crash because of an uncaught exception

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**
master (https://github.com/facebook/react/commit/4ca7855ca062d5d7dfca83c86acf46731e1e57ef)
Firefox

This would be my proposed change to fix the issue: https://github.com/adrianimboden/react/commit/db923b8c3c1cb23ad9fb150c160ce56f39dd3cae
const nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
  return (
    nodeName &&
    ((nodeName === 'input' && elem.type === 'text') ||
      nodeName === 'textarea' ||
      elem.contentEditable === 'true')
  );
}
export function getSelectionInformation() {
  const focusedElem = getActiveElement();
  return {
    focusedElem: focusedElem,
    selectionRange: hasSelectionCapabilities(focusedElem)
      ? getSelection(focusedElem)
      : null,
  };
}
/**
 * @restoreSelection: If any selection information was potentially lost,
 * restore it. This is useful when performing operations that could remove dom
 * nodes and place them back in, resulting in focus being lost.
 */
export function restoreSelection(priorSelectionInformation) {