<!--
  Note: if the issue is about documentation or the website, please file it at:
  https://github.com/reactjs/reactjs.org/issues/new
-->

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

Bug

**What is the current behavior?**

when typing in a controlled input, the cursor always jumps to the end. This was an old issue that seems to have resurfaced.

[this code pen](https://codepen.io/gaearon/pen/VmmPgp?editors=0010) used in the docs [here](https://reactjs.org/docs/forms.html#controlled-components)  has the problem in all browsers as far as I have been able to test.

**What is the expected behavior?**

because we are using the state to update the component as soon as it's changed, the input element should be able to keep the cursor in the same place.

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

I'm at latest (16.8.2) and I tested on Chrome, FireFox, and Edge on Windows

as far as I know, this was working at some point, though I don't know how long ago. possibly even before "Fiber"


/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import assign from 'object-assign';
import {
  unstable_cancelCallback,
  unstable_shouldYield,
  unstable_now,
  unstable_scheduleCallback,
  unstable_runWithPriority,
  unstable_next,
  unstable_getFirstCallbackNode,
  unstable_pauseExecution,
  unstable_continueExecution,
  unstable_wrapCallback,
  unstable_getCurrentPriorityLevel,
} from 'scheduler';
import {
  __interactionsRef,
  __subscriberRef,
  unstable_clear,