**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
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import containsNode from 'fbjs/lib/containsNode';
import getActiveElement from 'fbjs/lib/getActiveElement';
import * as ReactDOMSelection from './ReactDOMSelection';
import {ELEMENT_NODE} from '../shared/HTMLNodeType';
function isInDocument(node) {
  return containsNode(document.documentElement, node);
}
/**
 * @ReactInputSelection: React input selection module. Based on Selection.js,
 * but modified to be suitable for react and has a couple of bug fixes (doesn't
 * assume buttons have range selections allowed).
 * Input selection module for React.
 */
export function hasSelectionCapabilities(elem) {